webshims-rails 1.12.0 → 1.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
};
|