Checkbox.min.js 3.3 KB

1
  1. MWF.xDesktop.requireApp("process.Xform","$Input",null,false);MWF.xApplication.process.Xform.Checkbox=MWF.APPCheckbox=new Class({Implements:[Events],Extends:MWF.APP$Input,loadDescription:function(){},_loadNode:function(){if(this.readonly){this._loadNodeRead()}else{this._loadNodeEdit()}},_loadNodeRead:function(){this.node.empty();var e=this.getOptions();var t=this.getValue();if(t){var i=[];e.each(function(e){var s=e.split("|");var n=s[0];var o=s[1]||n;if(t.indexOf(o)!=-1){i.push(n)}});this.node.set("text",i.join(", "))}},_loadNodeEdit:function(){var e=new Element("div");e.set(this.json.properties);e.inject(this.node,"after");this.node.destroy();this.node=e;this.node.set({id:this.json.id,MWFType:this.json.type,styles:{display:"inline"}});this.setOptions()},_loadEvents:function(){Object.each(this.json.events,function(e,t){if(e.code){if(this.options.moduleEvents.indexOf(t)!=-1){this.addEvent(t,function(t){return this.form.Macro.fire(e.code,this,t)}.bind(this))}else{}}}.bind(this))},resetOption:function(){this.node.empty();this.setOptions()},getOptions:function(){if(this.json.itemType=="values"){return this.json.itemValues}else{return this.form.Macro.exec(this.json.itemScript.code,this)}},setOptions:function(){var e=this.getOptions();if(!e)e=[];var t=(new MWF.widget.UUID).toString();e.each(function(e){var i=e.split("|");var s=i[0];var n=i[1]||s;var o=new Element("input",{type:"checkbox",name:t+this.json.id,value:n,showText:s,styles:this.json.buttonStyles}).inject(this.node);o.appendText(s,"after");o.addEvent("click",function(){this.validationMode();if(this.validation())this._setBusinessData(this.getInputData("change"))}.bind(this));Object.each(this.json.events,function(e,t){if(e.code){if(this.options.moduleEvents.indexOf(t)!=-1){}else{o.addEvent(t,function(t){return this.form.Macro.fire(e.code,this,t)}.bind(this))}}}.bind(this))}.bind(this))},_setValue:function(e){this._setBusinessData(e);var t=this.node.getElements("input");for(var i=0;i<t.length;i++){var s=t[i];s.checked=e.indexOf(s.value)!=-1}},getTextData:function(){var e=this.node.getElements("input");var t=[];var i=[];if(e.length){e.each(function(e){if(e.checked){var s=e.get("value");var n=e.get("showText");t.push(s||"");i.push(n||s||"")}})}if(!t.length)t=[""];if(!i.length)i=[""];return{value:t,text:i}},getInputData:function(){var e=this.node.getElements("input");var t=[];if(e.length){e.each(function(e){if(e.checked){var i=e.get("value");if(i)t.push(i||"")}})}return t.length?t:null},resetData:function(){this.setData(this.getValue())},setData:function(e){this._setBusinessData(e);var t=this.node.getElements("input");if(t.length){t.each(function(t){if(typeOf(e)=="array"){if(e.indexOf(t.get("value"))!=-1){t.set("checked",true)}else{t.set("checked",false)}}else{if(e==t.get("value")){t.set("checked",true)}else{t.set("checked",false)}}})}},notValidationMode:function(e){if(!this.isNotValidationMode){this.isNotValidationMode=true;this.node.store("background",this.node.getStyles("background"));this.node.setStyle("background","#ffdcdc");this.errNode=this.createErrorNode(e);if(this.iconNode){this.errNode.inject(this.iconNode,"after")}else{this.errNode.inject(this.node,"after")}this.showNotValidationMode(this.node)}},validationMode:function(){if(this.isNotValidationMode){this.isNotValidationMode=false;this.node.setStyles(this.node.retrieve("background"));if(this.errNode){this.errNode.destroy();this.errNode=null}}}});