webshims-rails 1.12.0 → 1.12.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +440 -440
- data/vendor/assets/javascripts/webshims/polyfiller.js +132 -91
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +248 -91
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +21 -8
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +21 -8
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +9 -6
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +10 -1
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/32.js +7 -1
- data/vendor/assets/javascripts/webshims/shims/combos/33.js +7 -1
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +244 -85
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +255 -92
- data/vendor/assets/javascripts/webshims/shims/details.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +10 -7
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +53 -56
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +7 -1
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +175 -60
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +6 -6
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +77 -28
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +24 -16
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +40 -68
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +4 -4
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +13 -6
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +61 -24
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +278 -95
- data/vendor/assets/javascripts/webshims/shims/styles/progress.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +203 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-shim.scss +115 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +18 -2
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +227 -113
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +168 -159
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +106 -69
- metadata +4 -7
- data/vendor/assets/javascripts/webshims/shims/styles/details-arrows.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/polyfill-loader.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/range-track.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/vertical-range.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/swf/localStorage.swf +0 -0
@@ -481,10 +481,7 @@ if(!Modernizr.formattribute || !Modernizr.fieldsetdisabled || !Modernizr.fieldse
|
|
481
481
|
var nan = parseInt('NaN', 10);
|
482
482
|
|
483
483
|
var updateProgress = function(progress){
|
484
|
-
var position;
|
485
|
-
|
486
|
-
|
487
|
-
position = $.prop(progress, 'position');
|
484
|
+
var position = $.prop(progress, 'position');
|
488
485
|
|
489
486
|
$.attr(progress, 'data-position', position);
|
490
487
|
$('> span', progress).css({width: (position < 0 ? 100 : position * 100) +'%'});
|
@@ -508,8 +505,9 @@ if(!Modernizr.formattribute || !Modernizr.fieldsetdisabled || !Modernizr.fieldse
|
|
508
505
|
$.attr(this, 'aria-valuemax', max);
|
509
506
|
}
|
510
507
|
}
|
508
|
+
$(this).removeClass('ws-indeterminate');
|
511
509
|
} else if(updateProgress.isInChange) {
|
512
|
-
$(this).removeAttr('aria-valuenow');
|
510
|
+
$(this).removeAttr('aria-valuenow').addClass('ws-indeterminate');
|
513
511
|
}
|
514
512
|
return ret;
|
515
513
|
},
|
@@ -584,7 +582,9 @@ if(!Modernizr.formattribute || !Modernizr.fieldsetdisabled || !Modernizr.fieldse
|
|
584
582
|
} else {
|
585
583
|
webshims.info("you should use label elements for your prgogress elements");
|
586
584
|
}
|
587
|
-
|
585
|
+
if($(this).css('direction') == 'rtl'){
|
586
|
+
$(this).addClass('ws-is-rtl');
|
587
|
+
}
|
588
588
|
updateProgress.isInChange = 'max';
|
589
589
|
updateProgress(this);
|
590
590
|
updateProgress.isInChange = false;
|
@@ -2,7 +2,8 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
2
2
|
"use strict";
|
3
3
|
|
4
4
|
var isWebkit = 'webkitURL' in window;
|
5
|
-
var
|
5
|
+
var hasNative = Modernizr.formvalidation && !webshims.bugs.bustedValidity;
|
6
|
+
var chromeBugs = isWebkit && hasNative;
|
6
7
|
var webkitVersion = chromeBugs && parseFloat((navigator.userAgent.match(/Safari\/([\d\.]+)/) || ['', '999999'])[1], 10);
|
7
8
|
|
8
9
|
var iVal = options.iVal;
|
@@ -215,25 +216,42 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
215
216
|
setRoot();
|
216
217
|
webshims.ready('DOM', setRoot);
|
217
218
|
|
218
|
-
|
219
|
+
var rtlReg = /right|left/g;
|
220
|
+
var rtlReplace = function(ret){
|
221
|
+
return ret == 'left' ? 'right' : 'left';
|
222
|
+
};
|
219
223
|
webshims.getRelOffset = function(posElem, relElem, opts){
|
220
224
|
var offset, bodyOffset, dirs;
|
221
225
|
posElem = $(posElem);
|
222
|
-
$.swap(
|
226
|
+
$.swap(posElem[0], resetPos, function(){
|
227
|
+
var isRtl;
|
223
228
|
if($.position && opts && $.position.getScrollInfo){
|
224
229
|
if(!opts.of){
|
225
230
|
opts.of = relElem;
|
226
231
|
}
|
227
232
|
|
233
|
+
isRtl = $(opts.of).css('direction') == 'rtl';
|
234
|
+
if(!opts.isRtl){
|
235
|
+
opts.isRtl = false;
|
236
|
+
}
|
237
|
+
if(opts.isRtl != isRtl){
|
238
|
+
opts.my = (opts.my || 'center').replace(rtlReg, rtlReplace);
|
239
|
+
opts.at = (opts.at || 'center').replace(rtlReg, rtlReplace);
|
240
|
+
opts.isRtl = isRtl;
|
241
|
+
}
|
242
|
+
|
243
|
+
posElem[opts.isRtl ? 'addClass' : 'removeClass']('ws-is-rtl');
|
244
|
+
|
228
245
|
opts.using = function(calced, data){
|
229
246
|
posElem.attr({'data-horizontal': data.horizontal, 'data-vertical': data.vertical});
|
230
247
|
offset = calced;
|
231
248
|
};
|
249
|
+
|
232
250
|
posElem.attr({
|
233
251
|
'data-horizontal': '',
|
234
252
|
'data-vertical': '',
|
235
|
-
'data-my': opts.my
|
236
|
-
'data-at': opts.at
|
253
|
+
'data-my': opts.my,
|
254
|
+
'data-at': opts.at
|
237
255
|
});
|
238
256
|
posElem.position(opts);
|
239
257
|
|
@@ -463,6 +481,9 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
463
481
|
try {
|
464
482
|
focusElem[0].focus();
|
465
483
|
} catch(e){}
|
484
|
+
if(!focusElem[0].offsetWidth && !focusElem[0].offsetHeight){
|
485
|
+
webshims.warn('invalid element seems to be hidden. Make element either visible or use disabled/readonly to bar elements from validation. With fieldset[disabled] a group of elements can be ignored.');
|
486
|
+
}
|
466
487
|
api.element.triggerHandler('pospopover');
|
467
488
|
};
|
468
489
|
|
@@ -546,6 +567,16 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
546
567
|
return fieldWrapper;
|
547
568
|
},
|
548
569
|
_createContentMessage: (function(){
|
570
|
+
var noValidate = function(){
|
571
|
+
return !noValidate.types[this.type];
|
572
|
+
};
|
573
|
+
noValidate.types = {
|
574
|
+
hidden: 1,
|
575
|
+
image: 1,
|
576
|
+
button: 1,
|
577
|
+
reset: 1,
|
578
|
+
submit: 1
|
579
|
+
};
|
549
580
|
var fields = {};
|
550
581
|
var deCamelCase = function(c){
|
551
582
|
return '-'+(c).toLowerCase();
|
@@ -566,26 +597,36 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
566
597
|
var cName = name.replace(/[A-Z]/, deCamelCase);
|
567
598
|
fields[name] = '.'+cName+', .'+name+', .'+(name).toLowerCase()+', [data-errortype="'+ name +'"]';
|
568
599
|
});
|
569
|
-
return function(elem, errorBox){
|
600
|
+
return function(elem, errorBox, fieldWrapper){
|
570
601
|
var extended = false;
|
571
|
-
var
|
572
|
-
|
573
|
-
errorMessages = {defaultMessage: errorMessages};
|
574
|
-
}
|
602
|
+
var descriptiveMessages = {};
|
603
|
+
|
575
604
|
$(errorBox).children().each(function(){
|
576
605
|
var name = getErrorName(this);
|
577
|
-
|
578
|
-
|
579
|
-
|
606
|
+
descriptiveMessages[name] = $(this).html();
|
607
|
+
});
|
608
|
+
|
609
|
+
$('input, select, textarea', fieldWrapper).filter(noValidate).each(function(i, elem){
|
610
|
+
var errorMessages = $(elem).data('errormessage') || {};
|
611
|
+
if(typeof errorMessages == 'string'){
|
612
|
+
errorMessages = {defaultMessage: errorMessages};
|
613
|
+
}
|
614
|
+
|
615
|
+
$.each(descriptiveMessages, function(name, val){
|
616
|
+
if(!errorMessages[name]){
|
617
|
+
extended = true;
|
618
|
+
errorMessages[name] = val;
|
619
|
+
}
|
620
|
+
});
|
621
|
+
|
622
|
+
if(extended){
|
623
|
+
$(elem).data('errormessage', errorMessages);
|
624
|
+
}
|
625
|
+
if(webshims.getOptions){
|
626
|
+
webshims.getOptions(elem, 'errormessage');
|
580
627
|
}
|
581
628
|
});
|
582
|
-
|
583
|
-
if(extended){
|
584
|
-
$(elem).data('errormessage', errorMessages);
|
585
|
-
}
|
586
|
-
if(webshims.getOptions){
|
587
|
-
webshims.getOptions(elem, 'errormessage');
|
588
|
-
}
|
629
|
+
|
589
630
|
};
|
590
631
|
})(),
|
591
632
|
initIvalContentMessage: function(elem){
|
@@ -600,10 +641,10 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
600
641
|
var errorBox = fieldWrapper.data('errorbox');
|
601
642
|
if(!errorBox){
|
602
643
|
errorBox = this.create(elem, fieldWrapper);
|
603
|
-
this._createContentMessage(elem, errorBox);
|
644
|
+
this._createContentMessage(elem, errorBox, fieldWrapper);
|
604
645
|
} else if(typeof errorBox == 'string'){
|
605
646
|
errorBox = $('#'+errorBox);
|
606
|
-
fieldWrapper.data('errorbox', errorBox);
|
647
|
+
fieldWrapper.data('errorbox', errorBox, fieldWrapper);
|
607
648
|
this._createContentMessage(elem, errorBox);
|
608
649
|
}
|
609
650
|
return errorBox;
|
@@ -622,8 +663,9 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
622
663
|
hideError: function(elem, reset){
|
623
664
|
var invalid;
|
624
665
|
var fieldWrapper = this.getFieldWrapper(elem);
|
625
|
-
|
626
|
-
|
666
|
+
//only if an errorbox was already created! don't use this.get here!
|
667
|
+
var errorBox = fieldWrapper.data('errorbox');
|
668
|
+
|
627
669
|
if(errorBox && errorBox.jquery){
|
628
670
|
$(elem).filter('input').off('.recheckinvalid');
|
629
671
|
if(!reset && (invalid = $('input:invalid, select:invalid, textarea:invalid', fieldWrapper)[0])){
|
@@ -726,7 +768,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
726
768
|
},
|
727
769
|
firstinvalid: function(e){
|
728
770
|
if(iVal.sel && iVal.handleBubble){
|
729
|
-
|
771
|
+
var form = $(e.target).jProp('form');
|
730
772
|
if(form.is(iVal.sel)){
|
731
773
|
e.preventDefault();
|
732
774
|
if(iVal.handleBubble != 'none'){
|
@@ -767,11 +809,11 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
767
809
|
var firstEvent,
|
768
810
|
invalids = [],
|
769
811
|
stopSubmitTimer,
|
770
|
-
|
812
|
+
stop
|
771
813
|
;
|
772
814
|
|
773
815
|
$(document).on('invalid', function(e){
|
774
|
-
if(e.wrongWebkitInvalid){return;}
|
816
|
+
if(e.wrongWebkitInvalid || stop){return;}
|
775
817
|
var jElm = $(e.target);
|
776
818
|
|
777
819
|
|
@@ -793,7 +835,14 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
793
835
|
//reset firstinvalid
|
794
836
|
firstEvent = false;
|
795
837
|
invalids = [];
|
838
|
+
stop = true;
|
796
839
|
$(e.target).trigger(lastEvent, [lastEvent]);
|
840
|
+
/*
|
841
|
+
if(hasNative && !$.nodeName(e.target, 'form')){
|
842
|
+
$(e.target).jProp('form').triggerHandler('invalid');
|
843
|
+
}
|
844
|
+
*/
|
845
|
+
stop = false;
|
797
846
|
}, 9);
|
798
847
|
jElm = null;
|
799
848
|
});
|
@@ -936,7 +985,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
936
985
|
}
|
937
986
|
});
|
938
987
|
}
|
939
|
-
if(webshims.cfg.debug !== false){
|
988
|
+
if(webshims.cfg.debug !== false && iVal.sel != '.ws-instantvalidation'){
|
940
989
|
$(function(){
|
941
990
|
if($('form.ws-instantvalidation').length){
|
942
991
|
webshims.error('.ws-instantvalidation was renamed to .ws-validate');
|
@@ -32,7 +32,7 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
32
32
|
webshims.customErrorMessages[name][''] = defaultMessage || name;
|
33
33
|
}
|
34
34
|
if(formReady){
|
35
|
-
$('input, select, textarea')
|
35
|
+
$('input, select, textarea, fieldset[data-dependent-validation]')
|
36
36
|
.filter(noValidate)
|
37
37
|
.each(function(){
|
38
38
|
testValidityRules(this);
|
@@ -42,7 +42,7 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
42
42
|
};
|
43
43
|
webshims.refreshCustomValidityRules = function(elem){
|
44
44
|
if(!initTest){return;}
|
45
|
-
|
45
|
+
var val;
|
46
46
|
var data = $(elem).data() || $.data(elem, {});
|
47
47
|
var customMismatchedRule = data.customMismatchedRule;
|
48
48
|
var validity = $.prop(elem, 'validity') || {};
|
@@ -75,8 +75,8 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
75
75
|
$(elem).setCustomValidity(message);
|
76
76
|
blockCustom = false;
|
77
77
|
};
|
78
|
-
if(customMismatchedRule || validity.valid
|
79
|
-
|
78
|
+
if(customMismatchedRule || validity.valid){
|
79
|
+
val = $(elem).val();
|
80
80
|
$.each(customValidityRules, function(name, test){
|
81
81
|
message = test(elem, val, data, setMessage) || '';
|
82
82
|
customMismatchedRule = name;
|
@@ -84,6 +84,10 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
84
84
|
return false;
|
85
85
|
}
|
86
86
|
});
|
87
|
+
|
88
|
+
if(data.dependentValidation && !data.dependentValidation._init && !data.dependentValidation.masterElement){
|
89
|
+
customValidityRules.dependent(elem, val, data, $.noop);
|
90
|
+
}
|
87
91
|
if(message != 'async' && (message || !validity.valid)){
|
88
92
|
setMessage(message, customMismatchedRule);
|
89
93
|
}
|
@@ -107,7 +111,7 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
107
111
|
setTimeout(function(){
|
108
112
|
webshims.addReady(function(context, selfElement){
|
109
113
|
initTest = true;
|
110
|
-
$('input, select, textarea', context).add(selfElement.filter('input, select, textarea'))
|
114
|
+
$('input, select, textarea, fieldset[data-dependent-validation]', context).add(selfElement.filter('input, select, textarea, fieldset[data-dependent-validation]'))
|
111
115
|
.filter(noValidate)
|
112
116
|
.each(function(){
|
113
117
|
testValidityRules(this);
|
@@ -147,6 +151,10 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
147
151
|
|
148
152
|
addCustomValidityRule('tooShort', function(elem, val, data){
|
149
153
|
if(!val || !data.minlength){return;}
|
154
|
+
|
155
|
+
if($.nodeName(elem, 'input')){
|
156
|
+
webshims.warn('depreacated data-minlength usage: Use pattern=".{'+ data.minlength +'3,}" instead.');
|
157
|
+
}
|
150
158
|
return data.minlength > val.length;
|
151
159
|
}, 'Entered value is too short.');
|
152
160
|
|
@@ -236,7 +244,7 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
236
244
|
|
237
245
|
|
238
246
|
data.masterElement = document.getElementById(data["from"]) || (document.getElementsByName(data["from"] || [])[0]);
|
239
|
-
|
247
|
+
data._init = true;
|
240
248
|
if (!data.masterElement || !data.masterElement.form) {return;}
|
241
249
|
|
242
250
|
if(/radio|checkbox/i.test(data.masterElement.type)){
|
@@ -307,16 +315,16 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
307
315
|
this.restartAjax = false;
|
308
316
|
this.ajaxLoading = true;
|
309
317
|
$.ajax(
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
318
|
+
$.extend({}, opts, {
|
319
|
+
url: opts.url,
|
320
|
+
dataType: 'json',
|
321
|
+
depData: remoteData,
|
322
|
+
data: formCFG.fullRemoteForm || opts.fullForm ?
|
323
|
+
$(elem).jProp('form').serializeArray() :
|
324
|
+
remoteData,
|
325
|
+
success: this.getResponse,
|
326
|
+
complete: this._complete
|
327
|
+
})
|
320
328
|
);
|
321
329
|
}
|
322
330
|
},
|
@@ -513,7 +513,9 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
513
513
|
var elem = this;
|
514
514
|
setTimeout(function(){
|
515
515
|
elem.focus();
|
516
|
-
elem.select
|
516
|
+
if(elem.select){
|
517
|
+
elem.select();
|
518
|
+
}
|
517
519
|
}, 4);
|
518
520
|
|
519
521
|
stopTab();
|
@@ -526,8 +528,7 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
526
528
|
try {
|
527
529
|
$(this).next().next('input, select').each(select);
|
528
530
|
}
|
529
|
-
catch (er) {
|
530
|
-
}
|
531
|
+
catch (er) {}
|
531
532
|
}
|
532
533
|
}
|
533
534
|
else
|
@@ -586,9 +587,13 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
586
587
|
mouseDownInit();
|
587
588
|
}
|
588
589
|
var ret = false;
|
590
|
+
|
589
591
|
if (!factor) {
|
590
592
|
factor = 1;
|
591
593
|
}
|
594
|
+
if(o.stepfactor){
|
595
|
+
factor *= o.stepfactor;
|
596
|
+
}
|
592
597
|
try {
|
593
598
|
that.elemHelper[name](factor);
|
594
599
|
|
@@ -602,6 +607,9 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
602
607
|
}
|
603
608
|
if (ret !== false && o.value != ret) {
|
604
609
|
that.value(ret);
|
610
|
+
if(o.toFixed && o.type == 'number'){
|
611
|
+
that.element[0].value = that.toFixed(that.element[0].value, true);
|
612
|
+
}
|
605
613
|
eventTimer.call('input', ret);
|
606
614
|
}
|
607
615
|
return ret;
|
@@ -928,7 +936,7 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
928
936
|
if(data.options.useDecadeBase == 'max' && max[0]){
|
929
937
|
xthCorrect = 11 - (max[0] % 12);
|
930
938
|
} else if(data.options.useDecadeBase == 'min' && min[0]){
|
931
|
-
xthCorrect =
|
939
|
+
xthCorrect = 0 - (min[0] % 12);
|
932
940
|
}
|
933
941
|
|
934
942
|
value = value[0] * 1;
|
@@ -989,11 +997,11 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
989
997
|
|
990
998
|
picker.getMonthList = function(value, data){
|
991
999
|
|
992
|
-
var j, i, name, val, disabled, lis,
|
1000
|
+
var j, i, name, val, disabled, lis, prevDisabled, nextDisabled, classStr, classArray;
|
993
1001
|
var o = data.options;
|
994
1002
|
var size = o.size;
|
995
|
-
var max = o.
|
996
|
-
var min = o.
|
1003
|
+
var max = o.maxS;
|
1004
|
+
var min = o.minS;
|
997
1005
|
var cols = o.cols || 4;
|
998
1006
|
var currentValue = o.value.split('-');
|
999
1007
|
var enabled = 0;
|
@@ -1015,9 +1023,7 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
1015
1023
|
|
1016
1024
|
if( !picker.isInRange([value, '01'], max, min) && !picker.isInRange([value, '12'], max, min)){
|
1017
1025
|
disabled = ' disabled=""';
|
1018
|
-
fullyDisabled = true;
|
1019
1026
|
} else {
|
1020
|
-
fullyDisabled = false;
|
1021
1027
|
disabled = '';
|
1022
1028
|
}
|
1023
1029
|
|
@@ -1034,7 +1040,7 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
1034
1040
|
val = curCfg.date.monthkeys[i+1];
|
1035
1041
|
name = getMonthNameHTML(i);
|
1036
1042
|
classArray = [];
|
1037
|
-
if(
|
1043
|
+
if(!picker.isInRange([value, val], max, min) ){
|
1038
1044
|
disabled = ' disabled=""';
|
1039
1045
|
} else {
|
1040
1046
|
disabled = '';
|
@@ -1343,47 +1349,6 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
1343
1349
|
}
|
1344
1350
|
return options;
|
1345
1351
|
};
|
1346
|
-
|
1347
|
-
picker.createYearSelect = function(value, max, min, valueAdd, stepper){
|
1348
|
-
if(!stepper){
|
1349
|
-
stepper = {start: value, step: 1, label: value};
|
1350
|
-
}
|
1351
|
-
var temp;
|
1352
|
-
var goUp = true;
|
1353
|
-
var goDown = true;
|
1354
|
-
var options = ['<option selected="">'+ stepper.label + '</option>'];
|
1355
|
-
var i = 0;
|
1356
|
-
var createOption = function(value, add){
|
1357
|
-
var value2, label;
|
1358
|
-
if(stepper.step > 1){
|
1359
|
-
value2 = value + stepper.step - 1;
|
1360
|
-
label = value+' – '+value2;
|
1361
|
-
} else {
|
1362
|
-
label = value;
|
1363
|
-
}
|
1364
|
-
|
1365
|
-
if(picker.isInRange([value], max, min) || (value2 && picker.isInRange([value2], max, min))){
|
1366
|
-
options[add]('<option value="'+ (value+valueAdd) +'">'+ label +'</option>');
|
1367
|
-
return true;
|
1368
|
-
}
|
1369
|
-
};
|
1370
|
-
if(!valueAdd){
|
1371
|
-
valueAdd = '';
|
1372
|
-
}
|
1373
|
-
while(i < 18 && (goUp || goDown)){
|
1374
|
-
i++;
|
1375
|
-
if(goUp){
|
1376
|
-
temp = stepper.start - (i * stepper.step);
|
1377
|
-
goUp = createOption(temp, 'unshift');
|
1378
|
-
}
|
1379
|
-
if(goDown){
|
1380
|
-
temp = stepper.start + (i * stepper.step);
|
1381
|
-
goDown = createOption(temp, 'push');
|
1382
|
-
}
|
1383
|
-
|
1384
|
-
}
|
1385
|
-
return options;
|
1386
|
-
};
|
1387
1352
|
|
1388
1353
|
(function(){
|
1389
1354
|
var retNames = function(name){
|
@@ -1401,16 +1366,18 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
1401
1366
|
};
|
1402
1367
|
var setDirButtons = function(content, popover, dir){
|
1403
1368
|
if(content[dir]){
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
1411
|
-
|
1412
|
-
|
1413
|
-
|
1369
|
+
//set content and idl attribute (content for css + idl for IE8-)
|
1370
|
+
popover[dir+'Element']
|
1371
|
+
.attr(content[dir])
|
1372
|
+
.prop({disabled: false})
|
1373
|
+
.prop(content[dir])
|
1374
|
+
;
|
1375
|
+
} else {
|
1376
|
+
popover[dir+'Element']
|
1377
|
+
.removeAttr('data-action')
|
1378
|
+
.prop({disabled: true})
|
1379
|
+
;
|
1380
|
+
}
|
1414
1381
|
};
|
1415
1382
|
|
1416
1383
|
$.each({'setYearList' : ['Year', 'Month', 'Day', 'Time'], 'setMonthList': ['Month', 'Day', 'Time'], 'setDayList': ['Day', 'Time'], 'setTimeList': ['Time']}, function(setName, names){
|
@@ -1427,7 +1394,7 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
1427
1394
|
if(i >= startAt){
|
1428
1395
|
var content = picker[item](values, data);
|
1429
1396
|
|
1430
|
-
if( values.length < 2 || content.enabled > 1 || stops[data.type] === names[i]){
|
1397
|
+
if( values.length < 2 || content.enabled > 1 || content.prev || content.next || stops[data.type] === names[i]){
|
1431
1398
|
popover.element
|
1432
1399
|
.attr({'data-currentview': setNames[i]})
|
1433
1400
|
.addClass('ws-size-'+o.size)
|
@@ -1580,8 +1547,11 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
1580
1547
|
popover.yearPrevElement
|
1581
1548
|
.attr({'aria-label': curCfg.date.prevText})
|
1582
1549
|
;
|
1583
|
-
|
1584
|
-
|
1550
|
+
popover.contentElement.attr({
|
1551
|
+
dir: curCfg.date.isRTL ? 'rtl' : 'ltr',
|
1552
|
+
lang: webshims.formcfg.__activeName
|
1553
|
+
});
|
1554
|
+
|
1585
1555
|
generateList(o, o.maxS, o.minS);
|
1586
1556
|
|
1587
1557
|
if(popover.isVisible){
|
@@ -1593,7 +1563,6 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
1593
1563
|
popover.isDirty = false;
|
1594
1564
|
};
|
1595
1565
|
|
1596
|
-
|
1597
1566
|
if(data.type == 'time'){
|
1598
1567
|
o.minView = 3;
|
1599
1568
|
o.startView = 3;
|
@@ -1620,7 +1589,7 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
1620
1589
|
|
1621
1590
|
|
1622
1591
|
|
1623
|
-
popover.contentElement.html('<div class="prev-controls ws-picker-controls"><button class="ws-super-prev ws-year-btn" tabindex="0"></button><button class="ws-prev" tabindex="0"></button></div> <div class="next-controls ws-picker-controls"><button class="ws-next" tabindex="0"></button><button class="ws-super-next ws-year-btn" tabindex="0"></button></div><div class="ws-picker-body"></div><div class="ws-button-row"><button type="button" class="ws-current" data-action="changeInput" value="'+today[data.type]+'" tabindex="0"></button> <button type="button" data-action="changeInput" value="" class="ws-empty" tabindex="0"></button></div>');
|
1592
|
+
popover.contentElement.html('<div class="prev-controls ws-picker-controls"><button class="ws-super-prev ws-year-btn" tabindex="0" type="button"></button><button class="ws-prev" tabindex="0" type="button"></button></div> <div class="next-controls ws-picker-controls"><button class="ws-next" tabindex="0" type="button"></button><button class="ws-super-next ws-year-btn" tabindex="0" type="button"></button></div><div class="ws-picker-body"></div><div class="ws-button-row"><button type="button" class="ws-current" data-action="changeInput" value="'+today[data.type]+'" tabindex="0"></button> <button type="button" data-action="changeInput" value="" class="ws-empty" tabindex="0"></button></div>');
|
1624
1593
|
popover.nextElement = $('button.ws-next', popover.contentElement);
|
1625
1594
|
popover.prevElement = $('button.ws-prev', popover.contentElement);
|
1626
1595
|
popover.yearNextElement = $('button.ws-super-next', popover.contentElement);
|
@@ -1642,10 +1611,13 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
1642
1611
|
}
|
1643
1612
|
});
|
1644
1613
|
$(document).onTrigger('wslocalechange', data._propertyChange);
|
1645
|
-
|
1646
|
-
if(o.inlinePicker){
|
1614
|
+
if(o.updateOnInput == null && (o.inlinePicker || o.noChangeDismiss)){
|
1647
1615
|
o.updateOnInput = true;
|
1648
1616
|
}
|
1617
|
+
if(o.inlinePicker){
|
1618
|
+
popover.element.attr('data-class', $.prop(data.orig, 'className'));
|
1619
|
+
popover.element.attr('data-id', $.prop(data.orig, 'id'));
|
1620
|
+
}
|
1649
1621
|
|
1650
1622
|
$(o.orig).trigger('pickercreated');
|
1651
1623
|
};
|