webshims-rails 1.12.2 → 1.12.3
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 +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(){
|