vendor/assets/javascripts/webshims/shims/combos/24.js in webshims-rails-1.10.10 vs vendor/assets/javascripts/webshims/shims/combos/24.js in webshims-rails-1.10.11
- old
+ new
@@ -1,11 +1,11 @@
webshims.register('form-validation', function($, webshims, window, document, undefined, options){
var isWebkit = 'webkitURL' in window;
var chromeBugs = isWebkit && Modernizr.formvalidation && !webshims.bugs.bustedValidity;
var webkitVersion = chromeBugs && parseFloat((navigator.userAgent.match(/Safari\/([\d\.]+)/) || ['', '999999'])[1], 10);
- var invalidClass = 'user-error';
- var validClass = 'user-success';
+ var invalidClass = options.iVal.errorClass || 'user-error';
+ var validClass = options.iVal.successClass || 'user-success';
var checkTypes = {checkbox: 1, radio: 1};
var emptyJ = $([]);
var isValid = function(elem){
return ($.prop(elem, 'validity') || {valid: 1}).valid;
@@ -74,10 +74,11 @@
datetime: 1,
week: 1,
'datetime-local': 1
};
var switchValidityClass = function(e){
+ if(!options.iVal.sel){return;}
var elem, timer, shadowElem, shadowType;
if(!e.target){return;}
elem = $(e.target).getNativeElement()[0];
shadowElem = $(elem).getShadowElement();
if(elem.type == 'submit' || !$.prop(elem, 'willValidate') || (e.type == 'change' && (shadowType = shadowElem.prop('type')) && !changeTypes[shadowType])){return;}
@@ -180,11 +181,11 @@
webshims.scrollRoot = (isWebkit || document.compatMode == 'BackCompat') ?
$(document.body) :
$(document.documentElement)
;
};
- var minWidth = (Modernizr.boxSizing || Modernizr['display-table'] || $.support.getSetAttribute) ?
+ var minWidth = (Modernizr.boxSizing || Modernizr['display-table'] || $.support.getSetAttribute || $.support.boxSizing) ?
'minWidth' :
'width'
;
var hasTransition = ('transitionDelay' in document.documentElement.style);
var resetPos = {display: 'inline-block', left: 0, top: 0, marginTop: 0, marginLeft: 0, marginRight: 0, marginBottom: 0};
@@ -233,18 +234,25 @@
isInElement: function(container, contained){
return container == contained || $.contains(container, contained);
},
show: function(element){
+ if(this.isVisible){return;}
var e = $.Event('wspopoverbeforeshow');
this.element.trigger(e);
- if(e.isDefaultPrevented() || this.isVisible){return;}
+ if(e.isDefaultPrevented()){return;}
this.isVisible = true;
element = $(element || this.options.prepareFor).getNativeElement() ;
var that = this;
var visual = $(element).getShadowElement();
+ var delayedRepos = function(e){
+ clearTimeout(that.timers.repos);
+ that.timers.repos = setTimeout(function(){
+ that.position(visual);
+ }, e && e.type == 'pospopover' ? 4 : 200);
+ };
this.clear();
this.element.removeClass('ws-po-visible').css('display', 'none');
this.prepareFor(element, visual);
@@ -254,26 +262,19 @@
that.element.css('display', '');
that.timers.show = setTimeout(function(){
that.element.addClass('ws-po-visible').trigger('wspopovershow');
}, 9);
}, 9);
- this.element.on('remove', function(e){
- if(!e.originalEvent){
- that.destroy();
- }
- });
+
$(document).on('focusin'+this.eventns+' mousedown'+this.eventns, function(e){
if(that.options.hideOnBlur && !that.stopBlur && !that.isInElement(that.lastElement[0] || document.body, e.target) && !that.isInElement(element[0] || document.body, e.target) && !that.isInElement(that.element[0], e.target)){
that.hide();
}
});
- $(window).on('resize'+this.eventns + ' pospopover'+this.eventns, function(){
- clearTimeout(that.timers.repos);
- that.timers.repos = setTimeout(function(){
- that.position(visual);
- }, 400);
- });
+
+ this.element.off('pospopover').on('pospopover', delayedRepos);
+ $(window).on('resize'+this.eventns + ' pospopover'+this.eventns, delayedRepos);
},
prepareFor: function(element, visual){
var onBlur;
var that = this;
var css = {};
@@ -474,10 +475,10 @@
fieldWrapper = false;
webshims.error("could not find fieldwrapper: "+ options.iVal.fieldWrapper);
}
}
if(!fieldWrapper){
- fieldWrapper = $(elem).parent().closest(':not(span, label, em, strong, b, mark, p)');
+ fieldWrapper = $(elem).parent().closest(':not(span, label, em, strong, b, i, mark, p)');
}
return fieldWrapper;
},
get: function(elem, fieldWrapper){
if(!fieldWrapper){