Importer.min.js 7.5 KB

1
  1. MWF.xApplication.process.ApplicationExplorer.Importer=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default"},initialize:function(t,i,s){this.setOptions(s);this.app=t;this.container=this.app.content;this.actions=this.app.restActions;this.event=i;this.path="/x_component_process_ApplicationExplorer/$Importer/";this.cssPath="/x_component_process_ApplicationExplorer/$Importer/"+this.options.style+"/css.wcss";this._loadCss()},load:function(){this.container.mask({destroyOnHide:true,style:{"background-color":"#666",opacity:.6}});this.node=new Element("div",{styles:this.css.content});this.titleNode=new Element("div",{styles:this.css.titleNode,text:this.app.lp.application.import}).inject(this.node);this.contentNode=new Element("div",{styles:this.css.contentNode}).inject(this.node);this.buttonAreaNode=new Element("div",{styles:this.css.buttonAreaNode}).inject(this.node);this.cancelButton=new Element("div",{styles:this.css.button,text:this.app.lp.application.export_cancel}).inject(this.buttonAreaNode);this.okButton=new Element("div",{styles:this.css.okButton,text:this.app.lp.application.export_ok}).inject(this.buttonAreaNode);this.loadContent();this.setEvent();this.node.inject(this.container);this.node.position({relativeTo:this.container,position:"center",edge:"center"})},loadContent:function(){this.textarea=new Element("textarea",{styles:this.css.textarea}).inject(this.contentNode)},setEvent:function(){this.cancelButton.addEvent("click",function(t){this.close()}.bind(this));this.okButton.addEvent("click",function(t){this.importApplication()}.bind(this))},close:function(){this.container.unmask();this.node.destroy();this.cancelButton=null;this.okButton=null;this.buttonAreaNode=null;this.contentNode=null;this.titleNode=null;this.node=null;this.fireEvent("close")},importApplication:function(){var t=this.textarea.get("value");if(t){this.applicationJson=JSON.decode(t);var i=this.applicationJson.application.name;this.actions.listApplicationSummary("",function(t){var s="create";var e=null;if(t.data){for(var o=0;o<t.data.length;o++){if(t.data[o].name==i){e=t.data[o];s="overwrite";break}}}if(s=="overwrite"){var n=this;this.app.confirm("infor",this.event,this.app.lp.application.import_confirm_title,this.app.lp.application.import_confirm,400,180,function(){n.doImportOverwriteApplication(e);this.close()},function(){this.close()})}else{this.doImportApplication()}}.bind(this))}},readyProrressBar:function(){this.createProgressBar();this.status={count:this.applicationJson.processList.length+this.applicationJson.formList.length+this.applicationJson.dictionaryList.length+this.applicationJson.scriptList.length+1,complete:0}},doImportApplication:function(){this.readyProrressBar();this.actions.action.invoke({name:"addApplication",data:this.applicationJson.application,success:function(){this.progressBarTextNode.set("text","Import Application Property ...");this.checkExport();this.importOverwriteProcessList();this.importOverwriteFormList();this.importOverwriteDictionaryList();this.importOverwriteScriptList()}.bind(this)})},doImportOverwriteApplication:function(t){this.readyProrressBar();this.applicationJson.application.id=t.id;this.actions.saveApplication(this.applicationJson.application,function(){this.progressBarTextNode.set("text","Import Application Property ...");this.checkExport()}.bind(this));this.importOverwriteProcessList();this.importOverwriteFormList();this.importOverwriteDictionaryList();this.importOverwriteScriptList()},importOverwriteProcessList:function(){debugger;this.actions.listProcess(this.applicationJson.application.id,function(t){var i=t.data||[];this.applicationJson.processList.each(function(t){var s="";t.application=this.applicationJson.application.id;for(var e=0;e<i.length;e++){if(i[e].name==t.name){s=i[e].id;break}}if(s){t.id=s;t.begin.process=s;t.agentList.each(function(t){t.process=s});t.cancelList.each(function(t){t.process=s});t.choiceList.each(function(t){t.process=s});t.embedList.each(function(t){t.process=s});t.endList.each(function(t){t.process=s});t.invokeList.each(function(t){t.process=s});t.manualList.each(function(t){t.process=s});t.mergeList.each(function(t){t.process=s});t.messageList.each(function(t){t.process=s});t.routeList.each(function(t){t.process=s});t.parallelList.each(function(t){t.process=s});t.serviceList.each(function(t){t.process=s});t.splitList.each(function(t){t.process=s});this.actions.updateProcess(t,function(){this.progressBarTextNode.set("text",'Import Process "'+t.name+'" ...');this.checkExport()}.bind(this))}else{this.actions.addProcess(t,function(){this.progressBarTextNode.set("text",'Import Process "'+t.name+'" ...');this.checkExport()}.bind(this))}}.bind(this))}.bind(this))},importOverwriteFormList:function(){this.actions.listForm(this.applicationJson.application.id,function(t){var i=t.data||[];this.applicationJson.formList.each(function(t){t.application=this.applicationJson.application.id;var s="";for(var e=0;e<i.length;e++){if(i[e].name==t.name){s=i[e].id;break}}if(s){t.id=s;this.actions.action.invoke({name:"updataForm",data:t,parameter:{id:t.id},success:function(){this.progressBarTextNode.set("text",'Import Form "'+t.name+'" ...');this.checkExport()}.bind(this)})}else{this.actions.action.invoke({name:"addForm",data:t,parameter:{id:t.id},success:function(){this.progressBarTextNode.set("text",'Import Form "'+t.name+'" ...');this.checkExport()}.bind(this)})}}.bind(this))}.bind(this))},importOverwriteDictionaryList:function(){this.actions.listDictionary(this.applicationJson.application.id,function(t){var i=t.data||[];this.applicationJson.dictionaryList.each(function(t){t.application=this.applicationJson.application.id;var s="";for(var e=0;e<i.length;e++){if(i[e].name==t.name){s=i[e].id;break}}if(s){t.id=s;this.actions.updateDictionary(t,function(){this.progressBarTextNode.set("text",'Import Process "'+t.name+'" ...');this.checkExport()}.bind(this))}else{this.actions.addDictionary(t,function(){this.progressBarTextNode.set("text",'Import Process "'+t.name+'" ...');this.checkExport()}.bind(this))}}.bind(this))}.bind(this))},importOverwriteScriptList:function(){this.actions.listScript(this.applicationJson.application.id,function(t){var i=t.data||[];this.applicationJson.scriptList.each(function(t){t.application=this.applicationJson.application.id;var s="";for(var e=0;e<i.length;e++){if(i[e].name==t.name){s=i[e].id;break}}if(s){t.id=s;this.actions.updateScript(t,function(){this.progressBarTextNode.set("text",'Import Process "'+t.name+'" ...');this.checkExport()}.bind(this))}else{this.actions.addScript(t,function(){this.progressBarTextNode.set("text",'Import Process "'+t.name+'" ...');this.checkExport()}.bind(this))}}.bind(this))}.bind(this))},checkExport:function(){this.status.complete=this.status.complete+1;var t=358*(this.status.complete/this.status.count);this.progressBarPercent.setStyle("width",""+t+"px");if(this.status.complete==this.status.count){this.progressBarNode.destroy();this.progressBarNode=null;this.progressBarTextNode=null;this.progressBar=null;this.progressBarPercent=null;this.close()}},createProgressBar:function(){this.node.hide();this.progressBarNode=new Element("div",{styles:this.css.progressBarNode});this.progressBarNode.inject(this.container);this.progressBarNode.position({relativeTo:this.container,position:"center",edge:"center"});this.progressBarTextNode=new Element("div",{styles:this.css.progressBarTextNode}).inject(this.progressBarNode);this.progressBar=new Element("div",{styles:this.css.progressBar}).inject(this.progressBarNode);this.progressBarPercent=new Element("div",{styles:this.css.progressBarPercent}).inject(this.progressBar)}});