From f00c03139bf83e573b60376a146ae4584c5f5d17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Thu, 29 Jul 2010 05:38:24 -0400 Subject: [PATCH] Progressbar: cleanup. --- tests/unit/progressbar/progressbar_options.js | 14 +++++++ ui/jquery.ui.progressbar.js | 37 ++++++------------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/tests/unit/progressbar/progressbar_options.js b/tests/unit/progressbar/progressbar_options.js index a60b0efaf..269f93779 100644 --- a/tests/unit/progressbar/progressbar_options.js +++ b/tests/unit/progressbar/progressbar_options.js @@ -17,4 +17,18 @@ test("{ value : 5 }", function() { same( 5, $("#progressbar").progressbar("value") ); }); +test("{ value : -5 }", function() { + $("#progressbar").progressbar({ + value: -5 + }); + same( 0, $("#progressbar").progressbar("value") ); +}); + +test("{ value : 105 }", function() { + $("#progressbar").progressbar({ + value: 105 + }); + same( 100, $("#progressbar").progressbar("value") ); +}); + })(jQuery); diff --git a/ui/jquery.ui.progressbar.js b/ui/jquery.ui.progressbar.js index c19860d05..e0b728f1a 100644 --- a/ui/jquery.ui.progressbar.js +++ b/ui/jquery.ui.progressbar.js @@ -17,13 +17,17 @@ $.widget( "ui.progressbar", { options: { value: 0 }, + + min: 0, + max: 100, + _create: function() { this.element .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) .attr({ role: "progressbar", - "aria-valuemin": this._valueMin(), - "aria-valuemax": this._valueMax(), + "aria-valuemin": this.min, + "aria-valuemax": this.max, "aria-valuenow": this._value() }); @@ -56,12 +60,10 @@ $.widget( "ui.progressbar", { }, _setOption: function( key, value ) { - switch ( key ) { - case "value": - this.options.value = value; - this._refreshValue(); - this._trigger( "change" ); - break; + if ( key === "value" ) { + this.options.value = value; + this._refreshValue(); + this._trigger( "change" ); } $.Widget.prototype._setOption.apply( this, arguments ); @@ -73,28 +75,13 @@ $.widget( "ui.progressbar", { if ( typeof val !== "number" ) { val = 0; } - if ( val < this._valueMin() ) { - val = this._valueMin(); - } - if ( val > this._valueMax() ) { - val = this._valueMax(); - } - - return val; - }, - - _valueMin: function() { - return 0; - }, - - _valueMax: function() { - return 100; + return Math.min( this.max, Math.max( this.min, val ) ); }, _refreshValue: function() { var value = this.value(); this.valueDiv - [ value === this._valueMax() ? "addClass" : "removeClass"]( "ui-corner-right" ) + .toggleClass( "ui-corner-right", value === this.max ) .width( value + "%" ); this.element.attr( "aria-valuenow", value ); }