Radio.min.js 3.2 KB

1
  1. MWF.xDesktop.requireApp("process.Xform","$Input",null,false);MWF.xApplication.process.Xform.Radio=MWF.APPRadio=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 t=this.getOptions();var e=this.getValue();if(e){var i="";for(var s=0;s<t.length;s++){var n=t[s];var o=n.split("|");var a=o[0];var d=o[1]||a;if(e.indexOf(d)!=-1){i=a;break}}this.node.set("text",i)}},_loadNodeEdit:function(){var t=new Element("div");t.set(this.json.properties);t.inject(this.node,"after");this.node.destroy();this.node=t;this.node.set({id:this.json.id,MWFType:this.json.type,styles:{display:"inline"}});this.setOptions()},_loadEvents:function(){Object.each(this.json.events,function(t,e){if(t.code){if(this.options.moduleEvents.indexOf(e)!=-1){this.addEvent(e,function(e){return this.form.Macro.fire(t.code,this,e)}.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)}return[]},setOptions:function(){var t=this.getOptions();if(!t)t=[];var e=(new MWF.widget.UUID).toString();t.each(function(t){var i=t.split("|");var s=i[0];var n=i[1]||s;var o=new Element("input",{type:"radio",name:e+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(t,e){if(t.code){if(this.options.moduleEvents.indexOf(e)!=-1){}else{o.addEvent(e,function(e){return this.form.Macro.fire(t.code,this,e)}.bind(this))}}}.bind(this))}.bind(this))},_setValue:function(t){this._setBusinessData(t);var e=this.node.getElements("input");for(var i=0;i<e.length;i++){var s=e[i];if(s.value==t){s.checked=true;break}}},getTextData:function(){var t=this.node.getElements("input");var e="";var i="";if(t.length){for(var s=0;s<t.length;s++){var n=t[s];if(n.checked){e=n.get("value");i=n.get("showText");break}}}return{value:[e]||"",text:[i||e||""]}},getInputData:function(){var t=this.node.getElements("input");var e="";if(t.length){for(var i=0;i<t.length;i++){var s=t[i];if(s.checked){e=s.get("value");break}}}return e},resetData:function(){this.setData(this.getValue())},setData:function(t){this._setBusinessData(t);var e=this.node.getElements("input");if(e.length){for(var i=0;i<e.length;i++){if(t==e[i].get("value")){e[i].set("checked",true)}else{e[i].set("checked",false)}}}},notValidationMode:function(t){if(!this.isNotValidationMode){this.isNotValidationMode=true;this.node.store("background",this.node.getStyles("background"));this.node.setStyle("background","#ffdcdc");this.errNode=this.createErrorNode(t);if(this.iconNode){this.errNode.inject(this.iconNode,"after")}else{this.errNode.inject(this.node,"after")}this.showNotValidationMode(this.node)}},validationMode:function(t,e){if(!this.validationConfig(t,e))return false;if(this.isNotValidationMode){this.isNotValidationMode=false;this.node.setStyles(this.node.retrieve("background"));if(this.errNode){this.errNode.destroy();this.errNode=null}}}});