Agent.min.js 8.4 KB

1
  1. MWF.xApplication=MWF.xApplication||{};MWF.xApplication.service=MWF.xApplication.service||{};MWF.xApplication.service.AgentDesigner=MWF.xApplication.service.AgentDesigner||{};MWF.SRVAD=MWF.xApplication.service.AgentDesigner;MWF.require("MWF.widget.Common",null,false);MWF.xDesktop.requireApp("service.AgentDesigner","lp."+MWF.language,null,false);MWF.require("MWF.widget.JavascriptEditor",null,false);MWF.xApplication.service.AgentDesigner.Agent=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",showTab:true},initialize:function(e,t,i){this.setOptions(i);this.path="/x_component_service_AgentDesigner/$Agent/";this.cssPath="/x_component_service_AgentDesigner/$Agent/"+this.options.style+"/css.wcss";this._loadCss();this.isChanged=false;this.designer=e;this.data=t;if(!this.data.text)this.data.text="";this.node=this.designer.designNode;this.tab=this.designer.agentTab;this.areaNode=new Element("div",{styles:{overflow:"hidden",height:"700px"}});this.propertyNode=this.designer.propertyContentArea;this.isNewAgent=this.data.id?false:true;this.autoSave();this.designer.addEvent("queryClose",function(){if(this.autoSaveTimerID)window.clearInterval(this.autoSaveTimerID)}.bind(this))},autoSave:function(){this.autoSaveTimerID=window.setInterval(function(){if(!this.autoSaveCheckNode)this.autoSaveCheckNode=this.designer.contentToolbarNode.getElement("#MWFAgentAutoSaveCheck");if(this.autoSaveCheckNode){if(this.autoSaveCheckNode.get("checked")){if(this.isChanged)this.saveSilence()}}}.bind(this),6e4)},load:function(){this.setAreaNodeSize();this.designer.addEvent("resize",this.setAreaNodeSize.bind(this));this.page=this.tab.addTab(this.areaNode,this.data.name||this.designer.lp.newAgent,!this.data.isNewAgent&&this.data.id!=this.designer.options.id);this.page.agent=this;this.page.addEvent("show",function(){this.designer.agentListAreaNode.getChildren().each(function(e){var t=e.retrieve("agent");if(t.id==this.data.id){if(this.designer.currentListAgentItem){this.designer.currentListAgentItem.setStyles(this.designer.css.listAgentItem)}e.setStyles(this.designer.css.listAgentItem_current);this.designer.currentListAgentItem=e;this.lisNode=e}}.bind(this));this.designer.currentScript=this;this.setPropertyContent();if(this.editor.editor){this.editor.editor.focus()}}.bind(this));this.page.addEvent("queryClose",function(){if(this.autoSaveTimerID)window.clearInterval(this.autoSaveTimerID);this.saveSilence();if(this.lisNode)this.lisNode.setStyles(this.designer.css.listAgentItem)}.bind(this));this.page.tabNode.addEvent("dblclick",this.designer.maxOrReturnEditor.bind(this.designer));this.editor=new MWF.widget.JavascriptEditor(this.areaNode);this.editor.load(function(){if(this.data.text){this.editor.editor.setValue(this.data.text)}else{var e="/********************\n";e+="resources.getEntityManagerContainer(); //实体管理器\n";e+="resources.getContext(); //上下文根\n";e+="resources.getOrganization(); //组织访问\n";e+="resources.getWebservicesClient();//webSerivces客户端\n";e+="********************/\n";this.editor.editor.setValue(e)}this.editor.editor.on("change",function(e){if(!this.isChanged){this.isChanged=true;this.page.textNode.set("text"," * "+this.page.textNode.get("text"))}}.bind(this));this.editor.addEvent("save",function(){this.save()}.bind(this));this.editor.addEvent("reference",function(e,t,i){if(!this.agentReferenceMenu){MWF.require("MWF.widget.ScriptHelp",function(){this.agentReferenceMenu=new MWF.widget.ScriptHelp(null,this.editor.editor,{onPostLoad:function(){this.showReferenceMenu()}.bind(this)});this.agentReferenceMenu.getEditor=function(){return this.editor.editor}.bind(this)}.bind(this))}else{this.showReferenceMenu()}}.bind(this));var t=this.designer.styleSelectNode.options;for(var i=0;i<t.length;i++){var s=t[i];if(s.value==this.editor.theme){s.set("selected",true);break}}}.bind(this));if(this.options.showTab)this.page.showTabIm()},showReferenceMenu:function(){var e=this.editor.getCursorPixelPosition();var t={page:{}};t.page.x=e.left;t.page.y=e.top;this.agentReferenceMenu.menu.showIm(t)},setIncludeNode:function(){this.designer.propertyIncludeListArea.empty();this.data.dependAgentList.each(function(e){this.designer.addIncludeToList(e)}.bind(this))},setPropertyContent:function(){this.designer.propertyIdNode.set("text",this.data.id||"");this.designer.propertyNameNode.set("value",this.data.name||"");this.designer.propertyAliasNode.set("value",this.data.alias||"");this.designer.propertyEnableNode.set("text",this.data.enable?this.designer.lp.true:this.designer.lp.false);this.designer.propertyCronNode.set("value",this.data.cron||"");this.designer.cronValue=this.data.cron||"";this.designer.propertyLastStartTimeNode.set("text",this.data.lastStartTime||"");this.designer.propertyLastEndTimeNode.set("text",this.data.lastEndTime||"");this.designer.propertyDescriptionNode.set("value",this.data.description||"");this.setButton()},setButton:function(){this.designer.propertyEnableButton.store("id",this.data.id);this.designer.propertyDisableButton.store("id",this.data.id);if(this.data.enable){this.designer.propertyEnableButton.setStyle("display","none");this.designer.propertyDisableButton.setStyle("display",this.data.isNewAgent?"none":"")}else{this.designer.propertyEnableButton.setStyle("display",this.data.isNewAgent?"none":"");this.designer.propertyDisableButton.setStyle("display","none")}},setAreaNodeSize:function(){var e=this.node.getSize();var t=this.tab.tabNodeContainer.getSize();var i=e.y-t.y;this.areaNode.setStyle("height",""+i+"px");if(this.editor)if(this.editor.editor)this.editor.editor.resize()},addInclude:function(){},saveAgent:function(e,t,i){if(e.isNewAgent){this.designer.actions.createAgent(e,t,i)}else{this.designer.actions.updateAgent(e.id,e,t,i)}},save:function(t){debugger;if(!this.isSave){var e=this.editor.editor.getSession();var i=e.getAnnotations();var s=true;for(var n=0;n<i.length;n++){if(i[n].type=="error"){s=false;break}}var a=this.designer.propertyNameNode.get("value");var r=this.designer.propertyAliasNode.get("value");var d=this.designer.propertyDescriptionNode.get("value");var o=this.designer.propertyCronNode.get("value");if(!a){this.designer.notice(this.designer.lp.notice.inputName,"error");return false}if(!o){this.designer.notice(this.designer.lp.notice.inputCron,"error");return false}this.data.name=a;this.data.alias=r;this.data.description=d;this.data.cron=o;this.data.validated=s;this.data.text=this.editor.editor.getValue();this.isSave=true;this.saveAgent(this.data,function(e){this.isSave=false;if(this.data.isNewAgent){this.data.isNewAgent=false;this.setButton()}this.isChanged=false;this.page.textNode.set("text",this.data.name);if(this.lisNode){this.lisNode.getLast().set("text",this.data.name)}this.designer.notice(this.designer.lp.notice.save_success,"success",this.node,{x:"left",y:"bottom"});this.data.id=e.data.id;this.designer.propertyIdNode.set("text",this.data.id);if(t)t()}.bind(this),function(e,t,i){this.isSave=false;var s=i+":"+t;if(e)s=e.responseText;MWF.xDesktop.notice("error",{x:"right",y:"top"},"request json error: "+s)}.bind(this))}else{MWF.xDesktop.notice("info",{x:"right",y:"top"},this.designer.lp.isSave)}},saveSilence:function(t){if(!this.isSave){var e=this.editor.editor.getSession();var i=e.getAnnotations();var s=true;for(var n=0;n<i.length;n++){if(i[n].type=="error"){s=false;break}}if(this.designer.currentScript==this){var a=this.designer.propertyNameNode.get("value");var r=this.designer.propertyAliasNode.get("value");var d=this.designer.propertyDescriptionNode.get("value");var o=this.designer.propertyCronNode.get("value");if(!a){this.designer.notice(this.designer.lp.notice.inputName,"error");return false}if(!o){this.designer.notice(this.designer.lp.notice.inputCron,"error");return false}this.data.name=a;this.data.alias=r;this.data.description=d;this.data.cron=o;this.data.validated=s}this.data.text=this.editor.editor.getValue();this.isSave=true;this.saveAgent(this.data,function(e){this.isSave=false;if(this.data.isNewAgent){this.data.isNewAgent=false;if(this.designer.currentScript==this){this.setButton()}}this.data.isNewAgent=false;this.isChanged=false;this.page.textNode.set("text",this.data.name);if(this.lisNode){this.lisNode.getLast().set("text",this.data.name)}this.data.id=e.data.id;if(this.designer.currentScript==this){this.designer.propertyIdNode.set("text",this.data.id)}if(t)t()}.bind(this),function(e,t,i){this.isSave=false}.bind(this))}else{MWF.xDesktop.notice("info",{x:"right",y:"top"},this.designer.lp.isSave)}},saveAs:function(){},explode:function(){},implode:function(){}});