From b0cc8a8ac72594ca92a52c49be3289520a742240 Mon Sep 17 00:00:00 2001 From: texpert Date: Thu, 29 Aug 2024 20:05:35 +0300 Subject: [PATCH 1/2] Upgrade jquery-validate to version 1.21.0 --- .../camaleon_cms/admin/jquery.validate.js | 10 +-- .../camaleon_cms/admin/jquery_validate/de.js | 20 ------ .../camaleon_cms/admin/jquery_validate/it.js | 23 ------ .../admin/jquery_validate/messages_ar.js | 52 ++++++++++++++ .../admin/jquery_validate/messages_de.js | 70 +++++++++++++++++++ .../jquery_validate/{es.js => messages_es.js} | 19 +++-- .../jquery_validate/{fr.js => messages_fr.js} | 10 ++- .../admin/jquery_validate/messages_it.js | 27 +++++++ .../jquery_validate/{nl.js => messages_nl.js} | 1 + .../{pt-BR.js => messages_pt-BR.js} | 43 +++++++----- .../jquery_validate/{ru.js => messages_ru.js} | 8 ++- .../jquery_validate/{uk.js => messages_uk.js} | 0 .../{zh-CN.js => messages_zh-CN.js} | 17 ++--- .../admin/jquery_validate/methods_de.js | 12 ++++ .../admin/jquery_validate/methods_nl.js | 12 ++++ .../admin/jquery_validate/methods_pt.js | 9 +++ app/views/layouts/camaleon_cms/admin.html.erb | 8 ++- 17 files changed, 250 insertions(+), 91 deletions(-) delete mode 100644 app/assets/javascripts/camaleon_cms/admin/jquery_validate/de.js delete mode 100644 app/assets/javascripts/camaleon_cms/admin/jquery_validate/it.js create mode 100644 app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_ar.js create mode 100644 app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_de.js rename app/assets/javascripts/camaleon_cms/admin/jquery_validate/{es.js => messages_es.js} (56%) rename app/assets/javascripts/camaleon_cms/admin/jquery_validate/{fr.js => messages_fr.js} (87%) create mode 100644 app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_it.js rename app/assets/javascripts/camaleon_cms/admin/jquery_validate/{nl.js => messages_nl.js} (96%) rename app/assets/javascripts/camaleon_cms/admin/jquery_validate/{pt-BR.js => messages_pt-BR.js} (74%) rename app/assets/javascripts/camaleon_cms/admin/jquery_validate/{ru.js => messages_ru.js} (90%) rename app/assets/javascripts/camaleon_cms/admin/jquery_validate/{uk.js => messages_uk.js} (100%) rename app/assets/javascripts/camaleon_cms/admin/jquery_validate/{zh-CN.js => messages_zh-CN.js} (51%) create mode 100644 app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_de.js create mode 100644 app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_nl.js create mode 100644 app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_pt.js diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery.validate.js b/app/assets/javascripts/camaleon_cms/admin/jquery.validate.js index 1199ea3cd..f647099dd 100644 --- a/app/assets/javascripts/camaleon_cms/admin/jquery.validate.js +++ b/app/assets/javascripts/camaleon_cms/admin/jquery.validate.js @@ -1,7 +1,7 @@ -/*! jQuery Validation Plugin - v1.15.0 - 2/24/2016 - * http://jqueryvalidation.org/ - * Copyright (c) 2016 Jörn Zaefferer; Licensed MIT */ -!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.settings.submitHandler?(c.submitButton&&(d=a("").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){if(this.length){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){var c=a(b).val();return null!==c&&!!a.trim(""+c)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||-1!==a.inArray(c.keyCode,d)||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable]",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=h&&g.check(e)))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)a[b]&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.hasAttribute("contenteditable")&&(this.form=a(this).closest("form")[0]),d in c||!b.objectLength(a(this).rules())?!1:(c[d]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type;return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=b.hasAttribute("contenteditable")?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);if("function"==typeof f.normalizer){if(i=f.normalizer.call(b,i),"string"!=typeof i)throw new TypeError("The normalizer should return a string value.");delete f.normalizer}for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+b.name+""),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return a.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(d,e){b[d]=a.isFunction(e)&&"normalizer"!==d?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.| |_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e=a(c).attr("type"),f="Step attribute on input type "+e+" is not supported.",g=["text","number","range"],h=new RegExp("\\b"+e+"\\b"),i=e&&!h.test(g.join());if(i)throw new Error(f);return this.optional(c)||b%d===0},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})}); +/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024 + * https://jqueryvalidation.org/ + * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.submitButton=b.currentTarget,a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.submitButton&&(c.settings.submitHandler||c.formSubmitted)&&(d=a("").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!(c.settings.submitHandler&&!c.settings.debug)||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0],k="undefined"!=typeof this.attr("contenteditable")&&"false"!==this.attr("contenteditable");if(null!=j&&(!j.form&&k&&(j.form=this.closest("form")[0],j.name=this.attr("name")),null!=j.form)){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}});var b=function(a){return a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};a.extend(a.expr.pseudos||a.expr[":"],{blank:function(c){return!b(""+a(c).val())},filled:function(c){var d=a(c).val();return null!==d&&!!b(""+d)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,customElements:[],onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");if(!this.form&&c&&(this.form=a(this).closest("form")[0],this.name=a(this).attr("name")),d===this.form){var e=a.data(this.form,"validator"),f="on"+b.type.replace(/^validate/,""),g=e.settings;g[f]&&!a(this).is(g.ignore)&&g[f].call(e,this,b)}}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.currentForm,e=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){e[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)});var f=[":text","[type='password']","[type='file']","select","textarea","[type='number']","[type='search']","[type='tel']","[type='url']","[type='email']","[type='datetime']","[type='date']","[type='month']","[type='week']","[type='time']","[type='datetime-local']","[type='range']","[type='color']","[type='radio']","[type='checkbox']","[contenteditable]","[type='button']"],g=["select","option","[type='radio']","[type='checkbox']"];a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",f.concat(this.settings.customElements).join(", "),b).on("click.validate",g.concat(this.settings.customElements).join(", "),b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").trigger("focus").trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={},d=["input","select","textarea","[contenteditable]"];return a(this.currentForm).find(d.concat(this.settings.customElements).join(", ")).not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name"),e="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),e&&(this.form=a(this).closest("form")[0],this.name=d),this.form===b.currentForm&&(!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0))})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type,g="undefined"!=typeof e.attr("contenteditable")&&"false"!==e.attr("contenteditable");return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=g?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);this.abortRequest(b),"function"==typeof g.normalizer?f=g.normalizer:"function"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f&&(j=f.call(b,j),delete g.normalizer);for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),"dependency-mismatch"===c&&1===h){i=!0;continue}if(i=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",k),k instanceof TypeError&&(k.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+b.name+""),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),this.settings&&this.settings.escapeHtml?h.text(c||""):h.html(c||"")):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass),this.settings&&this.settings.escapeHtml?h.text(c||""):h.html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return void 0===a?"":a.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},elementAjaxPort:function(a){return"validate"+a.name},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()&&0===this.pendingRequest?(a(this.currentForm).trigger("submit"),this.submitButton&&a("input:hidden[name='"+this.submitButton.name+"']",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},abortRequest:function(b){var c;this.pending[b.name]&&(c=this.elementAjaxPort(b),a.ajaxAbort(c),this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass))},previousValue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a["date"===b?"dateISO":c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),""===d&&(d=!0),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(a,d){b[a]="function"==typeof d&&"normalizer"!==a?d(c):d}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var a;b[this]&&(Array.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(a=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(a[0]),Number(a[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:void 0!==b&&null!==b&&b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(){var a=!1;return function(b,c){return a||(a=!0,this.settings.debug&&window.console&&console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\nPlease don't use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")),this.optional(c)||!/Invalid|NaN/.test(new Date(b).toString())}}(),dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:-?\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c},maxlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d<=c},rangelength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c[0]&&d<=c[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="Step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new RegExp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),null!==i.valid&&i.old===h?i.valid:(i.old=h,i.valid=null,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:this.elementAjaxPort(c),dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var c,d={};return a.ajaxPrefilter?a.ajaxPrefilter(function(b,c,e){var f=b.port;"abort"===b.mode&&(a.ajaxAbort(f),d[f]=e)}):(c=a.ajax,a.ajax=function(b){var e=("mode"in b?b:a.ajaxSettings).mode,f=("port"in b?b:a.ajaxSettings).port;return"abort"===e?(a.ajaxAbort(f),d[f]=c.apply(this,arguments),d[f]):c.apply(this,arguments)}),a.ajaxAbort=function(a){d[a]&&(d[a].abort(),delete d[a])},a}); //***************customization*****************/ // jquery custom validations and default values @@ -120,4 +120,4 @@ jQuery(function(){ file_format: {file_format: true} }); $('form.cama_form_validate').validate(); -}); \ No newline at end of file +}); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/de.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/de.js deleted file mode 100644 index 5685dc216..000000000 --- a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/de.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: DE (German, Deutsch) - */ -$.extend( $.validator.messages, { - required: "Dieses Feld ist ein Pflichtfeld.", - maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ), - minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ), - rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ), - email: "Geben Sie bitte eine gültige E-Mail Adresse ein.", - url: "Geben Sie bitte eine gültige URL ein.", - date: "Bitte geben Sie ein gültiges Datum ein.", - number: "Geben Sie bitte eine Nummer ein.", - digits: "Geben Sie bitte nur Ziffern ein.", - equalTo: "Bitte denselben Wert wiederholen.", - range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ), - max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ), - min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ), - creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein." -} ); \ No newline at end of file diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/it.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/it.js deleted file mode 100644 index 401346a95..000000000 --- a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/it.js +++ /dev/null @@ -1,23 +0,0 @@ -$.extend($.validator.messages, { - required: "Questo campo è obbligatorio.", - remote: "Si prega di compilare questo campo.", - email: "Inserire un indirizzo email valido.", - url: "Inserire una URL valida.", - date: "Inserire una data valida.", - dateISO: "Inserire una data (ISO) valida.", - number: "Inserire un numero valido.", - digits: "Inserisci solo cifre.", - creditcard: "Inserire una tessera valida.", - equalTo: "Inserisci di nuovo lo stesso valore.", - extension: "Inserisci un valore con un'estensione valida.", - maxlength: $.validator.format("Non scrivere più di {0} caratteri."), - minlength: $.validator.format("Non scrivere meno di {0} caratteri."), - rangelength: $.validator.format("Inserisci un valore compreso tra {0} e {1} caratteri."), - range: $.validator.format("Inserisci un valore tra {0} e {1}."), - max: $.validator.format("Inserisci un valore minore o uguale a {0}."), - min: $.validator.format("Inserisci un valore maggiore o uguale a {0}."), - nifES: "Inserisci un NIF valido.", - nieES: "Inserisci un NIE valido.", - cifES: "Inserisci un CIF valido.", - file_format: "Formato archivio non permesso." -}); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_ar.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_ar.js new file mode 100644 index 000000000..82aba182b --- /dev/null +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_ar.js @@ -0,0 +1,52 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: AR (Arabic; العربية) + */ +$.extend( $.validator.messages, { + required: "هذا الحقل إلزامي", + remote: "يرجى تصحيح هذا الحقل للمتابعة", + email: "رجاء إدخال عنوان بريد إلكتروني صحيح", + url: "رجاء إدخال عنوان موقع إلكتروني صحيح", + date: "رجاء إدخال تاريخ صحيح", + dateISO: "رجاء إدخال تاريخ صحيح (ISO)", + number: "رجاء إدخال عدد بطريقة صحيحة", + digits: "رجاء إدخال أرقام فقط", + creditcard: "رجاء إدخال رقم بطاقة ائتمان صحيح", + equalTo: "رجاء إدخال نفس القيمة", + extension: "رجاء إدخال ملف بامتداد موافق عليه", + maxlength: $.validator.format( "الحد الأقصى لعدد الحروف هو {0}" ), + minlength: $.validator.format( "الحد الأدنى لعدد الحروف هو {0}" ), + rangelength: $.validator.format( "عدد الحروف يجب أن يكون بين {0} و {1}" ), + range: $.validator.format( "رجاء إدخال عدد قيمته بين {0} و {1}" ), + max: $.validator.format( "رجاء إدخال عدد أقل من أو يساوي {0}" ), + min: $.validator.format( "رجاء إدخال عدد أكبر من أو يساوي {0}" ), + step: $.validator.format( "يرجى تقديم قيمة من مضاعفات {0}" ), + maxWords: $.validator.format( "يرجى تقديم ما لا يزيد عن {0} كلمات" ), + minWords: $.validator.format( "يرجى تقديم {0} كلمات على الأقل" ), + rangeWords: $.validator.format( "يرجى تقديم ما بين {0} و{1} كلمة" ), + letterswithbasicpunc: "يرجى تقديم الحروف وعلامات الترقيم فقط", + alphanumeric: "يرجى تقديم الحروف والأرقام والمسافات والتسطير فقط", + lettersonly: "يرجى تقديم الحروف فقط", + nowhitespace: "من فضلك لا تدخل المساحات البيضاء", + ziprange: "يرجى تقديم الرمز البريدي بين 902xx-xxxx و905-xx-xxxx", + integer: "يرجى تقديم رقم غير عشري موجب أو سالب", + vinUS: "يرجى تقديم رقم تعريف المركبة (VIN)", + dateITA: "يرجى تقديم تاريخ صالح", + time: "يرجى تقديم وقت صالح بين 00:00 و23:59", + phoneUS: "الرجاء تقديم رقم هاتف صالح", + phoneUK: "الرجاء تقديم رقم هاتف صالح", + mobileUK: "يرجى تقديم رقم هاتف محمول صالح", + strippedminlength: $.validator.format( "يرجى تقديم {0} حرفًا على الأقل" ), + email2: "يرجى تقديم عنوان بريد إلكتروني صالح", + url2: "يرجى إدخال عنوان بريد إلكتروني صحيح", + creditcardtypes: "يرجى تقديم رقم بطاقة ائتمان صالح", + currency: "يرجى تقديم عملة صالحة", + ipv4: "يرجى تقديم عنوان IP v4 صالح", + ipv6: "يرجى تقديم عنوان IP v6 صالح", + require_from_group: $.validator.format( "يرجى تقديم ما لا يقل عن {0} من هذه الحقول" ), + nifES: "يرجى تقديم رقم TIN صالح", + nieES: "يرجى تقديم رقم NIE صالح", + cifES: "يرجى تقديم رقم CIF صالح", + postalCodeCA: "يرجى تقديم رمز بريدي صالح", + pattern: "التنسيق غير صالح" +} ); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_de.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_de.js new file mode 100644 index 000000000..8fb896179 --- /dev/null +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_de.js @@ -0,0 +1,70 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: DE (German, Deutsch) + */ +$.extend( $.validator.messages, { + required: "Dieses Feld ist ein Pflichtfeld.", + maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ), + minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ), + rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ), + email: "Geben Sie bitte eine gültige E-Mail-Adresse ein.", + url: "Geben Sie bitte eine gültige URL ein.", + date: "Geben Sie bitte ein gültiges Datum ein.", + number: "Geben Sie bitte eine Nummer ein.", + digits: "Geben Sie bitte nur Ziffern ein.", + equalTo: "Wiederholen Sie bitte denselben Wert.", + range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ), + max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ), + min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ), + creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein.", + remote: "Korrigieren Sie bitte dieses Feld.", + dateISO: "Geben Sie bitte ein gültiges Datum ein (ISO-Format).", + step: $.validator.format( "Geben Sie bitte ein Vielfaches von {0} ein." ), + maxWords: $.validator.format( "Geben Sie bitte {0} Wörter oder weniger ein." ), + minWords: $.validator.format( "Geben Sie bitte mindestens {0} Wörter ein." ), + rangeWords: $.validator.format( "Geben Sie bitte zwischen {0} und {1} Wörtern ein." ), + accept: "Geben Sie bitte einen Wert mit einem gültigen MIME-Typ ein.", + alphanumeric: "Geben Sie bitte nur Buchstaben (keine Umlaute), Zahlen oder Unterstriche ein.", + bankaccountNL: "Geben Sie bitte eine gültige Kontonummer ein.", + bankorgiroaccountNL: "Geben Sie bitte eine gültige Bank- oder Girokontonummer ein.", + bic: "Geben Sie bitte einen gültigen BIC-Code ein.", + cifES: "Geben Sie bitte eine gültige CIF-Nummer ein.", + cpfBR: "Geben Sie bitte eine gültige CPF-Nummer ein.", + creditcardtypes: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein.", + currency: "Geben Sie bitte eine gültige Währung ein.", + extension: "Geben Sie bitte einen Wert mit einer gültigen Erweiterung ein.", + giroaccountNL: "Geben Sie bitte eine gültige Girokontonummer ein.", + iban: "Geben Sie bitte eine gültige IBAN ein.", + integer: "Geben Sie bitte eine positive oder negative Nicht-Dezimalzahl ein.", + ipv4: "Geben Sie bitte eine gültige IPv4-Adresse ein.", + ipv6: "Geben Sie bitte eine gültige IPv6-Adresse ein.", + lettersonly: "Geben Sie bitte nur Buchstaben ein.", + letterswithbasicpunc: "Geben Sie bitte nur Buchstaben oder Interpunktion ein.", + mobileNL: "Geben Sie bitte eine gültige Handynummer ein.", + mobileUK: "Geben Sie bitte eine gültige Handynummer ein.", + netmask: "Geben Sie bitte eine gültige Netzmaske ein.", + nieES: "Geben Sie bitte eine gültige NIE-Nummer ein.", + nifES: "Geben Sie bitte eine gültige NIF-Nummer ein.", + nipPL: "Geben Sie bitte eine gültige NIP-Nummer ein.", + notEqualTo: "Geben Sie bitte einen anderen Wert ein. Die Werte dürfen nicht gleich sein.", + nowhitespace: "Kein Leerzeichen bitte.", + pattern: "Ungültiges Format.", + phoneNL: "Geben Sie bitte eine gültige Telefonnummer ein.", + phonesUK: "Geben Sie bitte eine gültige britische Telefonnummer ein.", + phoneUK: "Geben Sie bitte eine gültige Telefonnummer ein.", + phoneUS: "Geben Sie bitte eine gültige Telefonnummer ein.", + postalcodeBR: "Geben Sie bitte eine gültige brasilianische Postleitzahl ein.", + postalCodeCA: "Geben Sie bitte eine gültige kanadische Postleitzahl ein.", + postalcodeIT: "Geben Sie bitte eine gültige italienische Postleitzahl ein.", + postalcodeNL: "Geben Sie bitte eine gültige niederländische Postleitzahl ein.", + postcodeUK: "Geben Sie bitte eine gültige britische Postleitzahl ein.", + require_from_group: $.validator.format( "Füllen Sie bitte mindestens {0} dieser Felder aus." ), + skip_or_fill_minimum: $.validator.format( "Überspringen Sie bitte diese Felder oder füllen Sie mindestens {0} von ihnen aus." ), + stateUS: "Geben Sie bitte einen gültigen US-Bundesstaat ein.", + strippedminlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ), + time: "Geben Sie bitte eine gültige Uhrzeit zwischen 00:00 und 23:59 ein.", + time12h: "Geben Sie bitte eine gültige Uhrzeit im 12-Stunden-Format ein.", + vinUS: "Die angegebene Fahrzeugidentifikationsnummer (VIN) ist ungültig.", + zipcodeUS: "Die angegebene US-Postleitzahl ist ungültig.", + ziprange: "Ihre Postleitzahl muss im Bereich 902xx-xxxx bis 905xx-xxxx liegen." +} ); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/es.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_es.js similarity index 56% rename from app/assets/javascripts/camaleon_cms/admin/jquery_validate/es.js rename to app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_es.js index 3daf81c60..b981ce5dd 100644 --- a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/es.js +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_es.js @@ -2,7 +2,7 @@ * Translated default messages for the jQuery validation plugin. * Locale: ES (Spanish; Español) */ -$.extend($.validator.messages, { +$.extend( $.validator.messages, { required: "Este campo es obligatorio.", remote: "Por favor, rellena este campo.", email: "Por favor, escribe una dirección de correo válida.", @@ -14,14 +14,13 @@ $.extend($.validator.messages, { creditcard: "Por favor, escribe un número de tarjeta válido.", equalTo: "Por favor, escribe el mismo valor de nuevo.", extension: "Por favor, escribe un valor con una extensión aceptada.", - maxlength: $.validator.format("Por favor, no escribas más de {0} caracteres."), - minlength: $.validator.format("Por favor, no escribas menos de {0} caracteres."), - rangelength: $.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."), - range: $.validator.format("Por favor, escribe un valor entre {0} y {1}."), - max: $.validator.format("Por favor, escribe un valor menor o igual a {0}."), - min: $.validator.format("Por favor, escribe un valor mayor o igual a {0}."), + maxlength: $.validator.format( "Por favor, no escribas más de {0} caracteres." ), + minlength: $.validator.format( "Por favor, no escribas menos de {0} caracteres." ), + rangelength: $.validator.format( "Por favor, escribe un valor entre {0} y {1} caracteres." ), + range: $.validator.format( "Por favor, escribe un valor entre {0} y {1}." ), + max: $.validator.format( "Por favor, escribe un valor menor o igual a {0}." ), + min: $.validator.format( "Por favor, escribe un valor mayor o igual a {0}." ), nifES: "Por favor, escribe un NIF válido.", nieES: "Por favor, escribe un NIE válido.", - cifES: "Por favor, escribe un CIF válido.", - file_format: "Formato de archivo no permitido." -}); \ No newline at end of file + cifES: "Por favor, escribe un CIF válido." +} ); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/fr.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_fr.js similarity index 87% rename from app/assets/javascripts/camaleon_cms/admin/jquery_validate/fr.js rename to app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_fr.js index 65775f05e..dc23300ad 100644 --- a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/fr.js +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_fr.js @@ -13,6 +13,7 @@ $.extend( $.validator.messages, { digits: "Veuillez fournir seulement des chiffres.", creditcard: "Veuillez fournir un numéro de carte de crédit valide.", equalTo: "Veuillez fournir encore la même valeur.", + notEqualTo: "Veuillez fournir une valeur différente, les valeurs ne doivent pas être identiques.", extension: "Veuillez fournir une valeur avec une extension valide.", maxlength: $.validator.format( "Veuillez fournir au plus {0} caractères." ), minlength: $.validator.format( "Veuillez fournir au moins {0} caractères." ), @@ -20,6 +21,7 @@ $.extend( $.validator.messages, { range: $.validator.format( "Veuillez fournir une valeur entre {0} et {1}." ), max: $.validator.format( "Veuillez fournir une valeur inférieure ou égale à {0}." ), min: $.validator.format( "Veuillez fournir une valeur supérieure ou égale à {0}." ), + step: $.validator.format( "Veuillez fournir une valeur multiple de {0}." ), maxWords: $.validator.format( "Veuillez fournir au plus {0} mots." ), minWords: $.validator.format( "Veuillez fournir au moins {0} mots." ), rangeWords: $.validator.format( "Veuillez fournir entre {0} et {1} mots." ), @@ -39,11 +41,13 @@ $.extend( $.validator.messages, { email2: "Veuillez fournir une adresse électronique valide.", url2: "Veuillez fournir une adresse URL valide.", creditcardtypes: "Veuillez fournir un numéro de carte de crédit valide.", + currency: "Veuillez fournir une monnaie valide.", ipv4: "Veuillez fournir une adresse IP v4 valide.", ipv6: "Veuillez fournir une adresse IP v6 valide.", - require_from_group: "Veuillez fournir au moins {0} de ces champs.", + require_from_group: $.validator.format( "Veuillez fournir au moins {0} de ces champs." ), nifES: "Veuillez fournir un numéro NIF valide.", nieES: "Veuillez fournir un numéro NIE valide.", cifES: "Veuillez fournir un numéro CIF valide.", - postalCodeCA: "Veuillez fournir un code postal valide." -} ); \ No newline at end of file + postalCodeCA: "Veuillez fournir un code postal valide.", + pattern: "Format non valide." +} ); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_it.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_it.js new file mode 100644 index 000000000..10c5875f5 --- /dev/null +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_it.js @@ -0,0 +1,27 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: IT (Italian; Italiano) + */ +$.extend( $.validator.messages, { + required: "Campo obbligatorio.", + remote: "Controlla questo campo.", + email: "Inserisci un indirizzo email valido.", + url: "Inserisci un indirizzo web valido.", + date: "Inserisci una data valida.", + dateISO: "Inserisci una data valida (ISO).", + number: "Inserisci un numero valido.", + digits: "Inserisci solo numeri.", + creditcard: "Inserisci un numero di carta di credito valido.", + equalTo: "Il valore non corrisponde.", + extension: "Inserisci un valore con un'estensione valida.", + maxlength: $.validator.format( "Non inserire più di {0} caratteri." ), + minlength: $.validator.format( "Inserisci almeno {0} caratteri." ), + rangelength: $.validator.format( "Inserisci un valore compreso tra {0} e {1} caratteri." ), + range: $.validator.format( "Inserisci un valore compreso tra {0} e {1}." ), + max: $.validator.format( "Inserisci un valore minore o uguale a {0}." ), + min: $.validator.format( "Inserisci un valore maggiore o uguale a {0}." ), + nifES: "Inserisci un NIF valido.", + nieES: "Inserisci un NIE valido.", + cifES: "Inserisci un CIF valido.", + currency: "Inserisci una valuta valida." +} ); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/nl.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_nl.js similarity index 96% rename from app/assets/javascripts/camaleon_cms/admin/jquery_validate/nl.js rename to app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_nl.js index eddd98a53..fffbf1806 100644 --- a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/nl.js +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_nl.js @@ -20,6 +20,7 @@ $.extend( $.validator.messages, { range: $.validator.format( "Vul hier een waarde in van minimaal {0} en maximaal {1}." ), max: $.validator.format( "Vul hier een waarde in kleiner dan of gelijk aan {0}." ), min: $.validator.format( "Vul hier een waarde in groter dan of gelijk aan {0}." ), + step: $.validator.format( "Vul hier een veelvoud van {0} in." ), // For validations in additional-methods.js iban: "Vul hier een geldig IBAN in.", diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/pt-BR.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_pt-BR.js similarity index 74% rename from app/assets/javascripts/camaleon_cms/admin/jquery_validate/pt-BR.js rename to app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_pt-BR.js index 32459b646..d85d6b79a 100644 --- a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/pt-BR.js +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_pt-BR.js @@ -4,8 +4,9 @@ * Region: BR (Brazil) */ $.extend( $.validator.messages, { - //Core - required: "Este campo é requerido.", + + // Core + required: "Este campo é obrigatório.", remote: "Por favor, corrija este campo.", email: "Por favor, forneça um endereço de email válido.", url: "Por favor, forneça uma URL válida.", @@ -21,6 +22,7 @@ $.extend( $.validator.messages, { range: $.validator.format( "Por favor, forneça um valor entre {0} e {1}." ), max: $.validator.format( "Por favor, forneça um valor menor ou igual a {0}." ), min: $.validator.format( "Por favor, forneça um valor maior ou igual a {0}." ), + step: $.validator.format( "Por favor, forneça um valor múltiplo de {0}." ), // Metodos Adicionais maxWords: $.validator.format( "Por favor, forneça com {0} palavras ou menos." ), @@ -50,25 +52,28 @@ $.extend( $.validator.messages, { nieES: "Por favor, forneça um NIE válido.", nifES: "Por favor, forneça um NIF válido.", nowhitespace: "Por favor, não utilize espaços em branco.", - pattern: "O formato fornenecido é inválido.", - phoneNL: "Por favor, forneceça um número de telefone válido.", - phoneUK: "Por favor, forneceça um número de telefone válido.", - phoneUS: "Por favor, forneceça um número de telefone válido.", - phonesUK: "Por favor, forneceça um número de telefone válido.", - postalCodeCA: "Por favor, forneceça um número de código postal válido.", - postalcodeIT: "Por favor, forneceça um número de código postal válido.", - postalcodeNL: "Por favor, forneceça um número de código postal válido.", - postcodeUK: "Por favor, forneceça um número de código postal válido.", + pattern: "O formato fornecido é inválido.", + phoneNL: "Por favor, forneça um número de telefone válido.", + phoneUK: "Por favor, forneça um número de telefone válido.", + phoneUS: "Por favor, forneça um número de telefone válido.", + phonesUK: "Por favor, forneça um número de telefone válido.", + postalCodeCA: "Por favor, forneça um número de código postal válido.", + postalcodeIT: "Por favor, forneça um número de código postal válido.", + postalcodeNL: "Por favor, forneça um número de código postal válido.", + postcodeUK: "Por favor, forneça um número de código postal válido.", postalcodeBR: "Por favor, forneça um CEP válido.", require_from_group: $.validator.format( "Por favor, forneça pelo menos {0} destes campos." ), skip_or_fill_minimum: $.validator.format( "Por favor, optar entre ignorar esses campos ou preencher pelo menos {0} deles." ), stateUS: "Por favor, forneça um estado válido.", strippedminlength: $.validator.format( "Por favor, forneça pelo menos {0} caracteres." ), - time: "Por favor, forneça um horário válido, no intervado de 00:00 e 23:59.", - time12h: "Por favor, forneça um horário válido, no intervado de 01:00 e 12:59 am/pm.", - url2: "Por favor, forneceça uma URL válida.", - vinUS: "O número de identificação de veículo informada (VIN) é inválido.", - zipcodeUS: "Por favor, forneceça um código postal americano válido.", - ziprange: "O código postal deve estar entre 902xx-xxxx e 905xx-xxxx", - cpfBR: "Por favor, forneça um CPF válido." -} ); \ No newline at end of file + time: "Por favor, forneça um horário válido, no intervado de 00:00 a 23:59.", + time12h: "Por favor, forneça um horário válido, no intervado de 01:00 a 12:59 am/pm.", + url2: "Por favor, forneça uma URL válida.", + vinUS: "O número de identificação de veículo informado (VIN) é inválido.", + zipcodeUS: "Por favor, forneça um código postal americano válido.", + ziprange: "O código postal deve estar entre 902xx-xxxx e 905xx-xxxx.", + cpfBR: "Por favor, forneça um CPF válido.", + nisBR: "Por favor, forneça um NIS/PIS válido.", + cnhBR: "Por favor, forneça um CNH válido.", + cnpjBR: "Por favor, forneça um CNPJ válido." +} ); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/ru.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_ru.js similarity index 90% rename from app/assets/javascripts/camaleon_cms/admin/jquery_validate/ru.js rename to app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_ru.js index 1ccdd31b0..04c6429bd 100644 --- a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/ru.js +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_ru.js @@ -1,3 +1,7 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: RU (Russian; русский язык) + */ $.extend( $.validator.messages, { required: "Это поле необходимо заполнить.", remote: "Пожалуйста, введите правильное значение.", @@ -14,6 +18,6 @@ $.extend( $.validator.messages, { minlength: $.validator.format( "Пожалуйста, введите не меньше {0} символов." ), rangelength: $.validator.format( "Пожалуйста, введите значение длиной от {0} до {1} символов." ), range: $.validator.format( "Пожалуйста, введите число от {0} до {1}." ), - max: $.validator.format( "Пожалуйста, введите число, меньшее или равное {0}." ), + max: $.validator.format( "Пожалуйста, введите число, меньшее или равное {0}." ), min: $.validator.format( "Пожалуйста, введите число, большее или равное {0}." ) -} ); \ No newline at end of file +} ); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/uk.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_uk.js similarity index 100% rename from app/assets/javascripts/camaleon_cms/admin/jquery_validate/uk.js rename to app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_uk.js diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/zh-CN.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_zh-CN.js similarity index 51% rename from app/assets/javascripts/camaleon_cms/admin/jquery_validate/zh-CN.js rename to app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_zh-CN.js index 7ab619ff2..3b4163cb2 100644 --- a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/zh-CN.js +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_zh-CN.js @@ -2,7 +2,7 @@ * Translated default messages for the jQuery validation plugin. * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語) */ -$.extend($.validator.messages, { +$.extend( $.validator.messages, { required: "这是必填字段", remote: "请修正此字段", email: "请输入有效的电子邮件地址", @@ -14,10 +14,11 @@ $.extend($.validator.messages, { creditcard: "请输入有效的信用卡号码", equalTo: "你的输入不相同", extension: "请输入有效的后缀", - maxlength: $.validator.format("最多可以输入 {0} 个字符"), - minlength: $.validator.format("最少要输入 {0} 个字符"), - rangelength: $.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"), - range: $.validator.format("请输入范围在 {0} 到 {1} 之间的数值"), - max: $.validator.format("请输入不大于 {0} 的数值"), - min: $.validator.format("请输入不小于 {0} 的数值") -}); + maxlength: $.validator.format( "最多可以输入 {0} 个字符" ), + minlength: $.validator.format( "最少要输入 {0} 个字符" ), + rangelength: $.validator.format( "请输入长度在 {0} 到 {1} 之间的字符串" ), + range: $.validator.format( "请输入范围在 {0} 到 {1} 之间的数值" ), + step: $.validator.format( "请输入 {0} 的整数倍值" ), + max: $.validator.format( "请输入不大于 {0} 的数值" ), + min: $.validator.format( "请输入不小于 {0} 的数值" ) +} ); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_de.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_de.js new file mode 100644 index 000000000..65d8191c5 --- /dev/null +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_de.js @@ -0,0 +1,12 @@ +/* + * Localized default methods for the jQuery validation plugin. + * Locale: DE + */ +$.extend( $.validator.methods, { + date: function( value, element ) { + return this.optional( element ) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test( value ); + }, + number: function( value, element ) { + return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value ); + } +} ); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_nl.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_nl.js new file mode 100644 index 000000000..769170696 --- /dev/null +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_nl.js @@ -0,0 +1,12 @@ +/* + * Localized default methods for the jQuery validation plugin. + * Locale: NL + */ +$.extend( $.validator.methods, { + date: function( value, element ) { + return this.optional( element ) || /^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test( value ); + }, + number: function( value, element ) { + return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value ); + } +} ); diff --git a/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_pt.js b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_pt.js new file mode 100644 index 000000000..0e68554a3 --- /dev/null +++ b/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_pt.js @@ -0,0 +1,9 @@ +/* + * Localized default methods for the jQuery validation plugin. + * Locale: PT_BR + */ +$.extend( $.validator.methods, { + date: function( value, element ) { + return this.optional( element ) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test( value ); + } +} ); diff --git a/app/views/layouts/camaleon_cms/admin.html.erb b/app/views/layouts/camaleon_cms/admin.html.erb index ff8b69c83..05196c4d0 100644 --- a/app/views/layouts/camaleon_cms/admin.html.erb +++ b/app/views/layouts/camaleon_cms/admin.html.erb @@ -18,7 +18,13 @@ <%= javascript_include_tag "camaleon_cms/admin/admin-manifest" %> - <%= javascript_include_tag "camaleon_cms/admin/jquery_validate/#{current_locale}.js" if current_locale != 'en' %> + <%= javascript_include_tag "camaleon_cms/admin/jquery_validate/messages_#{current_locale}.js" if current_locale != 'en' %> + + <% jquery_validate_localized_methods = "camaleon_cms/admin/jquery_validate/methods_#{current_locale}.js"%> + <% jquery_validate_localized_methods_exist = + File.file?(Rails.root.join('app', 'assets', 'javascripts', jquery_validate_localized_methods))%> + <%= javascript_include_tag jquery_validate_localized_methods if jquery_validate_localized_methods_exist %> + <%= javascript_include_tag "camaleon_cms/admin/momentjs/#{current_locale}.js" if current_locale != 'en' %> <%= raw the_head({}, false) %> From f8e46e43f500fad8b9b519f2396e201dd8086d2d Mon Sep 17 00:00:00 2001 From: texpert Date: Fri, 30 Aug 2024 18:34:08 +0300 Subject: [PATCH 2/2] Add changelog entries [skip ci] --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68f83e89d..9234c0281 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,11 @@ ## Unreleased - Remove unused underscore.js +- Bump IntroJS to 7.2.0 +- Upgrade jquery-validate to 1.21.0 + - Add messages for Arabic language + - Add `methods_ln.js` files with regexps for DE, NL, and PT languages + - Modify admin layout view to load the `methods_ln.js` file with a `javascript_include_tag` if the file exists ## [2.8.2](https://github.com/owen2345/camaleon-cms/tree/2.8.2) (2024-08-25)