webshims-rails 1.12.2 → 1.12.3
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 +2 -40
- data/vendor/assets/javascripts/webshims/polyfiller.js +10 -18
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +5 -2
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +3 -2
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +3 -2
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +26 -19
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +29 -19
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +31 -21
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +3 -2
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +5 -2
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +3 -2
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +3 -2
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +26 -19
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +29 -19
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +29 -19
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +26 -19
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +31 -21
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +31 -21
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/form-core.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +3 -3
- data/vendor/assets/javascripts/webshims/shims/form-message.js +26 -19
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +13 -12
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +61 -58
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +45 -25
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +20 -4
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +29 -26
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +3 -0
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +6 -3
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- metadata +2 -2
@@ -831,7 +831,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
|
|
831
831
|
_create: function(){
|
832
832
|
var i;
|
833
833
|
|
834
|
-
this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb"><span data-value="" data-valuetext="" /></span></span>');
|
834
|
+
this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb"><span><span data-value="" data-valuetext="" /></span></span></span>');
|
835
835
|
this.trail = $('.ws-range-track', this.element);
|
836
836
|
this.range = $('.ws-range-progress', this.element);
|
837
837
|
this.thumb = $('.ws-range-thumb', this.trail);
|
@@ -913,7 +913,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
|
|
913
913
|
'aria-valuenow': this.options.value,
|
914
914
|
'aria-valuetext': textValue
|
915
915
|
});
|
916
|
-
$('span', this.thumb).attr({
|
916
|
+
$('span[data-value]', this.thumb).attr({
|
917
917
|
'data-value': this.options.value,
|
918
918
|
'data-valuetext': textValue
|
919
919
|
});
|
@@ -831,7 +831,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
|
|
831
831
|
_create: function(){
|
832
832
|
var i;
|
833
833
|
|
834
|
-
this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb"><span data-value="" data-valuetext="" /></span></span>');
|
834
|
+
this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb"><span><span data-value="" data-valuetext="" /></span></span></span>');
|
835
835
|
this.trail = $('.ws-range-track', this.element);
|
836
836
|
this.range = $('.ws-range-progress', this.element);
|
837
837
|
this.thumb = $('.ws-range-thumb', this.trail);
|
@@ -913,7 +913,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
|
|
913
913
|
'aria-valuenow': this.options.value,
|
914
914
|
'aria-valuetext': textValue
|
915
915
|
});
|
916
|
-
$('span', this.thumb).attr({
|
916
|
+
$('span[data-value]', this.thumb).attr({
|
917
917
|
'data-value': this.options.value,
|
918
918
|
'data-valuetext': textValue
|
919
919
|
});
|
@@ -1828,6 +1828,9 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1828
1828
|
if(typeof message == 'object'){
|
1829
1829
|
message = message.defaultMessage;
|
1830
1830
|
}
|
1831
|
+
if(webshims.replaceValidationplaceholder){
|
1832
|
+
message = webshims.replaceValidationplaceholder(elem, message);
|
1833
|
+
}
|
1831
1834
|
return message || '';
|
1832
1835
|
};
|
1833
1836
|
|
@@ -1968,27 +1971,17 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1968
1971
|
}
|
1969
1972
|
return message || '';
|
1970
1973
|
};
|
1974
|
+
var lReg = /</g;
|
1975
|
+
var gReg = />/g;
|
1971
1976
|
var valueVals = {
|
1972
1977
|
value: 1,
|
1973
1978
|
min: 1,
|
1974
1979
|
max: 1
|
1975
1980
|
};
|
1976
|
-
|
1977
|
-
webshims.
|
1978
|
-
var widget;
|
1979
|
-
|
1980
|
-
var message = getMessageFromObj(currentValidationMessage[name], elem);
|
1981
|
-
if(!message && name == 'badInput'){
|
1982
|
-
message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
|
1983
|
-
}
|
1984
|
-
if(!message && name == 'typeMismatch'){
|
1985
|
-
message = getMessageFromObj(currentValidationMessage.badInput, elem);
|
1986
|
-
}
|
1987
|
-
if(!message){
|
1988
|
-
message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
|
1989
|
-
webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
|
1990
|
-
}
|
1991
|
-
if(message){
|
1981
|
+
|
1982
|
+
webshims.replaceValidationplaceholder = function(elem, message, name){
|
1983
|
+
var type, widget;
|
1984
|
+
if(message && message.indexOf('{%') != -1){
|
1992
1985
|
['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
|
1993
1986
|
if(message.indexOf('{%'+attr) === -1){return;}
|
1994
1987
|
var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
|
@@ -1997,19 +1990,36 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1997
1990
|
}
|
1998
1991
|
if(valueVals[attr]){
|
1999
1992
|
if(!widget){
|
2000
|
-
widget = $(elem).getShadowElement().data('wsWidget'+type);
|
1993
|
+
widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
|
2001
1994
|
}
|
2002
1995
|
if(widget && widget.formatValue){
|
2003
1996
|
val = widget.formatValue(val, false);
|
2004
1997
|
}
|
2005
1998
|
}
|
2006
|
-
message = message.replace('{%'+ attr +'}', val);
|
1999
|
+
message = message.replace('{%'+ attr +'}', val.replace(lReg, '<').replace(gReg, '>'));
|
2007
2000
|
if('value' == attr){
|
2008
2001
|
message = message.replace('{%valueLen}', val.length);
|
2009
2002
|
}
|
2010
|
-
|
2003
|
+
|
2011
2004
|
});
|
2012
2005
|
}
|
2006
|
+
return message;
|
2007
|
+
};
|
2008
|
+
|
2009
|
+
webshims.createValidationMessage = function(elem, name){
|
2010
|
+
|
2011
|
+
var message = getMessageFromObj(currentValidationMessage[name], elem);
|
2012
|
+
if(!message && name == 'badInput'){
|
2013
|
+
message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
|
2014
|
+
}
|
2015
|
+
if(!message && name == 'typeMismatch'){
|
2016
|
+
message = getMessageFromObj(currentValidationMessage.badInput, elem);
|
2017
|
+
}
|
2018
|
+
if(!message){
|
2019
|
+
message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
|
2020
|
+
webshims.info('could not find errormessage for: '+ name +' / '+ $.prop(elem, 'type') +'. in language: '+webshims.activeLang());
|
2021
|
+
}
|
2022
|
+
message = webshims.replaceValidationplaceholder(elem, message, name);
|
2013
2023
|
|
2014
2024
|
return message || '';
|
2015
2025
|
};
|
@@ -2469,7 +2479,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
2469
2479
|
hasFullTrackSupport = Modernizr.track && !bugs.track;
|
2470
2480
|
|
2471
2481
|
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
|
2472
|
-
hasSwf = swfmini.hasFlashPlayerVersion('
|
2482
|
+
hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
|
2473
2483
|
$('html').addClass(hasSwf ? 'swf' : 'no-swf');
|
2474
2484
|
var mediaelement = webshims.mediaelement;
|
2475
2485
|
|
@@ -3062,4 +3072,4 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3062
3072
|
}
|
3063
3073
|
webshims.ready('track', loadTrackUi);
|
3064
3074
|
});
|
3065
|
-
})(Modernizr, webshims);
|
3075
|
+
})(Modernizr, webshims);
|
@@ -1828,6 +1828,9 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1828
1828
|
if(typeof message == 'object'){
|
1829
1829
|
message = message.defaultMessage;
|
1830
1830
|
}
|
1831
|
+
if(webshims.replaceValidationplaceholder){
|
1832
|
+
message = webshims.replaceValidationplaceholder(elem, message);
|
1833
|
+
}
|
1831
1834
|
return message || '';
|
1832
1835
|
};
|
1833
1836
|
|
@@ -1968,27 +1971,17 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1968
1971
|
}
|
1969
1972
|
return message || '';
|
1970
1973
|
};
|
1974
|
+
var lReg = /</g;
|
1975
|
+
var gReg = />/g;
|
1971
1976
|
var valueVals = {
|
1972
1977
|
value: 1,
|
1973
1978
|
min: 1,
|
1974
1979
|
max: 1
|
1975
1980
|
};
|
1976
|
-
|
1977
|
-
webshims.
|
1978
|
-
var widget;
|
1979
|
-
|
1980
|
-
var message = getMessageFromObj(currentValidationMessage[name], elem);
|
1981
|
-
if(!message && name == 'badInput'){
|
1982
|
-
message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
|
1983
|
-
}
|
1984
|
-
if(!message && name == 'typeMismatch'){
|
1985
|
-
message = getMessageFromObj(currentValidationMessage.badInput, elem);
|
1986
|
-
}
|
1987
|
-
if(!message){
|
1988
|
-
message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
|
1989
|
-
webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
|
1990
|
-
}
|
1991
|
-
if(message){
|
1981
|
+
|
1982
|
+
webshims.replaceValidationplaceholder = function(elem, message, name){
|
1983
|
+
var type, widget;
|
1984
|
+
if(message && message.indexOf('{%') != -1){
|
1992
1985
|
['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
|
1993
1986
|
if(message.indexOf('{%'+attr) === -1){return;}
|
1994
1987
|
var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
|
@@ -1997,19 +1990,36 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1997
1990
|
}
|
1998
1991
|
if(valueVals[attr]){
|
1999
1992
|
if(!widget){
|
2000
|
-
widget = $(elem).getShadowElement().data('wsWidget'+type);
|
1993
|
+
widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
|
2001
1994
|
}
|
2002
1995
|
if(widget && widget.formatValue){
|
2003
1996
|
val = widget.formatValue(val, false);
|
2004
1997
|
}
|
2005
1998
|
}
|
2006
|
-
message = message.replace('{%'+ attr +'}', val);
|
1999
|
+
message = message.replace('{%'+ attr +'}', val.replace(lReg, '<').replace(gReg, '>'));
|
2007
2000
|
if('value' == attr){
|
2008
2001
|
message = message.replace('{%valueLen}', val.length);
|
2009
2002
|
}
|
2010
|
-
|
2003
|
+
|
2011
2004
|
});
|
2012
2005
|
}
|
2006
|
+
return message;
|
2007
|
+
};
|
2008
|
+
|
2009
|
+
webshims.createValidationMessage = function(elem, name){
|
2010
|
+
|
2011
|
+
var message = getMessageFromObj(currentValidationMessage[name], elem);
|
2012
|
+
if(!message && name == 'badInput'){
|
2013
|
+
message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
|
2014
|
+
}
|
2015
|
+
if(!message && name == 'typeMismatch'){
|
2016
|
+
message = getMessageFromObj(currentValidationMessage.badInput, elem);
|
2017
|
+
}
|
2018
|
+
if(!message){
|
2019
|
+
message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
|
2020
|
+
webshims.info('could not find errormessage for: '+ name +' / '+ $.prop(elem, 'type') +'. in language: '+webshims.activeLang());
|
2021
|
+
}
|
2022
|
+
message = webshims.replaceValidationplaceholder(elem, message, name);
|
2013
2023
|
|
2014
2024
|
return message || '';
|
2015
2025
|
};
|
@@ -2172,7 +2182,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
2172
2182
|
hasFullTrackSupport = Modernizr.track && !bugs.track;
|
2173
2183
|
|
2174
2184
|
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
|
2175
|
-
hasSwf = swfmini.hasFlashPlayerVersion('
|
2185
|
+
hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
|
2176
2186
|
$('html').addClass(hasSwf ? 'swf' : 'no-swf');
|
2177
2187
|
var mediaelement = webshims.mediaelement;
|
2178
2188
|
|
@@ -2765,4 +2775,4 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2765
2775
|
}
|
2766
2776
|
webshims.ready('track', loadTrackUi);
|
2767
2777
|
});
|
2768
|
-
})(Modernizr, webshims);
|
2778
|
+
})(Modernizr, webshims);
|
@@ -1160,7 +1160,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1160
1160
|
_create: function(){
|
1161
1161
|
var i;
|
1162
1162
|
|
1163
|
-
this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb"><span data-value="" data-valuetext="" /></span></span>');
|
1163
|
+
this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb"><span><span data-value="" data-valuetext="" /></span></span></span>');
|
1164
1164
|
this.trail = $('.ws-range-track', this.element);
|
1165
1165
|
this.range = $('.ws-range-progress', this.element);
|
1166
1166
|
this.thumb = $('.ws-range-thumb', this.trail);
|
@@ -1242,7 +1242,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1242
1242
|
'aria-valuenow': this.options.value,
|
1243
1243
|
'aria-valuetext': textValue
|
1244
1244
|
});
|
1245
|
-
$('span', this.thumb).attr({
|
1245
|
+
$('span[data-value]', this.thumb).attr({
|
1246
1246
|
'data-value': this.options.value,
|
1247
1247
|
'data-valuetext': textValue
|
1248
1248
|
});
|
@@ -232,6 +232,9 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
232
232
|
if(typeof message == 'object'){
|
233
233
|
message = message.defaultMessage;
|
234
234
|
}
|
235
|
+
if(webshims.replaceValidationplaceholder){
|
236
|
+
message = webshims.replaceValidationplaceholder(elem, message);
|
237
|
+
}
|
235
238
|
return message || '';
|
236
239
|
};
|
237
240
|
|
@@ -80,7 +80,7 @@ webshims.register('form-datalist-lazy', function($, webshims, window, document,
|
|
80
80
|
var keyCode = e.keyCode;
|
81
81
|
var activeItem;
|
82
82
|
var items;
|
83
|
-
var doValue = that.options.
|
83
|
+
var doValue = !!that.options.inlineValue || 'onlyScroll';
|
84
84
|
|
85
85
|
if(keyCode == 40 && !that.showList()){
|
86
86
|
that.markItem(that.index + 1, doValue);
|
@@ -198,7 +198,7 @@ webshims.register('form-datalist-lazy', function($, webshims, window, document,
|
|
198
198
|
}
|
199
199
|
}
|
200
200
|
|
201
|
-
if(this.options.
|
201
|
+
if(!this.options.inlineValue && !this.options.valueCompletion){
|
202
202
|
$.attr(this.input, 'aria-autocomplete', 'list');
|
203
203
|
$.attr(this.input, 'aria-expanded', 'false');
|
204
204
|
}
|
@@ -376,7 +376,7 @@ webshims.register('form-datalist-lazy', function($, webshims, window, document,
|
|
376
376
|
this.removeMark(lis.removeClass('hidden-item'));
|
377
377
|
found = true;
|
378
378
|
}
|
379
|
-
|
379
|
+
|
380
380
|
this.hasViewableData = found;
|
381
381
|
if(!_fromShowList && found){
|
382
382
|
if(this.popover.isVisible && this.popover.element.attr('data-vertical') == 'bottom'){
|
@@ -118,27 +118,17 @@ webshims.register('form-message', function($, webshims, window, document, undefi
|
|
118
118
|
}
|
119
119
|
return message || '';
|
120
120
|
};
|
121
|
+
var lReg = /</g;
|
122
|
+
var gReg = />/g;
|
121
123
|
var valueVals = {
|
122
124
|
value: 1,
|
123
125
|
min: 1,
|
124
126
|
max: 1
|
125
127
|
};
|
126
|
-
|
127
|
-
webshims.
|
128
|
-
var widget;
|
129
|
-
|
130
|
-
var message = getMessageFromObj(currentValidationMessage[name], elem);
|
131
|
-
if(!message && name == 'badInput'){
|
132
|
-
message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
|
133
|
-
}
|
134
|
-
if(!message && name == 'typeMismatch'){
|
135
|
-
message = getMessageFromObj(currentValidationMessage.badInput, elem);
|
136
|
-
}
|
137
|
-
if(!message){
|
138
|
-
message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
|
139
|
-
webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
|
140
|
-
}
|
141
|
-
if(message){
|
128
|
+
|
129
|
+
webshims.replaceValidationplaceholder = function(elem, message, name){
|
130
|
+
var type, widget;
|
131
|
+
if(message && message.indexOf('{%') != -1){
|
142
132
|
['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
|
143
133
|
if(message.indexOf('{%'+attr) === -1){return;}
|
144
134
|
var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
|
@@ -147,19 +137,36 @@ webshims.register('form-message', function($, webshims, window, document, undefi
|
|
147
137
|
}
|
148
138
|
if(valueVals[attr]){
|
149
139
|
if(!widget){
|
150
|
-
widget = $(elem).getShadowElement().data('wsWidget'+type);
|
140
|
+
widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
|
151
141
|
}
|
152
142
|
if(widget && widget.formatValue){
|
153
143
|
val = widget.formatValue(val, false);
|
154
144
|
}
|
155
145
|
}
|
156
|
-
message = message.replace('{%'+ attr +'}', val);
|
146
|
+
message = message.replace('{%'+ attr +'}', val.replace(lReg, '<').replace(gReg, '>'));
|
157
147
|
if('value' == attr){
|
158
148
|
message = message.replace('{%valueLen}', val.length);
|
159
149
|
}
|
160
|
-
|
150
|
+
|
161
151
|
});
|
162
152
|
}
|
153
|
+
return message;
|
154
|
+
};
|
155
|
+
|
156
|
+
webshims.createValidationMessage = function(elem, name){
|
157
|
+
|
158
|
+
var message = getMessageFromObj(currentValidationMessage[name], elem);
|
159
|
+
if(!message && name == 'badInput'){
|
160
|
+
message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
|
161
|
+
}
|
162
|
+
if(!message && name == 'typeMismatch'){
|
163
|
+
message = getMessageFromObj(currentValidationMessage.badInput, elem);
|
164
|
+
}
|
165
|
+
if(!message){
|
166
|
+
message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
|
167
|
+
webshims.info('could not find errormessage for: '+ name +' / '+ $.prop(elem, 'type') +'. in language: '+webshims.activeLang());
|
168
|
+
}
|
169
|
+
message = webshims.replaceValidationplaceholder(elem, message, name);
|
163
170
|
|
164
171
|
return message || '';
|
165
172
|
};
|
@@ -507,7 +507,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
507
507
|
message = elem.getErrorMessage();
|
508
508
|
}
|
509
509
|
if (message) {
|
510
|
-
api.contentElement.
|
510
|
+
api.contentElement.html(message);
|
511
511
|
} else {
|
512
512
|
this.hide();
|
513
513
|
}
|
@@ -623,7 +623,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
623
623
|
$(elem).data('errormessage', errorMessages);
|
624
624
|
}
|
625
625
|
if(webshims.getOptions){
|
626
|
-
webshims.getOptions(elem, 'errormessage');
|
626
|
+
webshims.getOptions(elem, 'errormessage', false, true);
|
627
627
|
}
|
628
628
|
});
|
629
629
|
|
@@ -638,14 +638,16 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
638
638
|
if(!fieldWrapper){
|
639
639
|
fieldWrapper = this.getFieldWrapper(elem);
|
640
640
|
}
|
641
|
+
var type;
|
641
642
|
var errorBox = fieldWrapper.data('errorbox');
|
642
|
-
if(
|
643
|
-
errorBox
|
643
|
+
if((type = typeof errorBox) != 'object'){
|
644
|
+
if(!errorBox){
|
645
|
+
errorBox = this.create(elem, fieldWrapper);
|
646
|
+
} else if(type == 'string'){
|
647
|
+
errorBox = $('#'+errorBox);
|
648
|
+
fieldWrapper.data('errorbox', errorBox, fieldWrapper);
|
649
|
+
}
|
644
650
|
this._createContentMessage(elem, errorBox, fieldWrapper);
|
645
|
-
} else if(typeof errorBox == 'string'){
|
646
|
-
errorBox = $('#'+errorBox);
|
647
|
-
fieldWrapper.data('errorbox', errorBox, fieldWrapper);
|
648
|
-
this._createContentMessage(elem, errorBox);
|
649
651
|
}
|
650
652
|
return errorBox;
|
651
653
|
},
|
@@ -661,16 +663,15 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
661
663
|
check();
|
662
664
|
},
|
663
665
|
hideError: function(elem, reset){
|
664
|
-
var invalid;
|
666
|
+
var invalid, errorBox;
|
665
667
|
var fieldWrapper = this.getFieldWrapper(elem);
|
666
|
-
//only if an errorbox was already created! don't use this.get here!
|
667
|
-
var errorBox = fieldWrapper.data('errorbox');
|
668
668
|
|
669
|
-
if(
|
669
|
+
if(fieldWrapper.hasClass(invalidWrapperClass)){
|
670
670
|
$(elem).filter('input').off('.recheckinvalid');
|
671
671
|
if(!reset && (invalid = $('input:invalid, select:invalid, textarea:invalid', fieldWrapper)[0])){
|
672
672
|
$(invalid).trigger('refreshvalidityui');
|
673
673
|
} else {
|
674
|
+
errorBox = this.get(elem, fieldWrapper);
|
674
675
|
fieldWrapper.removeClass(invalidWrapperClass);
|
675
676
|
errorBox.message = '';
|
676
677
|
errorBox[fx[iVal.fx].hide](function(){
|
@@ -42,40 +42,38 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
42
42
|
};
|
43
43
|
webshims.refreshCustomValidityRules = function(elem){
|
44
44
|
if(!initTest){return;}
|
45
|
-
var val;
|
46
|
-
var data = $(elem).data()
|
47
|
-
var customMismatchedRule = data.customMismatchedRule;
|
48
|
-
var validity = $.prop(elem, 'validity') || {};
|
45
|
+
var val, setMessage;
|
46
|
+
var data = $(elem).data();
|
49
47
|
var message = '';
|
50
|
-
var
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
if(
|
58
|
-
|
59
|
-
|
60
|
-
if(
|
61
|
-
message =
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
48
|
+
var customMismatchedRule = data && data.customMismatchedRule;
|
49
|
+
var validity = data && $.prop(elem, 'validity') || {valid: 1};
|
50
|
+
|
51
|
+
if(data && (customMismatchedRule || validity.valid)){
|
52
|
+
setMessage = function(message, errorType){
|
53
|
+
blockCustom = true;
|
54
|
+
|
55
|
+
if(message){
|
56
|
+
data.customMismatchedRule = errorType;
|
57
|
+
|
58
|
+
if(typeof message != 'string'){
|
59
|
+
message = webshims.getContentValidationMessage(elem, false, errorType);
|
60
|
+
|
61
|
+
if(message && typeof message == 'object'){
|
62
|
+
message = message[errorType];
|
63
|
+
}
|
64
|
+
|
65
|
+
if(!message || typeof message != 'string'){
|
66
|
+
message = webshims.customErrorMessages[errorType][webshims.activeLang()] || webshims.customErrorMessages[errorType][''] || message.customError || message.defaultMessage || '';
|
67
|
+
}
|
66
68
|
}
|
69
|
+
} else {
|
70
|
+
message = '';
|
71
|
+
data.customMismatchedRule = '';
|
67
72
|
}
|
68
|
-
|
69
|
-
message
|
70
|
-
|
71
|
-
}
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
$(elem).setCustomValidity(message);
|
76
|
-
blockCustom = false;
|
77
|
-
};
|
78
|
-
if(customMismatchedRule || validity.valid){
|
73
|
+
|
74
|
+
$(elem).setCustomValidity(message);
|
75
|
+
blockCustom = false;
|
76
|
+
};
|
79
77
|
val = $(elem).val();
|
80
78
|
$.each(customValidityRules, function(name, test){
|
81
79
|
message = test(elem, val, data, setMessage) || '';
|
@@ -85,7 +83,7 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
85
83
|
}
|
86
84
|
});
|
87
85
|
|
88
|
-
if(data.dependentValidation && !data.dependentValidation._init && !data.dependentValidation.masterElement){
|
86
|
+
if(data && data.dependentValidation && !data.dependentValidation._init && !data.dependentValidation.masterElement){
|
89
87
|
customValidityRules.dependent(elem, val, data, $.noop);
|
90
88
|
}
|
91
89
|
if(message != 'async' && (message || !validity.valid)){
|
@@ -130,7 +128,7 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
130
128
|
/*
|
131
129
|
* adds support for HTML5 constraint validation
|
132
130
|
* - partial pattern: <input data-partial-pattern="RegExp" />
|
133
|
-
* - creditcard-validation: <input
|
131
|
+
* - creditcard-validation: <input data-creditcard="" />
|
134
132
|
* - several dependent-validation patterns (examples):
|
135
133
|
* - <input type="email" id="mail" /> <input data-dependent-validation='mail' />
|
136
134
|
* - <input type="date" id="start" data-dependent-validation='{"from": "end", "prop": "max"}' /> <input type="date" id="end" data-dependent-validation='{"from": "start", "prop": "min"}' />
|
@@ -140,7 +138,7 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
140
138
|
var formCFG = webshims.cfg.forms;
|
141
139
|
var addCustomValidityRule = webshims.addCustomValidityRule;
|
142
140
|
var getId = function(name){
|
143
|
-
return document.getElementById(name);
|
141
|
+
return document.getElementById(name) || document.getElementsByName(name);
|
144
142
|
};
|
145
143
|
addCustomValidityRule('partialPattern', function(elem, val, pattern){
|
146
144
|
pattern = pattern.partialPattern;
|
@@ -157,34 +155,30 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
157
155
|
}
|
158
156
|
return data.minlength > val.length;
|
159
157
|
}, 'Entered value is too short.');
|
160
|
-
|
161
|
-
|
162
|
-
|
158
|
+
|
159
|
+
addCustomValidityRule('grouprequired', function(elem, val, data){
|
160
|
+
var form;
|
163
161
|
var name = elem.name;
|
164
|
-
if(!name || elem.type !== 'checkbox' ||
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
}
|
170
|
-
groupTimer[name] = setTimeout(function(){
|
171
|
-
checkboxes
|
172
|
-
.addClass('group-required')
|
162
|
+
if(!name || elem.type !== 'checkbox' || !('grouprequired' in data)){return;}
|
163
|
+
|
164
|
+
if(!data.grouprequired || !data.grouprequired.checkboxes){
|
165
|
+
data.grouprequired.checkboxes = $( ((form = $.prop(elem, 'form')) && form[name]) || document.getElementsByName(name)).filter('[type="checkbox"]');
|
166
|
+
data.grouprequired.checkboxes
|
173
167
|
.off('click.groupRequired')
|
174
168
|
.on('click.groupRequired', function(){
|
175
|
-
|
176
|
-
webshims.refreshCustomValidityRules(this);
|
177
|
-
});
|
169
|
+
webshims.refreshCustomValidityRules(elem);
|
178
170
|
})
|
179
171
|
;
|
180
|
-
|
172
|
+
data.grouprequired.checkboxes.not(elem).removeData('grouprequired');
|
173
|
+
}
|
174
|
+
|
181
175
|
|
182
|
-
return !(
|
176
|
+
return !(data.grouprequired.checkboxes.filter(':checked:enabled')[0]);
|
183
177
|
}, 'Please check one of these checkboxes.');
|
184
178
|
|
185
179
|
// based on https://sites.google.com/site/abapexamples/javascript/luhn-validation
|
186
|
-
addCustomValidityRule('creditcard', function(elem, value){
|
187
|
-
if(!value ||
|
180
|
+
addCustomValidityRule('creditcard', function(elem, value, data){
|
181
|
+
if(!value || (!data || !('creditcard' in data))){return;}
|
188
182
|
value = value.replace(/\-/g, "");
|
189
183
|
//if it's not numeric return true >- for invalid
|
190
184
|
if(value != value * 1){return true;}
|
@@ -267,11 +261,17 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
267
261
|
data = $.data(elem, 'dependentValidation', $.extend({_init: true}, dependentDefaults, data));
|
268
262
|
|
269
263
|
if(data.prop !== "value" || specialVal){
|
270
|
-
$(data.masterElement.type === 'radio' && getGroupElements(data.masterElement) || data.masterElement).
|
264
|
+
$(data.masterElement.type === 'radio' && getGroupElements(data.masterElement) || data.masterElement).on('change', depFn);
|
271
265
|
} else {
|
272
|
-
$(data.masterElement).
|
273
|
-
|
274
|
-
|
266
|
+
$(data.masterElement).on('change', function(){
|
267
|
+
$(elem)
|
268
|
+
.getShadowElement()
|
269
|
+
.filter('.user-error, .user-success')
|
270
|
+
.each(function(){
|
271
|
+
webshims.refreshCustomValidityRules(elem);
|
272
|
+
})
|
273
|
+
.trigger('refreshvalidityui')
|
274
|
+
;
|
275
275
|
});
|
276
276
|
}
|
277
277
|
}
|
@@ -294,7 +294,10 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
294
294
|
if(typeof data.ajaxvalidate == 'string'){
|
295
295
|
data.ajaxvalidate = {url: data.ajaxvalidate, depends: $([])};
|
296
296
|
} else {
|
297
|
-
data.ajaxvalidate.depends = data.ajaxvalidate.depends ?
|
297
|
+
data.ajaxvalidate.depends = data.ajaxvalidate.depends ?
|
298
|
+
$(typeof data.ajaxvalidate.depends == 'string' && data.ajaxvalidate.depends.split(' ') || data.ajaxvalidate.depends).map(getId) :
|
299
|
+
$([])
|
300
|
+
;
|
298
301
|
}
|
299
302
|
|
300
303
|
data.ajaxvalidate.depends.on('refreshCustomValidityRules', function(){
|