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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 64dc8a60020703d0b864c0f4f7ab4b8f39f0f63a
4
- data.tar.gz: b1ce0d9be3b195be8381b475f3298ceee290b134
3
+ metadata.gz: 4a2cd305c4543c3f88f05a7507c8994158874883
4
+ data.tar.gz: a47f33704f1475c5f7362d547c9ad15ced2f6827
5
5
  SHA512:
6
- metadata.gz: b77af804aa74df4ef6593b8aba59d7e8e8ee8deba60b34797abc81af83429b24be969e88d90cbce9762ff5085ec6715e7e06aaaaa9de84c8163a988c26a1e5f1
7
- data.tar.gz: 979c651edd8c44edba2cb9d8703538019d7fbfe4b2b5d61bae490d71cd86ab65b1cc7f252922153677bb723b2d41c9fee2541280dfb65208054c049e9c22428c
6
+ metadata.gz: 55bed905a5a943dfa132d9c86e8aadb6a59a1b4085f73786c752e16fe8c113b3d9cdd268a86caa97d860a98933235949563696eeeee41bf1eb86db1c185b4c87
7
+ data.tar.gz: 49ce052c26a6381f669267718b5f5d9dddc6362ccae5d6e1c0e43510f7622dcfb80b487489e8f37137b73c2be50e939b1c7822d676f9855d96cb643aba3dc97b
@@ -1,6 +1,6 @@
1
1
  module Webshims
2
2
  module Rails
3
- VERSION = "1.12.2"
4
- WEBSHIMS_VERSION = "1.12.2"
3
+ VERSION = "1.12.3"
4
+ WEBSHIMS_VERSION = "1.12.3"
5
5
  end
6
6
  end
@@ -1,5 +1,5 @@
1
1
  /* Modernizr 2.7.1 (Custom Build) | MIT & BSD
2
- * Build: http://modernizr.com/download/#-canvas-audio-video-input-inputtypes-localstorage-sessionstorage-geolocation-shiv-cssclasses-addtest-prefixed-testprop-testallprops-prefixes-domprefixes-elem_track
2
+ * Build: http://modernizr.com/download/#-canvas-audio-video-input-inputtypes-geolocation-shiv-addtest-prefixed-testprop-testallprops-prefixes-domprefixes
3
3
  */
4
4
  ;
5
5
 
@@ -11,7 +11,6 @@ window.Modernizr = (function( window, document, undefined ) {
11
11
 
12
12
  Modernizr = {},
13
13
 
14
- enableClasses = true,
15
14
 
16
15
  docElement = document.documentElement,
17
16
 
@@ -207,30 +206,7 @@ window.Modernizr = (function( window, document, undefined ) {
207
206
  } catch(e) { }
208
207
 
209
208
  return bool;
210
- };
211
-
212
-
213
- tests['localstorage'] = function() {
214
- try {
215
- localStorage.setItem(mod, mod);
216
- localStorage.removeItem(mod);
217
- return true;
218
- } catch(e) {
219
- return false;
220
- }
221
- };
222
-
223
- tests['sessionstorage'] = function() {
224
- try {
225
- sessionStorage.setItem(mod, mod);
226
- sessionStorage.removeItem(mod);
227
- return true;
228
- } catch(e) {
229
- return false;
230
- }
231
- };
232
-
233
- function webforms() {
209
+ }; function webforms() {
234
210
  Modernizr['input'] = (function( props ) {
235
211
  for ( var i = 0, len = props.length; i < len; i++ ) {
236
212
  attrs[ props[i] ] = !!(props[i] in inputElem);
@@ -524,22 +500,8 @@ window.Modernizr = (function( window, document, undefined ) {
524
500
  };
525
501
 
526
502
 
527
- docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') +
528
-
529
- (enableClasses ? ' js ' + classes.join(' ') : '');
530
503
 
531
504
  return Modernizr;
532
505
 
533
506
  })(this, this.document);
534
- // Track element + Timed Text Track API
535
- // http://www.w3.org/TR/html5/video.html#the-track-element
536
- // http://www.w3.org/TR/html5/media-elements.html#text-track-api
537
- //
538
- // While IE10 has implemented the track element, IE10 does not expose the underlying APIs to create timed text tracks by JS (really sad)
539
- // By Addy Osmani
540
- Modernizr.addTest({
541
- texttrackapi: (typeof (document.createElement('video').addTextTrack) === 'function'),
542
- // a more strict test for track including UI support: document.createElement('track').kind === 'subtitles'
543
- track: ('kind' in document.createElement('track'))
544
- });
545
507
  ;
@@ -113,7 +113,7 @@
113
113
  path = path.split('?')[0].slice(0, path.lastIndexOf("/") + 1) + 'shims/';
114
114
 
115
115
  $.extend(webshims, {
116
- version: '1.12.2',
116
+ version: '1.12.3',
117
117
  cfg: {
118
118
 
119
119
  //addCacheBuster: false,
@@ -967,7 +967,7 @@
967
967
  var bustedWidgetUi = false;
968
968
 
969
969
  var initialFormTest = function(){
970
- var range, tmp, fieldset;
970
+ var tmp, fieldset;
971
971
  if(!initialFormTest.run){
972
972
  fieldset = $('<fieldset><textarea required="" /></fieldset>')[0];
973
973
  addTest(formvalidation, !!(modernizrInputAttrs.required && modernizrInputAttrs.pattern));
@@ -985,17 +985,6 @@
985
985
  }
986
986
  addTest('fieldsetdisabled', tmp);
987
987
  }
988
- if(modernizrInputTypes && modernizrInputTypes.range && !window.opera){
989
- range = $('<input type="range" style="-webkit-appearance: slider-horizontal; -moz-appearance: range;" />').appendTo('html');
990
- tmp = range.css('appearance');
991
- range.remove();
992
-
993
- addTest('csstrackrange', tmp == null || tmp == 'range');
994
-
995
- addTest('cssrangeinput', tmp == 'slider-horizontal' || tmp == 'range');
996
-
997
- addTest('styleableinputrange', Modernizr.csstrackrange || Modernizr.cssrangeinput);
998
- }
999
988
 
1000
989
  if(Modernizr[formvalidation]){
1001
990
  bustedWidgetUi = !Modernizr.fieldsetdisabled ||!Modernizr.fieldsetelements || !('value' in document.createElement('progress')) || !('value' in document.createElement('output'));
@@ -1198,7 +1187,11 @@
1198
1187
  //<mediaelement
1199
1188
  (function(){
1200
1189
  webshims.mediaelement = {};
1201
-
1190
+ addTest({
1191
+ texttrackapi: ('addTextTrack' in document.createElement('video')),
1192
+ // a more strict test for track including UI support: document.createElement('track').kind === 'subtitles'
1193
+ track: ('kind' in document.createElement('track'))
1194
+ });
1202
1195
  addPolyfill('mediaelement-core', {
1203
1196
  f: 'mediaelement',
1204
1197
  noAutoCallback: true,
@@ -1212,7 +1205,7 @@
1212
1205
  methodNames: ['play', 'pause', 'canPlayType', 'mediaLoad:load'],
1213
1206
  d: ['swfmini'],
1214
1207
  c: [16, 7, 2, 8, 1, 12, 13, 19, 25, 20, 23],
1215
- nM: 'audio video texttrackapi'
1208
+ nM: 'audio video'
1216
1209
  });
1217
1210
 
1218
1211
 
@@ -1228,7 +1221,7 @@
1228
1221
  if(options.preferFlash && !modules.swfmini.test()){
1229
1222
  options.preferFlash = false;
1230
1223
  }
1231
- return !( options.preferFlash && swfmini.hasFlashPlayerVersion('9.0.115') );
1224
+ return !( options.preferFlash && swfmini.hasFlashPlayerVersion('10.0.3') );
1232
1225
  },
1233
1226
  c: [21, 19, 25, 20]
1234
1227
  });
@@ -1245,8 +1238,7 @@
1245
1238
  },
1246
1239
  d: ['mediaelement', DOMSUPPORT],
1247
1240
  methodNames: ['addTextTrack'],
1248
- c: [21, 12, 13, 22],
1249
- nM: 'texttrackapi'
1241
+ c: [21, 12, 13, 22]
1250
1242
  });
1251
1243
 
1252
1244
 
@@ -683,6 +683,9 @@ webshims.register('form-core', function($, webshims, window, document, undefined
683
683
  if(typeof message == 'object'){
684
684
  message = message.defaultMessage;
685
685
  }
686
+ if(webshims.replaceValidationplaceholder){
687
+ message = webshims.replaceValidationplaceholder(elem, message);
688
+ }
686
689
  return message || '';
687
690
  };
688
691
 
@@ -803,7 +806,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
803
806
  hasFullTrackSupport = Modernizr.track && !bugs.track;
804
807
 
805
808
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
806
- hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
809
+ hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
807
810
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
808
811
  var mediaelement = webshims.mediaelement;
809
812
 
@@ -1396,4 +1399,4 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1396
1399
  }
1397
1400
  webshims.ready('track', loadTrackUi);
1398
1401
  });
1399
- })(Modernizr, webshims);
1402
+ })(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
  });
@@ -15,7 +15,7 @@
15
15
  _create: function(){
16
16
  var i;
17
17
 
18
- 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>');
18
+ 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>');
19
19
  this.trail = $('.ws-range-track', this.element);
20
20
  this.range = $('.ws-range-progress', this.element);
21
21
  this.thumb = $('.ws-range-thumb', this.trail);
@@ -97,7 +97,7 @@
97
97
  'aria-valuenow': this.options.value,
98
98
  'aria-valuetext': textValue
99
99
  });
100
- $('span', this.thumb).attr({
100
+ $('span[data-value]', this.thumb).attr({
101
101
  'data-value': this.options.value,
102
102
  'data-valuetext': textValue
103
103
  });
@@ -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,7 +1142,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1142
1142
  }
1143
1143
  webshims.ready('track', loadTrackUi);
1144
1144
  });
1145
- })(Modernizr, webshims);;webshims.register('track', function($, webshims, window, document, undefined){
1145
+ })(Modernizr, webshims);
1146
+ ;webshims.register('track', function($, webshims, window, document, undefined){
1146
1147
  "use strict";
1147
1148
  var mediaelement = webshims.mediaelement;
1148
1149
  var id = new Date().getTime();
@@ -98,7 +98,7 @@
98
98
  hasFullTrackSupport = Modernizr.track && !bugs.track;
99
99
 
100
100
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
101
- hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
101
+ hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
102
102
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
103
103
  var mediaelement = webshims.mediaelement;
104
104
 
@@ -691,7 +691,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
691
691
  }
692
692
  webshims.ready('track', loadTrackUi);
693
693
  });
694
- })(Modernizr, webshims);;webshims.register('track', function($, webshims, window, document, undefined){
694
+ })(Modernizr, webshims);
695
+ ;webshims.register('track', function($, webshims, window, document, undefined){
695
696
  "use strict";
696
697
  var mediaelement = webshims.mediaelement;
697
698
  var id = new Date().getTime();
@@ -329,27 +329,17 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
329
329
  }
330
330
  return message || '';
331
331
  };
332
+ var lReg = /</g;
333
+ var gReg = />/g;
332
334
  var valueVals = {
333
335
  value: 1,
334
336
  min: 1,
335
337
  max: 1
336
338
  };
337
-
338
- webshims.createValidationMessage = function(elem, name){
339
- var widget;
340
- var type = $.prop(elem, 'type');
341
- var message = getMessageFromObj(currentValidationMessage[name], elem);
342
- if(!message && name == 'badInput'){
343
- message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
344
- }
345
- if(!message && name == 'typeMismatch'){
346
- message = getMessageFromObj(currentValidationMessage.badInput, elem);
347
- }
348
- if(!message){
349
- message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
350
- webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
351
- }
352
- if(message){
339
+
340
+ webshims.replaceValidationplaceholder = function(elem, message, name){
341
+ var type, widget;
342
+ if(message && message.indexOf('{%') != -1){
353
343
  ['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
354
344
  if(message.indexOf('{%'+attr) === -1){return;}
355
345
  var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
@@ -358,19 +348,36 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
358
348
  }
359
349
  if(valueVals[attr]){
360
350
  if(!widget){
361
- widget = $(elem).getShadowElement().data('wsWidget'+type);
351
+ widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
362
352
  }
363
353
  if(widget && widget.formatValue){
364
354
  val = widget.formatValue(val, false);
365
355
  }
366
356
  }
367
- message = message.replace('{%'+ attr +'}', val);
357
+ message = message.replace('{%'+ attr +'}', val.replace(lReg, '&lt;').replace(gReg, '&gt;'));
368
358
  if('value' == attr){
369
359
  message = message.replace('{%valueLen}', val.length);
370
360
  }
371
-
361
+
372
362
  });
373
363
  }
364
+ return message;
365
+ };
366
+
367
+ webshims.createValidationMessage = function(elem, name){
368
+
369
+ var message = getMessageFromObj(currentValidationMessage[name], elem);
370
+ if(!message && name == 'badInput'){
371
+ message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
372
+ }
373
+ if(!message && name == 'typeMismatch'){
374
+ message = getMessageFromObj(currentValidationMessage.badInput, elem);
375
+ }
376
+ if(!message){
377
+ message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
378
+ webshims.info('could not find errormessage for: '+ name +' / '+ $.prop(elem, 'type') +'. in language: '+webshims.activeLang());
379
+ }
380
+ message = webshims.replaceValidationplaceholder(elem, message, name);
374
381
 
375
382
  return message || '';
376
383
  };
@@ -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
 
@@ -2314,27 +2317,17 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
2314
2317
  }
2315
2318
  return message || '';
2316
2319
  };
2320
+ var lReg = /</g;
2321
+ var gReg = />/g;
2317
2322
  var valueVals = {
2318
2323
  value: 1,
2319
2324
  min: 1,
2320
2325
  max: 1
2321
2326
  };
2322
-
2323
- webshims.createValidationMessage = function(elem, name){
2324
- var widget;
2325
- var type = $.prop(elem, 'type');
2326
- var message = getMessageFromObj(currentValidationMessage[name], elem);
2327
- if(!message && name == 'badInput'){
2328
- message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
2329
- }
2330
- if(!message && name == 'typeMismatch'){
2331
- message = getMessageFromObj(currentValidationMessage.badInput, elem);
2332
- }
2333
- if(!message){
2334
- message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
2335
- webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
2336
- }
2337
- if(message){
2327
+
2328
+ webshims.replaceValidationplaceholder = function(elem, message, name){
2329
+ var type, widget;
2330
+ if(message && message.indexOf('{%') != -1){
2338
2331
  ['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
2339
2332
  if(message.indexOf('{%'+attr) === -1){return;}
2340
2333
  var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
@@ -2343,19 +2336,36 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
2343
2336
  }
2344
2337
  if(valueVals[attr]){
2345
2338
  if(!widget){
2346
- widget = $(elem).getShadowElement().data('wsWidget'+type);
2339
+ widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
2347
2340
  }
2348
2341
  if(widget && widget.formatValue){
2349
2342
  val = widget.formatValue(val, false);
2350
2343
  }
2351
2344
  }
2352
- message = message.replace('{%'+ attr +'}', val);
2345
+ message = message.replace('{%'+ attr +'}', val.replace(lReg, '&lt;').replace(gReg, '&gt;'));
2353
2346
  if('value' == attr){
2354
2347
  message = message.replace('{%valueLen}', val.length);
2355
2348
  }
2356
-
2349
+
2357
2350
  });
2358
2351
  }
2352
+ return message;
2353
+ };
2354
+
2355
+ webshims.createValidationMessage = function(elem, name){
2356
+
2357
+ var message = getMessageFromObj(currentValidationMessage[name], elem);
2358
+ if(!message && name == 'badInput'){
2359
+ message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
2360
+ }
2361
+ if(!message && name == 'typeMismatch'){
2362
+ message = getMessageFromObj(currentValidationMessage.badInput, elem);
2363
+ }
2364
+ if(!message){
2365
+ message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
2366
+ webshims.info('could not find errormessage for: '+ name +' / '+ $.prop(elem, 'type') +'. in language: '+webshims.activeLang());
2367
+ }
2368
+ message = webshims.replaceValidationplaceholder(elem, message, name);
2359
2369
 
2360
2370
  return message || '';
2361
2371
  };
@@ -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
 
@@ -2765,27 +2768,17 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
2765
2768
  }
2766
2769
  return message || '';
2767
2770
  };
2771
+ var lReg = /</g;
2772
+ var gReg = />/g;
2768
2773
  var valueVals = {
2769
2774
  value: 1,
2770
2775
  min: 1,
2771
2776
  max: 1
2772
2777
  };
2773
-
2774
- webshims.createValidationMessage = function(elem, name){
2775
- var widget;
2776
- var type = $.prop(elem, 'type');
2777
- var message = getMessageFromObj(currentValidationMessage[name], elem);
2778
- if(!message && name == 'badInput'){
2779
- message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
2780
- }
2781
- if(!message && name == 'typeMismatch'){
2782
- message = getMessageFromObj(currentValidationMessage.badInput, elem);
2783
- }
2784
- if(!message){
2785
- message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
2786
- webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
2787
- }
2788
- if(message){
2778
+
2779
+ webshims.replaceValidationplaceholder = function(elem, message, name){
2780
+ var type, widget;
2781
+ if(message && message.indexOf('{%') != -1){
2789
2782
  ['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
2790
2783
  if(message.indexOf('{%'+attr) === -1){return;}
2791
2784
  var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
@@ -2794,19 +2787,36 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
2794
2787
  }
2795
2788
  if(valueVals[attr]){
2796
2789
  if(!widget){
2797
- widget = $(elem).getShadowElement().data('wsWidget'+type);
2790
+ widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
2798
2791
  }
2799
2792
  if(widget && widget.formatValue){
2800
2793
  val = widget.formatValue(val, false);
2801
2794
  }
2802
2795
  }
2803
- message = message.replace('{%'+ attr +'}', val);
2796
+ message = message.replace('{%'+ attr +'}', val.replace(lReg, '&lt;').replace(gReg, '&gt;'));
2804
2797
  if('value' == attr){
2805
2798
  message = message.replace('{%valueLen}', val.length);
2806
2799
  }
2807
-
2800
+
2808
2801
  });
2809
2802
  }
2803
+ return message;
2804
+ };
2805
+
2806
+ webshims.createValidationMessage = function(elem, name){
2807
+
2808
+ var message = getMessageFromObj(currentValidationMessage[name], elem);
2809
+ if(!message && name == 'badInput'){
2810
+ message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
2811
+ }
2812
+ if(!message && name == 'typeMismatch'){
2813
+ message = getMessageFromObj(currentValidationMessage.badInput, elem);
2814
+ }
2815
+ if(!message){
2816
+ message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
2817
+ webshims.info('could not find errormessage for: '+ name +' / '+ $.prop(elem, 'type') +'. in language: '+webshims.activeLang());
2818
+ }
2819
+ message = webshims.replaceValidationplaceholder(elem, message, name);
2810
2820
 
2811
2821
  return message || '';
2812
2822
  };
@@ -3266,7 +3276,7 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
3266
3276
  hasFullTrackSupport = Modernizr.track && !bugs.track;
3267
3277
 
3268
3278
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
3269
- hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
3279
+ hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
3270
3280
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
3271
3281
  var mediaelement = webshims.mediaelement;
3272
3282
 
@@ -3859,4 +3869,4 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3859
3869
  }
3860
3870
  webshims.ready('track', loadTrackUi);
3861
3871
  });
3862
- })(Modernizr, webshims);
3872
+ })(Modernizr, webshims);