| 1 |
- MWF.xDesktop.requireApp("process.Xform","$Module",null,false);MWF.xApplication.process.Xform.ImageClipper=MWF.APPImageClipper=new Class({Implements:[Events],Extends:MWF.APP$Module,initialize:function(e,t,i,n){this.node=$(e);this.node.store("module",this);this.json=t;this.form=i;this.field=true},_loadUserInterface:function(){this.field=true;this.node.empty();var e=this._getBusinessData();if(e){var t=new Element("img",{src:MWF.xDesktop.getImageSrc(e)});if(this.json.clipperType=="size"){var i=this.json.imageWidth;var n=this.json.imageHeight;if(i&&n){t.setStyles({width:i+"px",height:n+"px"})}}t.inject(this.node)}if(this.readonly)return;var o=new Element("div").inject(this.node);var r=new Element("button").inject(o);r.set({text:this.json.name||this.json.id,styles:this.form.css.buttonStyles,MWFType:this.json.type});r.addEvent("click",function(){this.validationMode();var e=this._getBusinessData();this.selectImage(e,function(e){this.setData(e?e.id:"");this.validation()}.bind(this))}.bind(this))},getData:function(e){return this._getBusinessData()||""},setData:function(e){this._setBusinessData(e);var t=this.node.getElements("img");if(t&&t.length)t.destroy();if(!e)return;var t=new Element("img",{src:MWF.xDesktop.getImageSrc(e)}).inject(this.node,"top");if(this.json.clipperType=="size"){var i=this.json.imageWidth;var n=this.json.imageHeight;if(i&&n){t.setStyles({width:i+"px",height:n+"px"})}}},selectImage:function(e,t){var i=this.json.clipperType||"unrestricted";var n=1;var o="";var r=800;if(i=="unrestricted"){n=0}else if(i=="size"){var a=this.json.imageWidth.toInt();var s=this.json.imageHeight.toInt();n=a/s;r=Math.max(a,s);if(!isNaN(a)&&!isNaN(s)){o=MWF.LP.widget.pictureSize.replace(/{width}/g,a).replace(/{height}/g,s)}}else if(i=="ratio"){n=this.json.imageRatio||1;o=MWF.LP.widget.pictureRatio.replace(/{ratio}/g,n)}MWF.xDesktop.requireApp("process.Xform","widget.ImageClipper",function(){this.imageClipper=new MWF.xApplication.process.Xform.widget.ImageClipper(this.form.app,{style:"default",aspectRatio:n,description:o,imageUrl:e?MWF.xDesktop.getImageSrc(e):"",reference:this.form.businessData.work.job,referenceType:"processPlatformJob",resultMaxSize:r,onChange:function(){t({src:this.imageClipper.imageSrc,id:this.imageClipper.imageId})}.bind(this)});this.imageClipper.load()}.bind(this))},createErrorNode:function(e){var t=new Element("div");var i=new Element("div",{styles:{width:"20px",height:"20px",float:"left",background:"url("+"/x_component_process_Xform/$Form/default/icon/error.png) center center no-repeat"}}).inject(t);var n=new Element("div",{styles:{"line-height":"20px","margin-left":"20px",color:"red"},text:e}).inject(t);return t},notValidationMode:function(e){if(!this.isNotValidationMode){this.isNotValidationMode=true;this.node.store("borderStyle",this.node.getStyles("border-left","border-right","border-top","border-bottom"));this.node.setStyle("border","1px solid red");this.errNode=this.createErrorNode(e).inject(this.node,"after");this.showNotValidationMode(this.node)}},showNotValidationMode:function(e){var t=e.getParent("div");if(t){if(t.get("MWFtype")=="tab$Content"){if(t.getParent("div").getStyle("display")=="none"){var i=t.getParent("div").getParent("div");var n=i.getPrevious("div");var o=i.getChildren().indexOf(t.getParent("div"));var r=n.getChildren()[o];r.click();t=n.getParent("div")}}this.showNotValidationMode(t)}},validationMode:function(){if(this.isNotValidationMode){this.isNotValidationMode=false;this.node.setStyles(this.node.retrieve("borderStyle"));if(this.errNode){this.errNode.destroy();this.errNode=null}}},validationConfigItem:function(e,t){var i=t.status=="all"?true:e==t.decision;if(i){var n=this.getData();var o=t.valueType=="value"?n:n.length;switch(t.operateor){case"isnull":if(!o){this.notValidationMode(t.prompt);return false}break;case"notnull":if(o){this.notValidationMode(t.prompt);return false}break;case"gt":if(o>t.value){this.notValidationMode(t.prompt);return false}break;case"lt":if(o<t.value){this.notValidationMode(t.prompt);return false}break;case"equal":if(o==t.value){this.notValidationMode(t.prompt);return false}break;case"neq":if(o!=t.value){this.notValidationMode(t.prompt);return false}break;case"contain":if(o.indexOf(t.value)!=-1){this.notValidationMode(t.prompt);return false}break;case"notcontain":if(o.indexOf(t.value)==-1){this.notValidationMode(t.prompt);return false}break}}return true},validationConfig:function(e,t){if(this.json.validationConfig){if(this.json.validationConfig.length){for(var i=0;i<this.json.validationConfig.length;i++){var n=this.json.validationConfig[i];if(!this.validationConfigItem(e,n))return false}}return true}return true},validation:function(e,t){if(!this.validationConfig(e,t))return false;if(!this.json.validation)return true;if(!this.json.validation.code)return true;var i=this.form.Macro.exec(this.json.validation.code,this);if(!i)i=MWF.xApplication.process.Xform.LP.notValidation;if(i.toString()!="true"){this.notValidationMode(i);return false}return true}});
|