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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +2 -40
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +10 -18
  5. data/vendor/assets/javascripts/webshims/shims/combos/1.js +5 -2
  6. data/vendor/assets/javascripts/webshims/shims/combos/10.js +2 -2
  7. data/vendor/assets/javascripts/webshims/shims/combos/11.js +2 -2
  8. data/vendor/assets/javascripts/webshims/shims/combos/12.js +3 -2
  9. data/vendor/assets/javascripts/webshims/shims/combos/13.js +3 -2
  10. data/vendor/assets/javascripts/webshims/shims/combos/14.js +26 -19
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +29 -19
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +31 -21
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +2 -2
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +2 -2
  15. data/vendor/assets/javascripts/webshims/shims/combos/19.js +3 -2
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +5 -2
  17. data/vendor/assets/javascripts/webshims/shims/combos/20.js +3 -2
  18. data/vendor/assets/javascripts/webshims/shims/combos/23.js +2 -2
  19. data/vendor/assets/javascripts/webshims/shims/combos/24.js +1 -1
  20. data/vendor/assets/javascripts/webshims/shims/combos/25.js +3 -2
  21. data/vendor/assets/javascripts/webshims/shims/combos/28.js +26 -19
  22. data/vendor/assets/javascripts/webshims/shims/combos/3.js +29 -19
  23. data/vendor/assets/javascripts/webshims/shims/combos/30.js +29 -19
  24. data/vendor/assets/javascripts/webshims/shims/combos/31.js +3 -0
  25. data/vendor/assets/javascripts/webshims/shims/combos/4.js +26 -19
  26. data/vendor/assets/javascripts/webshims/shims/combos/5.js +2 -2
  27. data/vendor/assets/javascripts/webshims/shims/combos/6.js +2 -2
  28. data/vendor/assets/javascripts/webshims/shims/combos/7.js +31 -21
  29. data/vendor/assets/javascripts/webshims/shims/combos/8.js +31 -21
  30. data/vendor/assets/javascripts/webshims/shims/combos/9.js +2 -2
  31. data/vendor/assets/javascripts/webshims/shims/form-core.js +3 -0
  32. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +3 -3
  33. data/vendor/assets/javascripts/webshims/shims/form-message.js +26 -19
  34. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +1 -1
  35. data/vendor/assets/javascripts/webshims/shims/form-validation.js +13 -12
  36. data/vendor/assets/javascripts/webshims/shims/form-validators.js +61 -58
  37. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +2 -2
  38. data/vendor/assets/javascripts/webshims/shims/range-ui.js +2 -2
  39. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +45 -25
  40. data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +20 -4
  41. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +29 -26
  42. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +3 -0
  43. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +6 -3
  44. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  45. metadata +2 -2
@@ -620,7 +620,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
620
620
  _create: function(){
621
621
  var i;
622
622
 
623
- 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>');
623
+ 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>');
624
624
  this.trail = $('.ws-range-track', this.element);
625
625
  this.range = $('.ws-range-progress', this.element);
626
626
  this.thumb = $('.ws-range-thumb', this.trail);
@@ -702,7 +702,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
702
702
  'aria-valuenow': this.options.value,
703
703
  'aria-valuetext': textValue
704
704
  });
705
- $('span', this.thumb).attr({
705
+ $('span[data-value]', this.thumb).attr({
706
706
  'data-value': this.options.value,
707
707
  'data-valuetext': textValue
708
708
  });
@@ -2066,7 +2066,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
2066
2066
  _create: function(){
2067
2067
  var i;
2068
2068
 
2069
- 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>');
2069
+ 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>');
2070
2070
  this.trail = $('.ws-range-track', this.element);
2071
2071
  this.range = $('.ws-range-progress', this.element);
2072
2072
  this.thumb = $('.ws-range-thumb', this.trail);
@@ -2148,7 +2148,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
2148
2148
  'aria-valuenow': this.options.value,
2149
2149
  'aria-valuetext': textValue
2150
2150
  });
2151
- $('span', this.thumb).attr({
2151
+ $('span[data-value]', this.thumb).attr({
2152
2152
  'data-value': this.options.value,
2153
2153
  'data-valuetext': textValue
2154
2154
  });
@@ -3140,7 +3140,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3140
3140
  hasFullTrackSupport = Modernizr.track && !bugs.track;
3141
3141
 
3142
3142
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
3143
- hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
3143
+ hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
3144
3144
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
3145
3145
  var mediaelement = webshims.mediaelement;
3146
3146
 
@@ -3733,7 +3733,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3733
3733
  }
3734
3734
  webshims.ready('track', loadTrackUi);
3735
3735
  });
3736
- })(Modernizr, webshims);;webshims.register('mediaelement-jaris', function($, webshims, window, document, undefined, options){
3736
+ })(Modernizr, webshims);
3737
+ ;webshims.register('mediaelement-jaris', function($, webshims, window, document, undefined, options){
3737
3738
  "use strict";
3738
3739
 
3739
3740
  var mediaelement = webshims.mediaelement;
@@ -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
 
@@ -2245,7 +2248,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
2245
2248
  hasFullTrackSupport = Modernizr.track && !bugs.track;
2246
2249
 
2247
2250
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
2248
- hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
2251
+ hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
2249
2252
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
2250
2253
  var mediaelement = webshims.mediaelement;
2251
2254
 
@@ -2838,4 +2841,4 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2838
2841
  }
2839
2842
  webshims.ready('track', loadTrackUi);
2840
2843
  });
2841
- })(Modernizr, webshims);
2844
+ })(Modernizr, webshims);
@@ -2689,7 +2689,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2689
2689
  hasFullTrackSupport = Modernizr.track && !bugs.track;
2690
2690
 
2691
2691
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
2692
- hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
2692
+ hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
2693
2693
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
2694
2694
  var mediaelement = webshims.mediaelement;
2695
2695
 
@@ -3282,7 +3282,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3282
3282
  }
3283
3283
  webshims.ready('track', loadTrackUi);
3284
3284
  });
3285
- })(Modernizr, webshims);;webshims.register('mediaelement-jaris', function($, webshims, window, document, undefined, options){
3285
+ })(Modernizr, webshims);
3286
+ ;webshims.register('mediaelement-jaris', function($, webshims, window, document, undefined, options){
3286
3287
  "use strict";
3287
3288
 
3288
3289
  var mediaelement = webshims.mediaelement;
@@ -549,7 +549,7 @@ var swfmini = function() {
549
549
  hasFullTrackSupport = Modernizr.track && !bugs.track;
550
550
 
551
551
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
552
- hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
552
+ hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
553
553
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
554
554
  var mediaelement = webshims.mediaelement;
555
555
 
@@ -1142,4 +1142,4 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1142
1142
  }
1143
1143
  webshims.ready('track', loadTrackUi);
1144
1144
  });
1145
- })(Modernizr, webshims);
1145
+ })(Modernizr, webshims);
@@ -1060,7 +1060,7 @@ if(!Modernizr.formattribute || !Modernizr.fieldsetdisabled || !Modernizr.fieldse
1060
1060
  },
1061
1061
  removeAttr: {
1062
1062
  value: function(){
1063
- desc.set.call(this, false);
1063
+ desc.prop.set.call(this, false);
1064
1064
  }
1065
1065
  }
1066
1066
  });
@@ -3529,7 +3529,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3529
3529
  hasFullTrackSupport = Modernizr.track && !bugs.track;
3530
3530
 
3531
3531
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
3532
- hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
3532
+ hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
3533
3533
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
3534
3534
  var mediaelement = webshims.mediaelement;
3535
3535
 
@@ -4122,7 +4122,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
4122
4122
  }
4123
4123
  webshims.ready('track', loadTrackUi);
4124
4124
  });
4125
- })(Modernizr, webshims);;webshims.register('mediaelement-jaris', function($, webshims, window, document, undefined, options){
4125
+ })(Modernizr, webshims);
4126
+ ;webshims.register('mediaelement-jaris', function($, webshims, window, document, undefined, options){
4126
4127
  "use strict";
4127
4128
 
4128
4129
  var mediaelement = webshims.mediaelement;
@@ -915,27 +915,17 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
915
915
  }
916
916
  return message || '';
917
917
  };
918
+ var lReg = /</g;
919
+ var gReg = />/g;
918
920
  var valueVals = {
919
921
  value: 1,
920
922
  min: 1,
921
923
  max: 1
922
924
  };
923
-
924
- webshims.createValidationMessage = function(elem, name){
925
- var widget;
926
- var type = $.prop(elem, 'type');
927
- var message = getMessageFromObj(currentValidationMessage[name], elem);
928
- if(!message && name == 'badInput'){
929
- message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
930
- }
931
- if(!message && name == 'typeMismatch'){
932
- message = getMessageFromObj(currentValidationMessage.badInput, elem);
933
- }
934
- if(!message){
935
- message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
936
- webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
937
- }
938
- if(message){
925
+
926
+ webshims.replaceValidationplaceholder = function(elem, message, name){
927
+ var type, widget;
928
+ if(message && message.indexOf('{%') != -1){
939
929
  ['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
940
930
  if(message.indexOf('{%'+attr) === -1){return;}
941
931
  var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
@@ -944,19 +934,36 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
944
934
  }
945
935
  if(valueVals[attr]){
946
936
  if(!widget){
947
- widget = $(elem).getShadowElement().data('wsWidget'+type);
937
+ widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
948
938
  }
949
939
  if(widget && widget.formatValue){
950
940
  val = widget.formatValue(val, false);
951
941
  }
952
942
  }
953
- message = message.replace('{%'+ attr +'}', val);
943
+ message = message.replace('{%'+ attr +'}', val.replace(lReg, '&lt;').replace(gReg, '&gt;'));
954
944
  if('value' == attr){
955
945
  message = message.replace('{%valueLen}', val.length);
956
946
  }
957
-
947
+
958
948
  });
959
949
  }
950
+ return message;
951
+ };
952
+
953
+ webshims.createValidationMessage = function(elem, name){
954
+
955
+ var message = getMessageFromObj(currentValidationMessage[name], elem);
956
+ if(!message && name == 'badInput'){
957
+ message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
958
+ }
959
+ if(!message && name == 'typeMismatch'){
960
+ message = getMessageFromObj(currentValidationMessage.badInput, elem);
961
+ }
962
+ if(!message){
963
+ message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
964
+ webshims.info('could not find errormessage for: '+ name +' / '+ $.prop(elem, 'type') +'. in language: '+webshims.activeLang());
965
+ }
966
+ message = webshims.replaceValidationplaceholder(elem, message, name);
960
967
 
961
968
  return message || '';
962
969
  };
@@ -1377,6 +1377,9 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1377
1377
  if(typeof message == 'object'){
1378
1378
  message = message.defaultMessage;
1379
1379
  }
1380
+ if(webshims.replaceValidationplaceholder){
1381
+ message = webshims.replaceValidationplaceholder(elem, message);
1382
+ }
1380
1383
  return message || '';
1381
1384
  };
1382
1385
 
@@ -1517,27 +1520,17 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1517
1520
  }
1518
1521
  return message || '';
1519
1522
  };
1523
+ var lReg = /</g;
1524
+ var gReg = />/g;
1520
1525
  var valueVals = {
1521
1526
  value: 1,
1522
1527
  min: 1,
1523
1528
  max: 1
1524
1529
  };
1525
-
1526
- webshims.createValidationMessage = function(elem, name){
1527
- var widget;
1528
- var type = $.prop(elem, 'type');
1529
- var message = getMessageFromObj(currentValidationMessage[name], elem);
1530
- if(!message && name == 'badInput'){
1531
- message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
1532
- }
1533
- if(!message && name == 'typeMismatch'){
1534
- message = getMessageFromObj(currentValidationMessage.badInput, elem);
1535
- }
1536
- if(!message){
1537
- message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
1538
- webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
1539
- }
1540
- if(message){
1530
+
1531
+ webshims.replaceValidationplaceholder = function(elem, message, name){
1532
+ var type, widget;
1533
+ if(message && message.indexOf('{%') != -1){
1541
1534
  ['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
1542
1535
  if(message.indexOf('{%'+attr) === -1){return;}
1543
1536
  var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
@@ -1546,19 +1539,36 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1546
1539
  }
1547
1540
  if(valueVals[attr]){
1548
1541
  if(!widget){
1549
- widget = $(elem).getShadowElement().data('wsWidget'+type);
1542
+ widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
1550
1543
  }
1551
1544
  if(widget && widget.formatValue){
1552
1545
  val = widget.formatValue(val, false);
1553
1546
  }
1554
1547
  }
1555
- message = message.replace('{%'+ attr +'}', val);
1548
+ message = message.replace('{%'+ attr +'}', val.replace(lReg, '&lt;').replace(gReg, '&gt;'));
1556
1549
  if('value' == attr){
1557
1550
  message = message.replace('{%valueLen}', val.length);
1558
1551
  }
1559
-
1552
+
1560
1553
  });
1561
1554
  }
1555
+ return message;
1556
+ };
1557
+
1558
+ webshims.createValidationMessage = function(elem, name){
1559
+
1560
+ var message = getMessageFromObj(currentValidationMessage[name], elem);
1561
+ if(!message && name == 'badInput'){
1562
+ message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
1563
+ }
1564
+ if(!message && name == 'typeMismatch'){
1565
+ message = getMessageFromObj(currentValidationMessage.badInput, elem);
1566
+ }
1567
+ if(!message){
1568
+ message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
1569
+ webshims.info('could not find errormessage for: '+ name +' / '+ $.prop(elem, 'type') +'. in language: '+webshims.activeLang());
1570
+ }
1571
+ message = webshims.replaceValidationplaceholder(elem, message, name);
1562
1572
 
1563
1573
  return message || '';
1564
1574
  };
@@ -1377,6 +1377,9 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1377
1377
  if(typeof message == 'object'){
1378
1378
  message = message.defaultMessage;
1379
1379
  }
1380
+ if(webshims.replaceValidationplaceholder){
1381
+ message = webshims.replaceValidationplaceholder(elem, message);
1382
+ }
1380
1383
  return message || '';
1381
1384
  };
1382
1385
 
@@ -1517,27 +1520,17 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1517
1520
  }
1518
1521
  return message || '';
1519
1522
  };
1523
+ var lReg = /</g;
1524
+ var gReg = />/g;
1520
1525
  var valueVals = {
1521
1526
  value: 1,
1522
1527
  min: 1,
1523
1528
  max: 1
1524
1529
  };
1525
-
1526
- webshims.createValidationMessage = function(elem, name){
1527
- var widget;
1528
- var type = $.prop(elem, 'type');
1529
- var message = getMessageFromObj(currentValidationMessage[name], elem);
1530
- if(!message && name == 'badInput'){
1531
- message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
1532
- }
1533
- if(!message && name == 'typeMismatch'){
1534
- message = getMessageFromObj(currentValidationMessage.badInput, elem);
1535
- }
1536
- if(!message){
1537
- message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
1538
- webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
1539
- }
1540
- if(message){
1530
+
1531
+ webshims.replaceValidationplaceholder = function(elem, message, name){
1532
+ var type, widget;
1533
+ if(message && message.indexOf('{%') != -1){
1541
1534
  ['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
1542
1535
  if(message.indexOf('{%'+attr) === -1){return;}
1543
1536
  var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
@@ -1546,19 +1539,36 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1546
1539
  }
1547
1540
  if(valueVals[attr]){
1548
1541
  if(!widget){
1549
- widget = $(elem).getShadowElement().data('wsWidget'+type);
1542
+ widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
1550
1543
  }
1551
1544
  if(widget && widget.formatValue){
1552
1545
  val = widget.formatValue(val, false);
1553
1546
  }
1554
1547
  }
1555
- message = message.replace('{%'+ attr +'}', val);
1548
+ message = message.replace('{%'+ attr +'}', val.replace(lReg, '&lt;').replace(gReg, '&gt;'));
1556
1549
  if('value' == attr){
1557
1550
  message = message.replace('{%valueLen}', val.length);
1558
1551
  }
1559
-
1552
+
1560
1553
  });
1561
1554
  }
1555
+ return message;
1556
+ };
1557
+
1558
+ webshims.createValidationMessage = function(elem, name){
1559
+
1560
+ var message = getMessageFromObj(currentValidationMessage[name], elem);
1561
+ if(!message && name == 'badInput'){
1562
+ message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
1563
+ }
1564
+ if(!message && name == 'typeMismatch'){
1565
+ message = getMessageFromObj(currentValidationMessage.badInput, elem);
1566
+ }
1567
+ if(!message){
1568
+ message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
1569
+ webshims.info('could not find errormessage for: '+ name +' / '+ $.prop(elem, 'type') +'. in language: '+webshims.activeLang());
1570
+ }
1571
+ message = webshims.replaceValidationplaceholder(elem, message, name);
1562
1572
 
1563
1573
  return message || '';
1564
1574
  };
@@ -1377,6 +1377,9 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1377
1377
  if(typeof message == 'object'){
1378
1378
  message = message.defaultMessage;
1379
1379
  }
1380
+ if(webshims.replaceValidationplaceholder){
1381
+ message = webshims.replaceValidationplaceholder(elem, message);
1382
+ }
1380
1383
  return message || '';
1381
1384
  };
1382
1385
 
@@ -1263,27 +1263,17 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1263
1263
  }
1264
1264
  return message || '';
1265
1265
  };
1266
+ var lReg = /</g;
1267
+ var gReg = />/g;
1266
1268
  var valueVals = {
1267
1269
  value: 1,
1268
1270
  min: 1,
1269
1271
  max: 1
1270
1272
  };
1271
-
1272
- webshims.createValidationMessage = function(elem, name){
1273
- var widget;
1274
- var type = $.prop(elem, 'type');
1275
- var message = getMessageFromObj(currentValidationMessage[name], elem);
1276
- if(!message && name == 'badInput'){
1277
- message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
1278
- }
1279
- if(!message && name == 'typeMismatch'){
1280
- message = getMessageFromObj(currentValidationMessage.badInput, elem);
1281
- }
1282
- if(!message){
1283
- message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
1284
- webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
1285
- }
1286
- if(message){
1273
+
1274
+ webshims.replaceValidationplaceholder = function(elem, message, name){
1275
+ var type, widget;
1276
+ if(message && message.indexOf('{%') != -1){
1287
1277
  ['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
1288
1278
  if(message.indexOf('{%'+attr) === -1){return;}
1289
1279
  var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
@@ -1292,19 +1282,36 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1292
1282
  }
1293
1283
  if(valueVals[attr]){
1294
1284
  if(!widget){
1295
- widget = $(elem).getShadowElement().data('wsWidget'+type);
1285
+ widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
1296
1286
  }
1297
1287
  if(widget && widget.formatValue){
1298
1288
  val = widget.formatValue(val, false);
1299
1289
  }
1300
1290
  }
1301
- message = message.replace('{%'+ attr +'}', val);
1291
+ message = message.replace('{%'+ attr +'}', val.replace(lReg, '&lt;').replace(gReg, '&gt;'));
1302
1292
  if('value' == attr){
1303
1293
  message = message.replace('{%valueLen}', val.length);
1304
1294
  }
1305
-
1295
+
1306
1296
  });
1307
1297
  }
1298
+ return message;
1299
+ };
1300
+
1301
+ webshims.createValidationMessage = function(elem, name){
1302
+
1303
+ var message = getMessageFromObj(currentValidationMessage[name], elem);
1304
+ if(!message && name == 'badInput'){
1305
+ message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
1306
+ }
1307
+ if(!message && name == 'typeMismatch'){
1308
+ message = getMessageFromObj(currentValidationMessage.badInput, elem);
1309
+ }
1310
+ if(!message){
1311
+ message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
1312
+ webshims.info('could not find errormessage for: '+ name +' / '+ $.prop(elem, 'type') +'. in language: '+webshims.activeLang());
1313
+ }
1314
+ message = webshims.replaceValidationplaceholder(elem, message, name);
1308
1315
 
1309
1316
  return message || '';
1310
1317
  };