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 );
 |