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

Commit bf20ef9

Browse files
cgackarschmitz
authored andcommitted
Slider: Implement Classes Option
Fixes gh-7716 Closes gh-8153
1 parent 93c5993 commit bf20ef9

File tree

12 files changed

+383
-488
lines changed

12 files changed

+383
-488
lines changed

build/tasks/options/jscs.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ module.exports = {
2626
"js/widgets/forms/rangeslider.js",
2727
"js/widgets/forms/rangeslider.backcompat.js",
2828
"js/tests/unit/rangeslider/*.js",
29+
"js/widgets/forms/slider.js",
30+
"js/widgets/forms/slider.backcompat.js",
31+
"js/tests/unit/slider/*.js",
2932
"js/widgets/controlgroup.js",
3033
"js/widgets/controlgroup.backcompat.js",
3134
"js/widgets/tabs.ajax.js",

demos/jqm-contents.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,6 @@
215215
<div class="ui-collapsible-content ui-body-inherit ui-collapsible-content-collapsed" aria-hidden="true">
216216
<ul>
217217
<li data-filtertext="form slider widget range input single sliders"><a href="../slider/" data-ajax="false">Slider</a></li>
218-
<li data-filtertext="form slider widget flipswitch slider binary select flip toggle switch"><a href="../slider-flipswitch/" data-ajax="false">Slider flip toggle switch</a></li>
219218
<li data-filtertext="form slider tooltip handle value input range sliders"><a href="../slider-tooltip/" data-ajax="false">Slider tooltip</a></li>
220219
</ul>
221220
</div>

demos/slider/index.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343

4444
<h1>Slider <a href="http://api.jquerymobile.com/slider/" class="jqm-api-docs-link ui-button ui-nodisc-icon ui-alt-icon ui-button-inline ui-corner-all ui-mini">API <span class="ui-icon ui-icon-caret-r"></span></a></h1>
4545

46-
<p>Sliders are used to enter numeric values along a continuum and can also be dual handle <a href="../rangeslider/">range sliders</a> or <a href="../slider-flipswitch/">flip switches</a>.
46+
<p>Sliders are used to enter numeric values along a continuum and can also be dual handle <a href="../rangeslider/">range sliders</a>.
4747
</p>
4848

4949
<h2>Basic slider</h2>

js/index.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
'widgets/forms/flipswitch.js',
7272
'widgets/forms/flipswitch.backcompat.js',
7373
'widgets/forms/slider.js',
74+
'widgets/forms/slider.backcompat.js',
7475
'widgets/forms/slider.tooltip.js',
7576
'widgets/forms/rangeslider.js',
7677
'widgets/forms/rangeslider.backcompat.js',

js/jquery.mobile.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"./widgets/forms/checkboxradio",
4141
"./widgets/forms/checkboxradio.backcompat",
4242
"./widgets/forms/slider",
43+
"./widgets/forms/slider.backcompat",
4344
"./widgets/forms/slider.tooltip",
4445
"./widgets/forms/flipswitch",
4546
"./widgets/forms/flipswitch.backcompat",

js/widgets/forms/slider.backcompat.js

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
/*!
2+
* jQuery Mobile Slider Backcompat @VERSION
3+
* http://jquerymobile.com
4+
*
5+
* Copyright jQuery Foundation and other contributors
6+
* Released under the MIT license.
7+
* http://jquery.org/license
8+
*/
9+
10+
//>>label: Slider
11+
//>>group: Forms
12+
//>>description: Deprecated Slider features
13+
14+
( function( factory ) {
15+
if ( typeof define === "function" && define.amd ) {
16+
17+
// AMD. Register as an anonymous module.
18+
define( [
19+
"jquery",
20+
"../widget.backcompat",
21+
"./slider" ], factory );
22+
} else {
23+
24+
// Browser globals
25+
factory( jQuery );
26+
}
27+
} )( function( $ ) {
28+
29+
if ( $.mobileBackcompat !== false ) {
30+
31+
$.widget( "mobile.slider", $.mobile.slider, {
32+
options: {
33+
corners: true,
34+
mini: false,
35+
highlight: false
36+
},
37+
classProp: "ui-slider",
38+
_create: function() {
39+
this._super();
40+
41+
if ( this.options.mini ) {
42+
this._addClass( this.slider, "ui-mini", null );
43+
}
44+
45+
if ( this.options.highlight && this.slider.find( ".ui-slider-bg" ).length === 0 ) {
46+
this.valuebg = ( function( slider ) {
47+
var bg = document.createElement( "div" );
48+
bg.className = "ui-slider-bg " + $.mobile.activeBtnClass;
49+
return $( bg ).prependTo( slider );
50+
} )( this.slider );
51+
}
52+
53+
if ( this.options.highlight ) {
54+
this._setHighlight( this.options.highlight );
55+
}
56+
57+
if ( this.options.corners !== undefined ) {
58+
this._setCorners( this.options.corners );
59+
}
60+
},
61+
62+
_setHighlight: function( value ) {
63+
if ( value ) {
64+
this.options.highlight = !!value;
65+
this.refresh();
66+
} else if ( this.valuebg ) {
67+
this.valuebg.remove();
68+
this.valuebg = false;
69+
}
70+
},
71+
72+
_setCorners: function( value ) {
73+
this._toggleClass( this.slider, null, "ui-corner-all", value );
74+
this._toggleClass( this.element, null, "ui-corner-all", value );
75+
}
76+
} );
77+
78+
$.widget( "mobile.slider", $.mobile.slider, $.mobile.widget.backcompat );
79+
80+
}
81+
82+
return $.mobile.slider;
83+
84+
} );

0 commit comments

Comments
 (0)