forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			109 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			109 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | /* | ||
|  |  * jQuery UI Progressbar 1.8.10 | ||
|  |  * | ||
|  |  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 | ||
|  |  * Dual licensed under the MIT or GPL Version 2 licenses. | ||
|  |  * http://jquery.org/license
 | ||
|  |  * | ||
|  |  * http://docs.jquery.com/UI/Progressbar
 | ||
|  |  * | ||
|  |  * Depends: | ||
|  |  *   jquery.ui.core.js | ||
|  |  *   jquery.ui.widget.js | ||
|  |  */ | ||
|  | (function( $, undefined ) { | ||
|  | 
 | ||
|  | $.widget( "ui.progressbar", { | ||
|  | 	options: { | ||
|  | 		value: 0, | ||
|  | 		max: 100 | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	min: 0, | ||
|  | 
 | ||
|  | 	_create: function() { | ||
|  | 		this.element | ||
|  | 			.addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) | ||
|  | 			.attr({ | ||
|  | 				role: "progressbar", | ||
|  | 				"aria-valuemin": this.min, | ||
|  | 				"aria-valuemax": this.options.max, | ||
|  | 				"aria-valuenow": this._value() | ||
|  | 			}); | ||
|  | 
 | ||
|  | 		this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" ) | ||
|  | 			.appendTo( this.element ); | ||
|  | 
 | ||
|  | 		this.oldValue = this._value(); | ||
|  | 		this._refreshValue(); | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	destroy: function() { | ||
|  | 		this.element | ||
|  | 			.removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) | ||
|  | 			.removeAttr( "role" ) | ||
|  | 			.removeAttr( "aria-valuemin" ) | ||
|  | 			.removeAttr( "aria-valuemax" ) | ||
|  | 			.removeAttr( "aria-valuenow" ); | ||
|  | 
 | ||
|  | 		this.valueDiv.remove(); | ||
|  | 
 | ||
|  | 		$.Widget.prototype.destroy.apply( this, arguments ); | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	value: function( newValue ) { | ||
|  | 		if ( newValue === undefined ) { | ||
|  | 			return this._value(); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		this._setOption( "value", newValue ); | ||
|  | 		return this; | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	_setOption: function( key, value ) { | ||
|  | 		if ( key === "value" ) { | ||
|  | 			this.options.value = value; | ||
|  | 			this._refreshValue(); | ||
|  | 			if ( this._value() === this.options.max ) { | ||
|  | 				this._trigger( "complete" ); | ||
|  | 			} | ||
|  | 		} | ||
|  | 
 | ||
|  | 		$.Widget.prototype._setOption.apply( this, arguments ); | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	_value: function() { | ||
|  | 		var val = this.options.value; | ||
|  | 		// normalize invalid value
 | ||
|  | 		if ( typeof val !== "number" ) { | ||
|  | 			val = 0; | ||
|  | 		} | ||
|  | 		return Math.min( this.options.max, Math.max( this.min, val ) ); | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	_percentage: function() { | ||
|  | 		return 100 * this._value() / this.options.max; | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	_refreshValue: function() { | ||
|  | 		var value = this.value(); | ||
|  | 		var percentage = this._percentage(); | ||
|  | 
 | ||
|  | 		if ( this.oldValue !== value ) { | ||
|  | 			this.oldValue = value; | ||
|  | 			this._trigger( "change" ); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		this.valueDiv | ||
|  | 			.toggleClass( "ui-corner-right", value === this.options.max ) | ||
|  | 			.width( percentage.toFixed(0) + "%" ); | ||
|  | 		this.element.attr( "aria-valuenow", value ); | ||
|  | 	} | ||
|  | }); | ||
|  | 
 | ||
|  | $.extend( $.ui.progressbar, { | ||
|  | 	version: "1.8.10" | ||
|  | }); | ||
|  | 
 | ||
|  | })( jQuery ); |