/[projects]/misc/horsensspejder-web/jquery/jquery-ui-1.10.3/ui/jquery.ui.progressbar.js
ViewVC logotype

Annotation of /misc/horsensspejder-web/jquery/jquery-ui-1.10.3/ui/jquery.ui.progressbar.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2125 - (hide annotations) (download) (as text)
Wed Mar 12 19:30:05 2014 UTC (10 years, 3 months ago) by torben
File MIME type: application/javascript
File size: 3368 byte(s)
initial import
1 torben 2125 /*!
2     * jQuery UI Progressbar 1.10.3
3     * http://jqueryui.com
4     *
5     * Copyright 2013 jQuery Foundation and other contributors
6     * Released under the MIT license.
7     * http://jquery.org/license
8     *
9     * http://api.jqueryui.com/progressbar/
10     *
11     * Depends:
12     * jquery.ui.core.js
13     * jquery.ui.widget.js
14     */
15     (function( $, undefined ) {
16    
17     $.widget( "ui.progressbar", {
18     version: "1.10.3",
19     options: {
20     max: 100,
21     value: 0,
22    
23     change: null,
24     complete: null
25     },
26    
27     min: 0,
28    
29     _create: function() {
30     // Constrain initial value
31     this.oldValue = this.options.value = this._constrainedValue();
32    
33     this.element
34     .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
35     .attr({
36     // Only set static values, aria-valuenow and aria-valuemax are
37     // set inside _refreshValue()
38     role: "progressbar",
39     "aria-valuemin": this.min
40     });
41    
42     this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
43     .appendTo( this.element );
44    
45     this._refreshValue();
46     },
47    
48     _destroy: function() {
49     this.element
50     .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
51     .removeAttr( "role" )
52     .removeAttr( "aria-valuemin" )
53     .removeAttr( "aria-valuemax" )
54     .removeAttr( "aria-valuenow" );
55    
56     this.valueDiv.remove();
57     },
58    
59     value: function( newValue ) {
60     if ( newValue === undefined ) {
61     return this.options.value;
62     }
63    
64     this.options.value = this._constrainedValue( newValue );
65     this._refreshValue();
66     },
67    
68     _constrainedValue: function( newValue ) {
69     if ( newValue === undefined ) {
70     newValue = this.options.value;
71     }
72    
73     this.indeterminate = newValue === false;
74    
75     // sanitize value
76     if ( typeof newValue !== "number" ) {
77     newValue = 0;
78     }
79    
80     return this.indeterminate ? false :
81     Math.min( this.options.max, Math.max( this.min, newValue ) );
82     },
83    
84     _setOptions: function( options ) {
85     // Ensure "value" option is set after other values (like max)
86     var value = options.value;
87     delete options.value;
88    
89     this._super( options );
90    
91     this.options.value = this._constrainedValue( value );
92     this._refreshValue();
93     },
94    
95     _setOption: function( key, value ) {
96     if ( key === "max" ) {
97     // Don't allow a max less than min
98     value = Math.max( this.min, value );
99     }
100    
101     this._super( key, value );
102     },
103    
104     _percentage: function() {
105     return this.indeterminate ? 100 : 100 * ( this.options.value - this.min ) / ( this.options.max - this.min );
106     },
107    
108     _refreshValue: function() {
109     var value = this.options.value,
110     percentage = this._percentage();
111    
112     this.valueDiv
113     .toggle( this.indeterminate || value > this.min )
114     .toggleClass( "ui-corner-right", value === this.options.max )
115     .width( percentage.toFixed(0) + "%" );
116    
117     this.element.toggleClass( "ui-progressbar-indeterminate", this.indeterminate );
118    
119     if ( this.indeterminate ) {
120     this.element.removeAttr( "aria-valuenow" );
121     if ( !this.overlayDiv ) {
122     this.overlayDiv = $( "<div class='ui-progressbar-overlay'></div>" ).appendTo( this.valueDiv );
123     }
124     } else {
125     this.element.attr({
126     "aria-valuemax": this.options.max,
127     "aria-valuenow": value
128     });
129     if ( this.overlayDiv ) {
130     this.overlayDiv.remove();
131     this.overlayDiv = null;
132     }
133     }
134    
135     if ( this.oldValue !== value ) {
136     this.oldValue = value;
137     this._trigger( "change" );
138     }
139     if ( value === this.options.max ) {
140     this._trigger( "complete" );
141     }
142     }
143     });
144    
145     })( jQuery );

  ViewVC Help
Powered by ViewVC 1.1.20