SubSource.min.js 2.1 KB

1
  1. MWF.xDesktop.requireApp("process.Xform","$Module",null,false);COMMON.AjaxModule.load("JSONTemplate",null,false);MWF.xApplication.process.Xform.SubSource=MWF.APPSubSource=new Class({Extends:MWF.APP$Module,options:{moduleEvents:["load","loadData"]},load:function(){this._queryLoaded();this._loadUserInterface();this._loadEvents();this._afterLoaded()},_loadUserInterface:function(){this.loopNodes=[];this.subSourceItems=[];var e=new Element("div").inject(this.node,"before");this.node.inject(e);this.loopNode=this.node.dispose();this.node=e;var t=e.get("id");e.set("id","");this.node.set({id:t,mwftype:e.get("mwftype")});this.node.store("module",this);this._loadJsonData()},_getSource:function(){var e=this.node.getParent();while(e&&(e.get("MWFtype")!="source"&&e.get("MWFtype")!="subSource"&&e.get("MWFtype")!="subSourceItem"))e=e.getParent();return e?e.retrieve("module"):null},_getSourceData:function(e){var t=e;if(this.json.jsonPath!="."){var o=this.json.jsonPath.split(".");o.each(function(e){t=t[e]}.bind(this))}this.data=t},_loopSub:function(e,t){var o=this.form._getModuleNodes(e);o.each(function(e){var o=this.form._getDomjson(e);var i=Object.clone(o);i.id=i.id+"_"+t;e.set("id",i.id);var s=this.form._loadModule(i,e)}.bind(this))},_loopData:function(){this.data.each(function(e,t){var o=this.loopNode.clone(true,true);o.inject(this.node);var i=Object.clone(this.json);i.id=i.id+"_"+t;i.type="SubSourceItem";o.set({id:i.id,mwftype:"subSourceItem"});var s=this.form._loadModule(i,o,function(){this.data=e;this.position=t});this.subSourceItems.push(s);this.loopNodes.push(o);this._loopSub(o,t)}.bind(this))},_initSubSource:function(){if(this.loopNode){var e=this.form._getModuleNodes(this.node);e.each(function(e){var t=e.retrieve("module");if(t){if(t.json.type=="SubSource"){t._initSubSource()}else{MWF.release(t)}}}.bind(this));this.node.empty()}this.loopNodes=[];this.subSourceItems=[]},_loadJsonData:function(e){debugger;if(!e)this._initSubSource();this.source=this._getSource();if(this.source){if(this.source.data){this._getSourceData(this.source.data);if(typeOf(this.data)=="array"){this._loopData();this.fireEvent("loadData")}else{this._loadModules(this.node)}}}}});