Advertisement
ll6068

Alfresco.forms=Alfresco.forms||{};Alfresco.forms.validation=

Oct 10th, 2017
855
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Alfresco.forms=Alfresco.forms||{};Alfresco.forms.validation=Alfresco.forms.validation||{};(function(){var d=YAHOO.util.Dom,b=YAHOO.util.Event,a=YAHOO.util.Selector,c=YAHOO.util.KeyListener;Alfresco.forms.Form=function(e){this.formId=e;this.showSubmitStateDynamically=false;this.reusable=true;this.submitAsJSON=false;this.submitElements=[];this.validations=[];this.tooltips={};this._valid=null;this._fieldEvents={};this._visitedFields={};this.ajaxSubmit=false;this.ajaxSubmitMethod="POST";this.ajaxNoReloadOnAuthFailure=null;this.errorContainer="tooltip";this.showMultipleErrors=true;YAHOO.Bubbling.on("showPanel",this.hideErrorContainer,this);YAHOO.Bubbling.on("hidePanel",this.hideErrorContainer,this);YAHOO.Bubbling.on("showOverlay",this.hideErrorContainer,this);YAHOO.Bubbling.on("hideOverlay",this.hideErrorContainer,this);return this};YAHOO.lang.augmentObject(Alfresco.forms.Form,{NOTIFICATION_LEVEL_NONE:1,NOTIFICATION_LEVEL_FIELD:2,NOTIFICATION_LEVEL_CONTAINER:3});Alfresco.forms.Form.prototype={formId:null,submitElements:null,showSubmitStateDynamically:null,reusable:false,ajaxSubmit:null,errorContainer:null,showMultipleErrors:false,doBeforeFormSubmit:{fn:function(e,f){},obj:null,scope:this},doBeforeAjaxRequest:{fn:function(e,f){return true},obj:null,scope:this},ajaxSubmitHandlers:null,ajaxSubmitMethod:null,ajaxNoReloadOnAuthFailure:null,submitAsJSON:null,validations:null,tooltips:null,_fieldEvents:{},_FIELD_EVENT_UNDEFINED:undefined,_FIELD_EVENT_LISTEN:1,_FIELD_EVENT_VALIDATE:2,_VALIDATION_MSG_ATTR:"alf-validation-msg",_visitedFields:null,_valid:null,init:function(){var i=d.get(this.formId);if(i!==null){if(i.getAttribute("forms-runtime")!="listening"){b.addListener(i,"submit",this._submitInvoked,this,true);i.setAttribute("forms-runtime","listening");if(this.ajaxSubmit){i.setAttribute("onsubmit","return false;")}}if(i.getAttribute("enctype")&&i.getAttribute("enctype")=="application/json"){this.ajaxSubmit=true;this.submitAsJSON=true}if(this.submitElements&&this.submitElements.length==0){var g=a.query("#"+this.formId+' > input[type="submit"]');for(var e=0,j=g.length;e<j;e++){var h=g[e];this.submitElements.push(h.id)}}this._runValidations(null,null,Alfresco.forms.Form.NOTIFICATION_LEVEL_FIELD);var f=new c(document,{keys:c.KEY.ESCAPE},{fn:function(l,k){for(var l in this.tooltips){if(this.tooltips.hasOwnProperty(l)){this.tooltips[l].hide()}}},scope:this,correctScope:true});f.enable()}else{this._showInternalError("form with id of '"+this.formId+"' could not be located, ensure the form is created after the form element is available.")}},isValid:function(){return this._valid},setValidateOnSubmit:function(e){},setValidateAllOnSubmit:function(e){},setSubmitElements:function(e){if(!YAHOO.lang.isArray(e)){this.submitElements[0]=e}else{this.submitElements=e}},setErrorContainer:function(e){this.errorContainer=e},setShowMultipleErrors:function(e){this.showMultipleErrors=e},setRepeatable:function(f,e){alert("not implemented yet")},setShowSubmitStateDynamically:function(e){this.showSubmitStateDynamically=e},setAsReusable:function(e){this.reusable=e},setAJAXSubmit:function(f,e){this.ajaxSubmit=f;this.ajaxSubmitHandlers=e},setSubmitAsJSON:function(e){this.submitAsJSON=e},setAjaxSubmitMethod:function(e){this.ajaxSubmitMethod=e},setAjaxNoReloadOnAuthFailure:function(e){this.ajaxNoReloadOnAuthFailure=e},addValidation:function(i,m,k,j,n,e){var l=d.get(i);if(l==null){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Ignoring validation for field with id of '"+i+"' as it could not be located.")}return}else{if(!l.id){Alfresco.util.generateDomId(l,"form-field-")}}if(m===undefined||m===null){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Ignoring validation for field with id of '"+i+"' as a validationHandler was not provided.")}return}if(n===undefined){n=null}var f={fieldId:l.id,args:k,handler:m,message:n,originalTitle:l.getAttribute("title")||"",event:j,config:e};this.validations.push(f);if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Added submit validation for field: "+i+", using handler: "+(m.name||YAHOO.lang.dump(m))+", args: "+YAHOO.lang.dump(k))}if(j&&j.length>0){if(this._fieldEvents[l.id+":blur"]==this._FIELD_EVENT_UNDEFINED){b.addListener(l,"blur",this._validationEventFired,l.id,this);this._fieldEvents[l.id+":blur"]=this._FIELD_EVENT_LISTEN}if(this._fieldEvents[l.id+":"+j]==this._FIELD_EVENT_UNDEFINED){if(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<11&&j=="propertychange"){var h=this,g=l.id;l.attachEvent("onpropertychange",function(o){h._validationEventFired(o,g)})}else{b.addListener(l,j,this._validationEventFired,l.id,this)}}if(this._fieldEvents[l.id+":"+j]!=this._FIELD_EVENT_VALIDATE){this._fieldEvents[l.id+":"+j]=this._FIELD_EVENT_VALIDATE}if(this._fieldEvents[l.id+":focus"]==this._FIELD_EVENT_UNDEFINED){b.addListener(l,"focus",this._validationEventFired,l.id,this);this._fieldEvents[l.id+":focus"]=this._FIELD_EVENT_LISTEN}if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Added field validation for field: "+i+", using handler: "+(m.name||YAHOO.lang.dump(m))+", args: "+YAHOO.lang.dump(k)+", on event: "+j)}}},addError:function(f,e){},addSubmitElement:function(e){if(e!==null){this.submitElements.push(e);if(this.showSubmitStateDynamically){this.validate()}}},getFieldLabel:function(g){var h=null;var f=a.query("label");if(f.length>0){for(var e=0,j=f.length;e<j;e++){var i=f[e];if((i.htmlFor==g)||(i.htmlFor==g+"-cntrl")){h=i.firstChild.nodeValue}}}if(h==null){h=g}return h},getFieldsByType:function(f){var e=a.query(f);return e},getFormData:function(){var e=d.get(this.formId);return this._buildAjaxForSubmit(e)},applyTabFix:function(){if(YAHOO.env.ua.gecko>0){var g=d.get(this.formId);var f=function(l,j){var i=j[1];var k=i.target;if(!k.hasAttribute("tabindex")){b.stopEvent(i);var h=a.query("[tabindex]",g)[0];if(Alfresco.util.isVisible(h)){h.focus()}}};var e=new c(g,{keys:c.KEY.TAB},f,"keyup");e.enable()}},updateSubmitElements:function(){return this.validate(Alfresco.forms.Form.NOTIFICATION_LEVEL_FIELD)},validate:function(e){e=e||Alfresco.forms.Form.NOTIFICATION_LEVEL_FIELD;return this._runValidations({},false,e)},validateField:function(f,e){this._validationEventFired(f,e)},_toggleSubmitElements:function(f){for(var e=0,h=this.submitElements.length;e<h;e++){var g=this.submitElements[e];if(g){if(typeof g=="string"){d.get(g).disabled=!f}else{g.set("disabled",!f)}}}},_validationEventFired:function(g,e){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Event has been fired for field: "+e)}if(g){if(g.type=="blur"){if(!this._isFieldVisited(e)){this._setFieldAsVisited(e);this._runValidations(g,e,Alfresco.forms.Form.NOTIFICATION_LEVEL_CONTAINER)}this._setFieldAsVisited(e);if(this.tooltips[e]){this.hideErrorContainer()}}else{if(g.type=="focus"){if(!this.tooltips[e]){this.tooltips[e]=Alfresco.util.createBalloon(this.getFieldValidationEl(e),{effectType:null,effectDuration:0})}if(YAHOO.util.Dom.hasClass(e,"invalid")){if(this._fieldEvents[e+":focus"]!=this._FIELD_EVENT_VALIDATE){var f=d.get(e).getAttribute(this._VALIDATION_MSG_ATTR);this.tooltips[e].html(f);this.tooltips[e].show()}}}else{if(g.type=="propertychange"&&!Alfresco.util.arrayContains(["value","checked"],g.propertyName)){return}}}}if(!g||(g.keyCode!=9&&g.keyCode!=16&&g.keyCode!=13&&g.keyCode!=27)){if(g&&this._fieldEvents[e+":"+g.type]==this._FIELD_EVENT_VALIDATE){this._runValidations(g,e,Alfresco.forms.Form.NOTIFICATION_LEVEL_CONTAINER)}}},_setCSRFParameter:function(f){var e=f.split("?"),h=Alfresco.util.CSRFPolicy.getParameter()+"="+encodeURIComponent(Alfresco.util.CSRFPolicy.getToken());if(e.length==1){f+="?"+h}else{var k=e[1].split("&"),j=0,i,l="",g=true;for(;j<k.length;j++){i=k[j].split("=");if(i.length>0&&i[0]==Alfresco.util.CSRFPolicy.getParameter()){}else{l+=g?"?":"&";l+=k[j];g=false}}if(j==k.length){l+=g?"?":"&";l+=h}f=e[0]+l}return f},_submitInvoked:function(i){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Submit invoked on formId: ",this.formId)}this._setAllFieldsAsVisited();if(this._runValidations(i,null,Alfresco.forms.Form.NOTIFICATION_LEVEL_CONTAINER)){var h=d.get(this.formId);this.doBeforeFormSubmit.fn.call(this.doBeforeFormSubmit.scope,h,this.doBeforeFormSubmit.obj);YAHOO.Bubbling.fire("formBeforeSubmit",this);if(this.ajaxSubmit){if(typeof i.cancelBubble!=="unknown"&&typeof i.returnValue!=="unknown"){b.stopEvent(i)}var k=h.attributes.action.nodeValue;if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Performing AJAX submission to url: ",k)}if(h.enctype&&h.enctype=="multipart/form-data"){var j=h.ownerDocument;var g=j.createElement("iframe");g.style.display="none";d.generateId(g,"formAjaxSubmit");g.name=g.id;document.body.appendChild(g);window.frames[g.name].name=g.name;if(Alfresco.util.CSRFPolicy.isFilterEnabled()){h.attributes.action.nodeValue=this._setCSRFParameter(k)}h.target=g.name;h.submit();return}else{this._toggleSubmitElements(false)}var e={method:this.ajaxSubmitMethod,url:k};if(this.ajaxSubmitHandlers){this.ajaxSubmitHandlers=this.ajaxSubmitHandlers||{};e.successMessage=this.ajaxSubmitHandlers.successMessage;e.successCallback={fn:function(m,l){if(d.get(this.formId)){this._resetAllVisitedFields();if(this.reusable){if(this.showSubmitStateDynamically){this.updateSubmitElements()}else{this._toggleSubmitElements(true)}}}if(l.fn){l.fn.call(l.scope||this,m,l.obj)}},obj:this.ajaxSubmitHandlers.successCallback||{},scope:this};e.failureMessage=this.ajaxSubmitHandlers.failureMessage;e.failureCallback={fn:function(l,m){if(d.get(this.formId)){this._resetAllVisitedFields();if(this.showSubmitStateDynamically){this.updateSubmitElements()}else{this._toggleSubmitElements(true)}}if(m.fn){m.fn.call(m.scope||this,l,m.obj)}},obj:this.ajaxSubmitHandlers.failureCallback||{},scope:this}}if(this.submitAsJSON){var f=this._buildAjaxForSubmit(h);e.dataObj=f;e.noReloadOnAuthFailure=this.ajaxNoReloadOnAuthFailure;if(this.doBeforeAjaxRequest.fn.call(this.doBeforeAjaxRequest.scope,e,this.doBeforeAjaxRequest.obj)){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Submitting JSON data: ",e.dataObj)}Alfresco.util.Ajax.jsonRequest(e)}else{if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("JSON data request cancelled in doBeforeAjaxRequest()")}}this._toggleSubmitElements(true)}else{if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Submitting data in form: ",h.enctype)}e.dataForm=h;Alfresco.util.Ajax.request(e)}}else{if(h.enctype&&h.enctype=="multipart/form-data"&&Alfresco.util.CSRFPolicy.isFilterEnabled()){h.attributes.action.nodeValue=this._setCSRFParameter(h.attributes.action.nodeValue)}}}else{b.stopEvent(i);if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Submission prevented as validation failed")}this._toggleSubmitElements(true)}},_buildAjaxForSubmit:function(f){if(f!==null){var h={},g=f.elements.length;for(var o=0;o<g;o++){var p=f.elements[o],e=p.name;if(e=="-"||p.disabled||p.type==="button"){continue}if(e==undefined||e==""){e=p.id}var t=(p.type==="textarea")?p.value:YAHOO.lang.trim(p.value);if(e){if((e.length>2)&&(e.substring(e.length-2)=="[]")){e=e.substring(0,e.length-2);if(h[e]===undefined){h[e]=new Array()}h[e].push(t)}else{if(e.indexOf(".")>0){var s=e.split(".");var n=h;var r;for(var m=0,l=s.length-1;m<l;m++){r=s[m];if(n[r]===undefined){n[r]={}}n=n[r]}n[s[m]]=t}else{if(!((p.type==="checkbox"||p.type==="radio")&&!p.checked)){if(p.type=="select-multiple"){for(var m=0,q=p.options.length;m<q;m++){if(p.options[m].selected){if(h[e]==undefined){h[e]=new Array()}h[e].push(p.options[m].value)}}}else{h[e]=t}}}}}}return h}},_isFieldVisited:function(e){return(YAHOO.lang.isBoolean(this._visitedFields)&&this._visitedFields)||(YAHOO.lang.isObject(this._visitedFields)&&this._visitedFields[e])},_setFieldAsVisited:function(e){if(!YAHOO.lang.isBoolean(this._visitedFields)&&YAHOO.lang.isObject(this._visitedFields)){return this._visitedFields[e]=true}},_setAllFieldsAsVisited:function(){this._visitedFields=true},_resetAllVisitedFields:function(){this._visitedFields={}},_getConfig:function(g,h,f){var i=g||{};if(YAHOO.lang.isFunction(g)){i=g()}var e=Alfresco.util.findValueByDotNotation(i,h);return(e!=undefined||e!=null)?e:f},_isMandatoryValidator:function(e){return e.handler==Alfresco.forms.validation.mandatory||(this._getConfig(e.config,"validationType","invalid")=="mandatory")},_runValidations:function(z,y,e){var r=[],H={},C={},s=[],m={},u,q,v,l,F="mandatory",E="invalid",g,h,K,w,I=null;for(var o=0,k=this.validations.length;o<k;o++){K=this.validations[o];g=d.get(K.fieldId);if(g!==null&&!g.disabled){v=null;h=g.getAttribute("id");H[h]=H[h]||[];C[h]=C[h]||[];m[h]=m[h]||[];l=this._isMandatoryValidator(K)&&!this._isFieldVisited(h)?F:E;if(typeof K.message==="object"&&K.message!=null){q=K.message.html||null;v=K.message.text||null}else{q=K.message||null}if(q){if(YAHOO.lang.isFunction(q)){q=q.call(this,K.args)}else{q=YAHOO.lang.substitute(q,K.args)}}else{var J;if(this._isMandatoryValidator(K)){J="Alfresco.forms.validation.mandatory.message"}else{J="Alfresco.forms.validation.invalid.message"}q=Alfresco.util.message(J)}if(v){if(YAHOO.lang.isFunction(v)){v=v.call(this,K.args)}else{v=YAHOO.lang.substitute(v,K.args)}}else{v=q.replace(/<\/?[^>]+(>|$)/g,"")}w=(l==E)&&(z!=null&&z.type!="blur"&&z.type!=K.event&&z.keyCode!=13)&&(y==h);if(!K.handler(g,K.args,null,this,true,q)){var B=d.get(this._getConfig(K.config,"errorField",g));if(!B.id){Alfresco.util.generateDomId(B)}if(B.id!=y&&l==E){H[B.id]=H[B.id]||[];C[B.id]=C[B.id]||[];if(H[B.id].indexOf(q)==-1){H[B.id].push(q)}if(C[B.id].indexOf(v)==-1){C[B.id].push(v)}}if(I==null){I=B.id}if(w){continue}u=YAHOO.lang.trim(this.getFieldLabel(h))||"";if(u.length>0){if(u.indexOf(":")<0){u+=":"}u+=" "}u+=q;if(l==E){r.push({id:h,msg:u});if(H[h].indexOf(q)==-1){H[h].push(q)}if(C[h].indexOf(v)==-1){C[h].push(v)}if(e>=Alfresco.forms.Form.NOTIFICATION_LEVEL_FIELD){YAHOO.util.Dom.removeClass(g,F);if(g==B){YAHOO.util.Dom.addClass(g,E)}else{YAHOO.util.Dom.removeClass(g,E)}if(H[h].length==0){g.setAttribute("title",v);g.setAttribute(this._VALIDATION_MSG_ATTR,q)}else{g.setAttribute("title",C[h][0]);var t="";for(var D=0;D<H[h].length;D++){if(D>0&&!this.showMultipleErrors){break}t+="<div>"+H[h][D]+"</div>"}g.setAttribute(this._VALIDATION_MSG_ATTR,t)}}}else{if(H[h].length==0){if(e>=Alfresco.forms.Form.NOTIFICATION_LEVEL_FIELD){YAHOO.util.Dom.removeClass(g,E);if(g==B){YAHOO.util.Dom.addClass(g,F)}else{YAHOO.util.Dom.removeClass(g,E)}g.setAttribute("title",q)}g.setAttribute(this._VALIDATION_MSG_ATTR,q)}m[h].push(q);s.push({id:h,msg:u})}YAHOO.Bubbling.fire("formValidationError",{msg:u,field:g,type:l})}else{if(w){continue}if(e>=Alfresco.forms.Form.NOTIFICATION_LEVEL_FIELD){if(H[h].length==0){YAHOO.util.Dom.removeClass(g,E)}if(m[h].length==0){YAHOO.util.Dom.removeClass(g,F)}if(H[h].length==0&&m[h].length==0){if(g.getAttribute("title")!=K.originalTitle){g.setAttribute("title",K.originalTitle)}g.setAttribute(this._VALIDATION_MSG_ATTR,"");if(this.tooltips[h]){this.tooltips[h].html("");this.tooltips[h].hide()}}}}}}var G=(document.activeElement&&document.activeElement.id?document.activeElement.id:null);if(e>=Alfresco.forms.Form.NOTIFICATION_LEVEL_CONTAINER){if((z==null||z.type=="submit")&&I&&(!m[G]||m[G].length==0)&&(!H[G]||H[G].length==0)){G=I;var f=this.getFieldValidationEl(d.get(G));if(Alfresco.util.isVisible(f)){if(YAHOO.env.ua.ie>0&&YAHOO.env.ua.ie<9){}else{if(YAHOO.lang.isFunction(f.focus)){f.focus()}}}}if(this.errorContainer!==null&&G&&H[G]){if(this.errorContainer==="tooltip"){if(H[G].length>0){if(!this.tooltips[G]){this.tooltips[G]=Alfresco.util.createBalloon(this.getFieldValidationEl(G),{effectType:null,effectDuration:0})}var p="";for(var A=0;A<H[G].length;A++){if(A>0&&!this.showMultipleErrors){break}p+="<div>"+H[G][A]+"</div>"}this.tooltips[G].html(p);this.tooltips[G].show()}else{if(this.tooltips[G]){this.tooltips[G].html("");this.tooltips[G].hide()}}}else{if(this.errorContainer==="alert"&&r.length>0){var j="";for(var A=0;A<r.length;A++){if(A>0&&!this.showMultipleErrors){break}j+=r[A]+"\n"}alert(j)}else{if(YAHOO.lang.isString(this.errorContainer)){var n=d.get(this.errorContainer);if(n!==null){var p="";for(var A=0;A<r.length;A++){if(A>0&&!this.showMultipleErrors){break}p+='<div><label for="'+r[A].id+'">'+r[A].msg+"</label></div>"}n.style.display="block";n.innerHTML=p}}}}}}this._valid=I==null;if(this.showSubmitStateDynamically){this._toggleSubmitElements(this._valid)}return this._valid},getFieldValidationEl:function(e){var f=d.get(e);if((f.tagName.toLowerCase()=="input"&&f.type=="hidden")||!Alfresco.util.isVisible(f)){return f.parentNode}return f},hideErrorContainer:function(){if(this.errorContainer==="tooltip"){for(var e in this.tooltips){if(this.tooltips.hasOwnProperty(e)){this.tooltips[e].hide()}}}else{if(this.errorContainer==="alert"){}else{if(YAHOO.lang.isString(this.errorContainer)){}}}},_showInternalError:function(f,e){this.addError("Internal Form Error: "+f,e)},reset:function(){this._resetAllVisitedFields();d.get(this.formId).reset();this.validate()}}})();(function(){Alfresco.forms.validation.mandatory=function p(D,B,y,z){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating mandatory state of field '"+D.id+"'")}var u=true;if(D.type&&D.type=="radio"){var w=Dom.get(z.formId),A=w[D.name],v=false;for(var C=0,t=A.length;C<t;C++){if(A[C].checked){v=true;break}}u=v}else{if(D.type&&D.type=="checkbox"){u=D.checked}else{u=YAHOO.lang.trim(D.value).length!==0}}return u};Alfresco.forms.validation.passwordMatch=function g(z,u,y,x){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating password match of field '"+z.id+"' using args: "+YAHOO.lang.dump(u))}if(YAHOO.lang.trim(z.value).length==0){return true}var w=false;var t=YAHOO.lang.merge({el:null},u);if(t.el){var v=YAHOO.util.Dom.get(t.el);if(v.value==z.value){w=true}}return w};Alfresco.forms.validation.passwordContent=function m(B,A,u,w){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating password content of field '"+B.id+"' using args: "+YAHOO.lang.dump(A))}if(YAHOO.lang.trim(B.value).length==0){return true}var G=YAHOO.lang.merge({minUpper:0,minLower:0,minNumeric:0,minSymbols:0},A),F=B.value,E=/\d/g,z=/([!,@,#,$,%,^,&,*,?,_,~])/g,C=(F.match(E)||[]).length,v=(F.match(z)||[]).length,D=0,y=0,t;for(var x=0;x<F.length;x++){t=F.charAt(x);if(t.toUpperCase()!=t.toLowerCase()){if(t.toUpperCase()==t){D++}if(t.toLowerCase()==t){y++}}}return G.minUpper<=D&&G.minLower<=y&&G.minNumeric<=C&&G.minSymbols<=v};Alfresco.forms.validation.length=function d(z,u,y,x){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating length of field '"+z.id+"' using args: "+YAHOO.lang.dump(u))}var w=true;var t=YAHOO.lang.merge({min:-1,max:-1,crop:false,includeWhitespace:true,ignoreEmpty:false},u);if(YAHOO.lang.trim(z.value).length==0&&t.ignoreEmpty){return true}if(t.minLength){t.min=t.minLength}if(t.maxLength){t.max=t.maxLength}var v=t.includeWhitespace?z.value.length:YAHOO.lang.trim(z.value).length;if(t.min!=-1&&v<t.min){w=false}if(t.max!=-1&&v>t.max){w=false;if(t.crop){if(t.includeWhitespace){z.value=YAHOO.lang.trim(z.value)}if(z.value.length>t.max){z.value=z.value.substring(0,t.max)}if(z.type&&z.type=="textarea"){z.scrollTop=z.scrollHeight}w=true}}return w};Alfresco.forms.validation.number=function c(z,u,y,x){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating field '"+z.id+"' is a number")}var A=false;if(u!==null&&u.repeating){A=true}var w=true;if(A){var t=z.value.split(",");for(var v=0;v<t.length;v++){w=(isNaN(t[v])==false);if(!w){break}}}else{w=(isNaN(z.value)==false)}return w};Alfresco.forms.validation.numberRange=function n(B,z,u,v){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating number range of field '"+B.id+"' using args: "+YAHOO.lang.dump(z))}var t=true;var C=B.value.toString();if(C.length>0){if(!Alfresco.forms.validation.number(B,z,null,null,true,null)){t=false}else{var x=-1;var A=-1;var w=false;if(z.min){x=parseInt(z.min)}if(z.minValue){x=parseInt(z.minValue)}if(z.max){A=parseInt(z.max)}if(z.maxValue){A=parseInt(z.maxValue)}if(z!==null&&z.repeating){w=true}var t=true;if(w){var D=C.split(",");for(var y=0;y<D.length;y++){if(x!=-1&&D[y]<x){t=false}if(A!=-1&&D[y]>A){t=false}if(!t){break}}}else{if(x!=-1&&C<x){t=false}if(A!=-1&&C>A){t=false}}}}return t};Alfresco.forms.validation.nodeName=function a(w,t,v,u){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating field '"+w.id+"' is a valid node name")}return Alfresco.forms.validation.name(w,t,v,u)};Alfresco.forms.validation.fileName=function r(w,t,v,u){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating field '"+w.id+"' is a valid file name")}return Alfresco.forms.validation.name(w,t,v,u)};Alfresco.forms.validation.name=function s(w,t,v,u){if(!t){t={}}t.pattern=/([\"\*\\\>\<\?\/\:\|]+)|([\.]?[\.]+$)|(^[ \t]+|[ \t]+$)/;t.match=false;return Alfresco.forms.validation.regexMatch(w,t,v,u)};Alfresco.forms.validation.wikiTitle=function k(y,u,x,w,t,v){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating field '"+y.id+"' is a valid node name")}if(!u){u={}}u.pattern=/([#\\\?\/\|]+)|([\.]?[\.]+$)/;u.match=false;return Alfresco.forms.validation.regexMatch(y,u,x,w,t,v)};Alfresco.forms.validation.nodeRef=function j(w,t,v,u){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating field '"+w.id+"' is a valid noderef")}if(!t){t={}}t.pattern=/^[^\:^ ]+\:\/\/[^\:^ ]+\/[^ ]+$/;return Alfresco.forms.validation.regexMatch(w,t,v,u)};Alfresco.forms.validation.email=function o(z,v,y,x){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating field '"+z.id+"' is a valid email address")}if(!v){v={}}var w=true;if(z.value&&z.value.length>0){var A=z.value.indexOf("<");if(A>=0){A=A+1;var u=z.value.lastIndexOf(">");if(u>A){z.value=z.value.substr(A,(u-A))}}var t=z.value.indexOf('"');if(t==0){v.pattern=/^("[-A-Za-z0-9\xc0-\xff\(\)<>\[\]\\:,;@\".\" *"!#$%&'*+\/=?^_`{}~|]*")+@([\.A-Za-z0-9_-])*[A-Za-z0-9_-]$/}else{v.pattern=/^([-A-Za-z0-9\xc0-\xff!#$%&'*+\/=?^_`{}~|]+\.)*[-A-Za-z0-9\xc0-\xff!#$%&'*+\/=?^_`{}|~_]+@([\.A-Za-z0-9_-])*[A-Za-z0-9_-]$/}v.match=true;w=Alfresco.forms.validation.regexMatch(z,v,y,x)}return w};Alfresco.forms.validation.phone=function h(y,u,x,w,t,v){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating field '"+y.id+"' is a valid phone number")}if(!u){u={}}u.pattern=/^[0-9\(\)\[\]\-\+\*#\\:\/,; ]+$/;u.match=true;return Alfresco.forms.validation.regexMatch(y,u,x,w,t,v)};Alfresco.forms.validation.time=function i(w,t,v,u){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating field '"+w.id+"' is a valid time value")}if(!t){t={}}t.pattern=/^([0-1]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/;t.match=true;return Alfresco.forms.validation.regexMatch(w,t,v,u)};Alfresco.forms.validation.url=function e(y,t,w,v){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating field '"+y.id+"' is a valid URL")}var z=/(ftp|http|https):\/\/[\w\-_]+(\.[\w\-_]+)*([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/,u=true;if(y.value.length>0){var x=new RegExp(z);u=y.value.replace(x,"")===""}return u};Alfresco.forms.validation.regexMatch=function l(y,t,w,v){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating regular expression of field '"+y.id+"' using args: "+YAHOO.lang.dump(t))}var u=true;if(y.value&&y.value.length>0){if(t.match===undefined){t.match=true}var x=new RegExp(t.pattern);u=x.test(y.value);if(!t.match){u=!u}}return u};Alfresco.forms.validation.repoRegexMatch=function b(w,t,v,u){t.pattern=t.expression;t.match=t.requiresMatch;return Alfresco.forms.validation.regexMatch(w,t,v,u)};Alfresco.forms.validation.validDateTime=function f(w,t,v,u){if(Alfresco.logger.isDebugEnabled()){Alfresco.logger.debug("Validating field '"+w.id+"' has a valid date and time")}return !YAHOO.util.Dom.hasClass(w,"invalid")};Alfresco.forms.validation.inList=function q(w,t,v,u){return true}})();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement