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

Commit e583413

Browse files
Slider: Added option corners. Fixed setting options theme, trackTheme and mini. Fixes #6037.
1 parent 698ffb2 commit e583413

File tree

2 files changed

+39
-15
lines changed

2 files changed

+39
-15
lines changed

js/widgets/forms/rangeslider.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ define( [ "jquery",
1919
options: {
2020
theme: null,
2121
trackTheme: null,
22+
corners: true,
2223
mini: false,
2324
highlight: true
2425
},
@@ -135,6 +136,7 @@ define( [ "jquery",
135136
theme: o.theme,
136137
trackTheme: o.trackTheme,
137138
disabled: o.disabled,
139+
corners: o.corners,
138140
mini: o.mini,
139141
highlight: o.highlight
140142
}).slider( "refresh" );

js/widgets/forms/slider.js

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ $.widget( "mobile.slider", $.mobile.widget, $.extend( {
2020
options: {
2121
theme: null,
2222
trackTheme: null,
23+
corners: true,
2324
mini: false,
2425
highlight: false
2526
},
@@ -31,6 +32,8 @@ $.widget( "mobile.slider", $.mobile.widget, $.extend( {
3132
control = this.element,
3233
trackTheme = this.options.trackTheme || $.mobile.getAttribute( control[ 0 ], "theme", true ),
3334
trackThemeClass = trackTheme ? " ui-body-" + trackTheme : "",
35+
cornerClass = ( this.options.corners || control.jqmData( "corners" ) ) ? " ui-corner-all" : "",
36+
miniClass = ( this.options.mini || control.jqmData( "mini" ) ) ? " ui-mini" : "",
3437
cType = control[ 0 ].nodeName.toLowerCase(),
3538
isToggleSwitch = ( cType === "select" ),
3639
isRangeslider = control.parent().is( ":jqmData(role='rangeslider')" ),
@@ -42,7 +45,6 @@ $.widget( "mobile.slider", $.mobile.widget, $.extend( {
4245
min = !isToggleSwitch ? parseFloat( control.attr( "min" ) ) : 0,
4346
max = !isToggleSwitch ? parseFloat( control.attr( "max" ) ) : control.find( "option" ).length-1,
4447
step = window.parseFloat( control.attr( "step" ) || 1 ),
45-
miniClass = ( this.options.mini || control.jqmData( "mini" ) ) ? " ui-mini" : "",
4648
domHandle = document.createElement( "a" ),
4749
handle = $( domHandle ),
4850
domSlider = document.createElement( "div" ),
@@ -62,7 +64,7 @@ $.widget( "mobile.slider", $.mobile.widget, $.extend( {
6264

6365
domHandle.setAttribute( "href", "#" );
6466
domSlider.setAttribute( "role", "application" );
65-
domSlider.className = [ this.isToggleSwitch ? "ui-slider ui-slider-track ui-shadow-inset " : "ui-slider-track ui-shadow-inset ", selectClass, trackThemeClass, " ui-corner-all", miniClass ].join( "" );
67+
domSlider.className = [ this.isToggleSwitch ? "ui-slider ui-slider-track ui-shadow-inset " : "ui-slider-track ui-shadow-inset ", selectClass, trackThemeClass, cornerClass, miniClass ].join( "" );
6668
domHandle.className = "ui-slider-handle";
6769
domSlider.appendChild( domHandle );
6870

@@ -79,6 +81,7 @@ $.widget( "mobile.slider", $.mobile.widget, $.extend( {
7981
$.extend( this, {
8082
slider: slider,
8183
handle: handle,
84+
control: control,
8285
type: cType,
8386
step: step,
8487
max: max,
@@ -357,14 +360,16 @@ $.widget( "mobile.slider", $.mobile.widget, $.extend( {
357360
themeClass = theme ? " ui-btn-" + theme : "",
358361
trackTheme = this.options.trackTheme || parentTheme,
359362
trackThemeClass = trackTheme ? " ui-body-" + trackTheme : "",
363+
cornerClass = this.options.corners ? " ui-corner-all" : "",
364+
miniClass = this.options.mini ? " ui-mini" : "",
360365
left, width, data, tol,
361366
pxStep, percent,
362367
control, isInput, optionElements, min, max, step,
363368
newval, valModStep, alignValue, percentPerStep,
364369
handlePercent, aPercent, bPercent,
365370
valueChanged;
366371

367-
self.slider[0].className = [ this.isToggleSwitch ? "ui-slider ui-slider-switch ui-slider-track ui-shadow-inset" : "ui-slider-track ui-shadow-inset", trackThemeClass, " ui-corner-all", ( this.options.mini ) ? " ui-mini" : "" ].join( "" );
372+
self.slider[0].className = [ this.isToggleSwitch ? "ui-slider ui-slider-switch ui-slider-track ui-shadow-inset" : "ui-slider-track ui-shadow-inset", trackThemeClass, cornerClass, miniClass ].join( "" );
368373
if ( this.options.disabled || this.element.prop( "disabled" ) ) {
369374
this.disable();
370375
}
@@ -508,6 +513,28 @@ $.widget( "mobile.slider", $.mobile.widget, $.extend( {
508513
}
509514
},
510515

516+
_setTheme: function( value ) {
517+
this.handle
518+
.removeClass( "ui-btn-" + this.options.theme )
519+
.addClass( "ui-btn-" + value );
520+
521+
var currentTheme = this.options.theme ? this.options.theme : "inherit",
522+
newTheme = value ? value : "inherit";
523+
524+
this.control
525+
.removeClass( "ui-body-" + currentTheme )
526+
.addClass( "ui-body-" + newTheme );
527+
},
528+
529+
_setTrackTheme: function( value ) {
530+
var currentTrackTheme = this.options.trackTheme ? this.options.trackTheme : "inherit",
531+
newTrackTheme = value ? value : "inherit";
532+
533+
this.slider
534+
.removeClass( "ui-body-" + currentTrackTheme )
535+
.addClass( "ui-body-" + newTrackTheme );
536+
},
537+
511538
_setMini: function( value ) {
512539
value = !!value;
513540
if ( !this.isToggleSwitch && !this.isRangeslider ) {
@@ -516,18 +543,13 @@ $.widget( "mobile.slider", $.mobile.widget, $.extend( {
516543
}
517544
this.slider.toggleClass( "ui-mini", value );
518545
},
519-
520-
_setTheme: function( value ) {
521-
this.handle.removeClass( "ui-btn-" + this.options.theme ).addClass( "ui-btn-" + value );
522-
},
523-
524-
_setTrackTheme: function( value ) {
525-
var currentTheme = this.options.trackTheme ? this.options.trackTheme : "inherit",
526-
newTheme = value ? value : "inherit";
527-
528-
this.slider
529-
.removeClass( "ui-fill-" + currentTheme )
530-
.addClass( "ui-fill-" + newTheme );
546+
547+
_setCorners: function( value ) {
548+
this.slider.toggleClass( "ui-corner-all", value );
549+
550+
if ( !this.isToggleSwitch ) {
551+
this.control.toggleClass( "ui-corner-all", value );
552+
}
531553
},
532554

533555
_setDisabled: function( value ) {

0 commit comments

Comments
 (0)