Skip to content
This repository was archived by the owner on Oct 8, 2021. It is now read-only.

Commit a3b0f79

Browse files
cgackarschmitz
authored andcommitted
Rangeslider: Allow enabling after disabling
Fixes gh-7547 Closes gh-7621 (cherry picked from commit fc0acb5)
1 parent 2cc4285 commit a3b0f79

File tree

3 files changed

+49
-0
lines changed

3 files changed

+49
-0
lines changed

js/widgets/forms/rangeslider.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,11 @@ define( [ "jquery",
144144
if ( options.highlight !== undefined ) {
145145
this._setHighlight( options.highlight );
146146
}
147+
148+
if ( options.disabled !== undefined ) {
149+
this._setDisabled( options.disabled );
150+
}
151+
147152
this._super( options );
148153
this.refresh();
149154
},
@@ -250,6 +255,11 @@ define( [ "jquery",
250255
this._inputLast.slider( "option", "highlight", value );
251256
},
252257

258+
_setDisabled: function( value ) {
259+
this._inputFirst.prop( "disabled", value );
260+
this._inputLast.prop( "disabled", value );
261+
},
262+
253263
_destroy: function() {
254264
this._label.prependTo( this.element );
255265
this.element.removeClass( "ui-rangeslider ui-mini" );

tests/unit/rangeslider/index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@
5858
<input type="range" name="rangeslider-last" id="rangeslider-startstop-last" value="100" min="0" max="100" data-nstest-theme="b" data-nstest-track-theme="a" />
5959
</div>
6060
</div>
61+
<div data-nstest-role="rangeslider" id="disable-rangeslider">
62+
<input name="range-disabled-first" id="range-disabled-first" min="0" max="100" value="0" type="range">
63+
<input name="range-disabled-last" id="range-disabled-last" min="0" max="100" value="100" type="range">
64+
</div>
6165
</form>
6266
</div>
6367

tests/unit/rangeslider/rangeslider_core.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,5 +129,40 @@
129129

130130
], 50)
131131
});
132+
test( " Rangeslider is enabled/disabled correctly ", function() {
133+
var rangeslider = $( "#disable-rangeslider" ),
134+
inputFirst = $( "#range-disabled-first" ),
135+
inputLast = $( "#range-disabled-last" ),
136+
sliderFirst = rangeslider.find( ".ui-slider-track" ).first(),
137+
sliderLast = rangeslider.find( ".ui-slider-track" ).first();
138+
139+
rangeslider.rangeslider( { disabled: true } );
140+
141+
ok( !!inputFirst.attr( "disabled" ), "first input is disabled" );
142+
ok( inputFirst.hasClass( "mobile-slider-disabled"),
143+
"first input gets mobile-slider-disabled" );
144+
ok( !!sliderFirst.attr( "aria-disabled" ), "first slider is aria-disabled" );
145+
ok( sliderFirst.hasClass( "ui-state-disabled"), "first slider has ui-state-disabled" );
146+
ok( !!inputLast.attr( "disabled" ), "last input is disabled" );
147+
ok( inputLast.hasClass( "mobile-slider-disabled"),
148+
"last input gets mobile-slider-disabled" );
149+
ok( !!sliderLast.attr( "aria-disabled" ), "last slider is aria-disabled" );
150+
ok( sliderLast.hasClass( "ui-state-disabled"), "last slider has ui-state-disabled" );
151+
152+
rangeslider.rangeslider( {disabled: false } );
153+
154+
deepEqual( !!inputFirst.attr( "disabled" ), false, "first input is enabled" );
155+
ok( !inputFirst.hasClass( "mobile-slider-disabled"),
156+
"first input gets mobile-slider-disabled" );
157+
deepEqual( sliderFirst.attr( "aria-disabled" ), "false",
158+
"first slider aria-disabled is false" );
159+
ok( !sliderFirst.hasClass( "ui-state-disabled"), "first slider ui-state-disabled removed" );
160+
deepEqual( !!inputLast.attr( "disabled" ), false, "last input is enabled" );
161+
ok( !inputLast.hasClass( "mobile-slider-disabled"),
162+
"last input gets mobile-slider-disabled" );
163+
deepEqual( sliderLast.attr( "aria-disabled" ), "false",
164+
"last slider aria-disabled is false" );
165+
ok( !sliderLast.hasClass( "ui-state-disabled"), "last slider ui-state-disabled removed" );
166+
});
132167

133168
})( jQuery );

0 commit comments

Comments
 (0)