Property.min.js 10 KB

1
  1. MWF.require("MWF.widget.Common",null,false);MWF.require("MWF.widget.JsonTemplate",null,false);MWF.xApplication.process.StatDesigner.Property=MWF.FVProperty=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",path:"/x_component_process_FormDesigner/property/property.html"},initialize:function(t,e,i,n){this.setOptions(n);this.module=t;this.view=t.view;this.data=t.json;this.htmlPath=this.options.path;this.designer=i;this.propertyNode=e},load:function(){if(this.fireEvent("queryLoad")){MWF.getRequestText(this.htmlPath,function(t,e){this.htmlString=t;this.fireEvent("postLoad")}.bind(this))}this.propertyNode.addEvent("keydown",function(t){t.stopPropagation()})},editProperty:function(t){},getHtmlString:function(t){if(!this.htmlString){MWF.getRequestText(this.htmlPath,function(e,i){this.htmlString=e;if(t)t()}.bind(this))}else{if(t)t()}},show:function(){if(!this.propertyContent){this.getHtmlString(function(){if(this.htmlString){this.JsonTemplate=new MWF.widget.JsonTemplate(this.data,this.htmlString);this.propertyContent=new Element("div",{styles:{overflow:"hidden"}}).inject(this.propertyNode);this.propertyContent.set("html",this.JsonTemplate.load());this.setEditNodeEvent();this.setEditNodeStyles(this.propertyContent);this.loadPropertyTab();this.loadPersonInput();this.loadPersonSelectInput();this.loadViewSelect();this.loadScriptArea();this.loadJSONArea();this.module.changeViewSelected()}}.bind(this))}else{this.propertyContent.setStyle("display","block")}},hide:function(){if(this.propertyContent)this.propertyContent.setStyle("display","none")},loadJSONArea:function(){var t=this.propertyContent.getElement(".MWFJSONArea");if(t){this.propertyTab.pages.each(function(e){if(e.contentNode==t.parentElement){e.setOptions({onShow:function(){t.empty();MWF.require("MWF.widget.JsonParse",function(){this.json=new MWF.widget.JsonParse(this.module.json,t,null);this.json.load()}.bind(this))}.bind(this)})}}.bind(this))}},loadPropertyTab:function(){var t=this.propertyContent.getElements(".MWFTab");if(t.length){var e=this.propertyContent.getFirst();var i=new Element("div",{styles:this.view.css.propertyTabNode}).inject(e,"before");MWF.require("MWF.widget.Tab",function(){var e=new MWF.widget.Tab(i,{style:"formPropertyList"});e.load();var n=[];t.each(function(t){var i=e.addTab(t,t.get("title"),false);n.push(i);this.setScrollBar(i.contentNodeArea,"small",null,null)}.bind(this));n[0].showTab();this.propertyTab=e;this.designer.resizeNode()}.bind(this),false)}},setEditNodeEvent:function(){var t=this;var e=this.propertyContent.getElements("input");e.each(function(e){var i=e.get("name");if(i&&i.substr(0,1)!="_"){if(this.module){var n=this.module.json.id;e.set("name",n+i)}if(i){var s=e.get("type").toLowerCase();switch(s){case"radio":e.addEvent("change",function(e){t.setRadioValue(i,this)});e.addEvent("keydown",function(t){t.stopPropagation()});t.setRadioValue(i,e);break;case"checkbox":e.addEvent("change",function(e){t.setCheckboxValue(i,this)});e.addEvent("click",function(e){t.setCheckboxValue(i,this)});e.addEvent("keydown",function(t){t.stopPropagation()});break;default:e.addEvent("change",function(e){t.setValue(i,this.value,this)});e.addEvent("blur",function(e){t.setValue(i,this.value,this)});e.addEvent("keydown",function(e){if(e.code==13){t.setValue(i,this.value,this)}e.stopPropagation()});if(e.hasClass("editTableInputDate")){this.loadCalendar(e)}}}}}.bind(this));var i=this.propertyContent.getElements("select");i.each(function(e){var i=e.get("name");if(i){e.addEvent("change",function(e){t.setSelectValue(i,this)})}});var n=this.propertyContent.getElements("textarea");n.each(function(e){var i=e.get("name");if(i){e.addEvent("change",function(e){t.setValue(i,this.value)});e.addEvent("blur",function(e){t.setValue(i,this.value)});e.addEvent("keydown",function(t){t.stopPropagation()})}}.bind(this))},loadCalendar:function(t){MWF.require("MWF.widget.Calendar",function(){this.calendar=new MWF.widget.Calendar(t,{style:"xform",isTime:false,target:this.module.designer.content,format:"%Y-%m-%d",onComplate:function(){}.bind(this)})}.bind(this))},changeStyle:function(t){this.module.setPropertiesOrStyles(t)},changeData:function(t,e,i){this.module._setEditStyle(t,e,i)},changeJsonDate:function(t,e){if(typeOf(t)!="array")t=[t];var i=this.data;var n=t.length-1;t.each(function(t,e){if(!i[t])i[t]={};if(e<n)i=i[t]}.bind(this));i[t[n]]=e},setRadioValue:function(t,e){debugger;if(e.checked){var i=t.indexOf("*");var n=i==-1?t.split("."):t.substr(i+1,t.length).split(".");var s=e.value;if(s=="false")s=false;if(s=="true")s=true;var a=this.data;for(var o=0;o<n.length;o++){if(!a[n[o]]){a=null;break}else{a=a[n[o]]}}this.changeJsonDate(n,s);this.changeData(t,e,a)}},setCheckboxValue:function(t,e){var i=this.module.json.id;var n=$$("input[name='"+i+t+"']");var s=[];n.each(function(t){if(t.get("checked")){s.push(t.value)}});var a=this.data[t];this.changeJsonDate(t,s);this.changeData(t,e,a)},setSelectValue:function(t,e){var i=e.selectedIndex;var n=e.getElements("option");var s="";if(n[i]){s=n[i].get("value")}var a=this.data[t];this.changeJsonDate(t,s);this.changeData(t,e,a)},setValue:function(t,e,i){var n=t.split(".");var s=this.data;for(var a=0;a<n.length;a++){if(!s[n[a]]){s=null;break}else{s=s[n[a]]}}this.changeJsonDate(n,e);this.changeData(t,i,s)},setEditNodeStyles:function(t){var e=t.getChildren();if(e.length){e.each(function(t){var e=t.get("class");if(e){if(this.view.css[e])t.setStyles(this.view.css[e])}this.setEditNodeStyles(t)}.bind(this))}},loadPersonInput:function(){var t=this.propertyContent.getElements(".MWFPersonIdentity");var e=this.propertyContent.getElements(".MWFPersonUnit");MWF.xDesktop.requireApp("process.ProcessDesigner","widget.PersonSelector",function(){t.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"identity",names:this.data[t.get("name")],onChange:function(e){this.savePersonItem(t,e)}.bind(this)})}.bind(this));e.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"unit",names:this.data[t.get("name")],onChange:function(e){this.savePersonItem(t,e)}.bind(this)})}.bind(this))}.bind(this))},savePersonItem:function(t,e){var i=[];e.each(function(t){i.push(t.data.distinguishedName||t.data.id||t.data.name)}.bind(this));var n=t.get("name");key=n.split(".");var s=this.data;var a=key.length-1;key.each(function(t,e){if(!s[t])s[t]={};if(e<a)s=s[t]}.bind(this));s[key[a]]=i},loadPersonSelectInput:function(){var t=this.propertyContent.getElements(".MWFSelectApplication");var e=this.propertyContent.getElements(".MWFSelectProcess");var i=this.propertyContent.getElements(".MWFSelectPerson");var n=this.propertyContent.getElements(".MWFSelectIdentity");var s=this.propertyContent.getElements(".MWFSelectUnit");MWF.xDesktop.requireApp("process.ProcessDesigner","widget.PersonSelector",function(){t.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"application",names:this.data.data.restrictWhereEntry?this.data.data.restrictWhereEntry.applicationList:[],onChange:function(e){this.savePersonSelectItem(t,e)}.bind(this)})}.bind(this));e.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"process",names:this.data.data.restrictWhereEntry?this.data.data.restrictWhereEntry.processList:[],onChange:function(e){this.savePersonSelectItem(t,e)}.bind(this)})}.bind(this));s.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"unit",names:this.data.data.restrictWhereEntry?this.data.data.restrictWhereEntry.unitList:[],onChange:function(e){this.savePersonSelectItem(t,e)}.bind(this)})}.bind(this));i.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"person",names:this.data.data.restrictWhereEntry?this.data.data.restrictWhereEntry.personList:[],onChange:function(e){this.savePersonSelectItem(t,e)}.bind(this)})}.bind(this));n.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"identity",names:this.data.data.restrictWhereEntry?this.data.data.restrictWhereEntry.identityList:[],onChange:function(e){this.savePersonSelectItem(t,e)}.bind(this)})}.bind(this))}.bind(this))},savePersonSelectItem:function(t,e){debugger;var i=[];e.each(function(t){i.push({name:t.data.name,id:t.data.id})}.bind(this));var n=t.get("name");key=n.split(".");var s=this.data;var a=key.length-1;key.each(function(t,e){if(!s[t])s[t]={};if(e<a)s=s[t]}.bind(this));s[key[a]]=i},loadViewSelect:function(){var t=this.propertyContent.getElements(".MWFViewSelect");if(t.length){this.getViewList(function(){t.each(function(t){var e=new Element("select").inject(t);e.addEvent("change",function(t){var e=t.target.options[t.target.selectedIndex].value;var i=t.target.options[t.target.selectedIndex].get("text");this.setValue(t.target.getParent("div").get("name"),e);this.setValue(t.target.getParent("div").get("name")+"Name",i)}.bind(this));this.setViewSelectOptions(t,e);var i=new Element("div",{styles:this.view.css.propertyRefreshFormNode}).inject(t);i.addEvent("click",function(i){this.getViewList(function(){this.setViewSelectOptions(t,e)}.bind(this),true)}.bind(this))}.bind(this))}.bind(this))}},setViewSelectOptions:function(t,e){var i=t.get("name");e.empty();var n=new Element("option",{text:"(none)"}).inject(e);this.views.each(function(t){var n=new Element("option",{text:t.name,value:t.id,selected:this.data[i]==t.id}).inject(e)}.bind(this))},getViewList:function(t,e){if(!this.views||e){this.view.designer.actions.listView(this.view.designer.application.id,function(e){this.views=e.data;if(t)t()}.bind(this))}else{if(t)t()}},loadScriptArea:function(){debugger;var t=this.propertyContent.getElements(".MWFScriptArea");var e=this.propertyContent.getElements(".MWFFormulaArea");this.loadScriptEditor(t);this.loadScriptEditor(e,"formula")},loadScriptEditor:function(t,e){t.each(function(t){var i=t.get("title");var n=t.get("name");var s=this.data[n];MWF.require("MWF.widget.ScriptArea",function(){var a=new MWF.widget.ScriptArea(t,{title:i,maxObj:this.designer.editContentNode,onChange:function(){this.data[n]=a.toJson().code}.bind(this),onSave:function(){this.designer.saveView()}.bind(this),style:e||"default"});a.load({code:s})}.bind(this))}.bind(this))}});