| 1 |
- MWF.SRVAD=MWF.xApplication.service.AgentDesigner=MWF.xApplication.service.AgentDesigner||{};MWF.SRVAD.options={multitask:true,executable:false};MWF.xDesktop.requireApp("service.AgentDesigner","Agent",null,false);MWF.require("MWF.xDesktop.UserData",null,false);MWF.xApplication.service.AgentDesigner.Main=new Class({Extends:MWF.xApplication.Common.Main,Implements:[Options,Events],options:{style:"default",name:"service.AgentDesigner",icon:"icon.png",title:MWF.SRVAD.LP.title,appTitle:MWF.SRVAD.LP.title,id:"",actions:null,category:null,serviceData:null},onQueryLoad:function(){if(this.status){this.options.id=this.status.id}if(!this.options.id){this.options.desktopReload=false;this.options.title=this.options.title+"-"+MWF.SRVAD.LP.newAgent}this.actions=MWF.Actions.get("x_program_center");this.lp=MWF.xApplication.service.AgentDesigner.LP;this.addEvent("queryClose",function(t){if(this.explorer){this.explorer.reload()}}.bind(this))},loadApplication:function(t){this.createNode();if(!this.options.isRefresh){this.maxSize(function(){this.openAgent()}.bind(this))}else{this.openAgent()}if(t)t()},createNode:function(){this.content.setStyle("overflow","hidden");this.node=new Element("div",{styles:{width:"100%",height:"100%",overflow:"hidden"}}).inject(this.content)},openAgent:function(){this.loadNodes();this.loadAgentListNodes();this.loadContentNode(function(){this.loadProperty();this.resizeNode();this.addEvent("resize",this.resizeNode.bind(this));this.loadAgent();if(this.toolbarContentNode){this.setScrollBar(this.toolbarContentNode,null,{V:{x:0,y:0},H:{x:0,y:0}});this.setScrollBar(this.propertyDomArea,null,{V:{x:0,y:0},H:{x:0,y:0}})}}.bind(this))},loadNodes:function(){this.agentListNode=new Element("div",{styles:this.css.agentListNode}).inject(this.node);this.propertyNode=new Element("div",{styles:this.css.propertyNode}).inject(this.node);this.contentNode=new Element("div",{styles:this.css.contentNode}).inject(this.node)},loadAgentListNodes:function(){this.agentListTitleNode=new Element("div",{styles:this.css.agentListTitleNode,text:MWF.SRVAD.LP.agentLibrary}).inject(this.agentListNode);this.agentListResizeNode=new Element("div",{styles:this.css.agentListResizeNode}).inject(this.agentListNode);this.agentListAreaSccrollNode=new Element("div",{styles:this.css.agentListAreaSccrollNode}).inject(this.agentListNode);this.agentListAreaNode=new Element("div",{styles:this.css.agentListAreaNode}).inject(this.agentListAreaSccrollNode);this.loadAgentListResize();this.loadAgentList()},loadAgentListResize:function(){this.agentListResize=new Drag(this.agentListResizeNode,{snap:1,onStart:function(t,e){var i=Browser.name=="firefox"?e.event.clientX:e.event.x;var n=Browser.name=="firefox"?e.event.clientY:e.event.y;t.store("position",{x:i,y:n});var s=this.agentListAreaSccrollNode.getSize();t.store("initialWidth",s.x)}.bind(this),onDrag:function(t,e){var i=Browser.name=="firefox"?e.event.clientX:e.event.x;var n=this.content.getSize();var s=t.retrieve("position");var o=t.retrieve("initialWidth").toFloat();var r=i.toFloat()-s.x.toFloat();var a=o+r;if(a>n.x/2)a=n.x/2;if(a<40)a=40;this.contentNode.setStyle("margin-left",a+1);this.agentListNode.setStyle("width",a)}.bind(this)})},loadAgentList:function(){this.actions.listAgent(function(t){t.data.each(function(t){this.createListAgentItem(t)}.bind(this))}.bind(this),null,false)},createListAgentItem:function(t,e){var i=this;var n=new Element("div",{styles:this.css.listAgentItem}).inject(this.agentListAreaNode,e?"top":"bottom");var s=new Element("div",{styles:this.css.listAgentItemIcon}).inject(n);var o=new Element("div",{styles:this.css.listAgentItemText,text:t.name?t.name+" ("+t.alias+")":this.lp.newAgent}).inject(n);n.store("agent",t);n.addEvents({dblclick:function(t){i.loadAgentByData(this,t)},mouseover:function(){if(i.currentListAgentItem!=this)this.setStyles(i.css.listAgentItem_over)},mouseout:function(){if(i.currentListAgentItem!=this)this.setStyles(i.css.listAgentItem)}});this.listAgentItemMove(n)},createAgentListCopy:function(t){var e=t.clone().inject(this.node);e.position({relativeTo:t,position:"upperLeft",edge:"upperLeft"});var i=e.getSize();e.setStyles({width:""+i.x+"px",height:""+i.y+"px","z-index":50001});return e},listDragEnter:function(t,e){var i=e.retrieve("markNode");if(!i){var n=e.getSize();i=new Element("div",{styles:this.css.dragListItemMark}).inject(this.node);i.setStyles({width:""+n.x+"px",height:""+n.y+"px",position:"absolute","background-color":"#666","z-index":5e4,opacity:.3});i.position({relativeTo:e,position:"upperLeft",edge:"upperLeft"});var s=i.getStyle("top").toFloat()-1;var o=i.getStyle("left").toFloat()-2;i.setStyles({left:""+o+"px",top:""+s+"px"});e.store("markNode",i)}},listDragLeave:function(t,e){var i=e.retrieve("markNode");if(i)i.destroy();e.eliminate("markNode")},listAgentItemMove:function(o){var t=o.getFirst();t.addEvent("mousedown",function(t){var e=o.retrieve("agent");if(e.id!=this.agentTab.showPage.agent.data.id){var i=this.createAgentListCopy(o);var n=[this.designNode,this.propertyDomArea];var s=new Drag.Move(i,{droppables:n,onEnter:function(t,e){this.listDragEnter(t,e)}.bind(this),onLeave:function(t,e){this.listDragLeave(t,e)}.bind(this),onDrag:function(t){}.bind(this),onDrop:function(t,e){if(e){this.listDragLeave(t,e);i.destroy()}else{i.destroy()}}.bind(this),onCancel:function(t){i.destroy()}.bind(this)});s.start(t)}}.bind(this))},addIncludeAgent:function(t){var e=this.agentTab.showPage.agent;if(e.data.dependAgentList.indexOf(t.name)==-1){e.data.dependAgentList.push(t.name);this.addIncludeToList(t.name)}},addIncludeToList:function(t){this.actions.getAgentByName(t,function(t){var e=t.data;var i=new Element("div",{styles:this.css.includeAgentItem}).inject(this.propertyIncludeListArea);var n=new Element("div",{styles:this.css.includeAgentItemAction}).inject(i);var s=new Element("div",{styles:this.css.includeAgentItemText}).inject(i);s.set("text",e.name+" ("+e.alias+")");i.store("agent",e);var o=this;n.addEvent("click",function(){var t=this.getParent();var e=t.retrieve("agent");if(e){o.agentTab.showPage.agent.data.dependAgentList.erase(e.name)}t.destroy()})}.bind(this),function(){this.agentTab.showPage.agent.data.dependAgentList.erase(t)}.bind(this))},loadAgentByData:function(t,e){var i=t.retrieve("agent");var n=true;for(var s=0;s<this.agentTab.pages.length;s++){if(i.id==this.agentTab.pages[s].agent.data.id){this.agentTab.pages[s].showTabIm();n=false;break}}if(n){this.loadAgentData(i.id,function(t){var e=new MWF.xApplication.service.AgentDesigner.Agent(this,t);e.load()}.bind(this),true)}},loadContentNode:function(t,e){this.contentToolbarNode=new Element("div#contentToolbarNode",{styles:this.css.contentToolbarNode}).inject(this.contentNode);this.loadContentToolbar(t);this.editContentNode=new Element("div",{styles:this.css.editContentNode}).inject(this.contentNode);this.loadEditContent(function(){if(this.designNode)this.designNode.setStyles(this.css.designNode);if(e)e()}.bind(this))},loadContentToolbar:function(i){this.getFormToolbarHTML(function(e){var t=e.getElements("span");t.each(function(t,e){var i=t.get("MWFButtonImage");if(i){t.set("MWFButtonImage",this.path+""+this.options.style+"/toolbar/"+i)}}.bind(this));$(e).inject(this.contentToolbarNode);MWF.require("MWF.widget.Toolbar",function(){this.toolbar=new MWF.widget.Toolbar(e,{style:"ProcessCategory"},this);this.toolbar.load();var t=this;this.styleSelectNode=e.getElement("select");this.styleSelectNode.addEvent("change",function(){t.changeEditorStyle(this)});if(i)i()}.bind(this))}.bind(this))},changeEditorStyle:function(t){var e=t.selectedIndex;var i=t.options[e].value;this.agentTab.pages.each(function(t){var e=t.agent.editor.editor;if(e)e.setTheme("ace/theme/"+i)}.bind(this));if(!MWF.editorData){MWF.editorData={javascriptEditor:{theme:"tomorrow"}}}MWF.editorData.javascriptEditor.theme=i;MWF.UD.putData("editor",MWF.editorData)},getFormToolbarHTML:function(o){var t=this.path+this.options.style+"/toolbars.html";var e=new Request.HTML({url:t,method:"get",onSuccess:function(t,e,i,n){var s=t[0];if(o)o(s)}.bind(this),onFailure:function(t){this.notice("request processToolbars error: "+t.responseText,"error")}.bind(this)});e.send()},maxOrReturnEditor:function(){if(!this.isMax){this.designNode.inject(this.node);this.designNode.setStyles({position:"absolute",width:"100%",height:"100%",top:"0px",margin:"0px",left:"0px"});this.agentTab.pages.each(function(t){t.agent.setAreaNodeSize()});this.isMax=true}else{this.isMax=false;this.designNode.inject(this.editContentNode);this.designNode.setStyles(this.css.designNode);this.designNode.setStyles({position:"static"});this.resizeNode();this.agentTab.pages.each(function(t){t.agent.setAreaNodeSize()})}},loadEditContent:function(t){this.designNode=new Element("div",{styles:this.css.designNode}).inject(this.editContentNode);MWF.require("MWF.widget.Tab",function(){this.agentTab=new MWF.widget.Tab(this.designNode,{style:"script"});this.agentTab.load()}.bind(this),false)},loadProperty:function(){this.propertyTitleNode=new Element("div",{styles:this.css.propertyTitleNode,text:MWF.SRVAD.LP.property}).inject(this.propertyNode);this.propertyResizeBar=new Element("div",{styles:this.css.propertyResizeBar}).inject(this.propertyNode);this.loadPropertyResize();this.propertyContentNode=new Element("div",{styles:this.css.propertyContentNode}).inject(this.propertyNode);this.propertyContentArea=new Element("div",{styles:this.css.propertyContentArea}).inject(this.propertyContentNode);this.setPropertyContent()},setIncludeNode:function(){this.includeTitleNode=new Element("div",{styles:this.css.includeTitleNode}).inject(this.propertyDomArea);this.includeTitleActionNode=new Element("div",{styles:this.css.includeTitleActionNode}).inject(this.includeTitleNode);this.includeTitleTextNode=new Element("div",{styles:this.css.includeTitleTextNode,text:this.lp.include}).inject(this.includeTitleNode);this.includeTitleActionNode.addEvent("click",function(){this.addInclude()}.bind(this));this.propertyIncludeListArea=new Element("div",{styles:{overflow:"hidden"}}).inject(this.propertyDomArea)},addInclude:function(){},setPropertyContent:function(){var t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.id+":"}).inject(this.propertyContentArea);this.propertyIdNode=new Element("div",{styles:this.css.propertyTextNode,text:""}).inject(this.propertyContentArea);t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.name+":"}).inject(this.propertyContentArea);this.propertyNameNode=new Element("input",{styles:this.css.propertyInputNode,value:""}).inject(this.propertyContentArea);t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.alias+":"}).inject(this.propertyContentArea);this.propertyAliasNode=new Element("input",{styles:this.css.propertyInputNode,value:""}).inject(this.propertyContentArea);t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.cron+":"}).inject(this.propertyContentArea);this.propertyCronNode=new Element("input",{styles:this.css.propertyInputNode,value:""}).inject(this.propertyContentArea);this.loadCronTooltip();t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.lastStartTime+":"}).inject(this.propertyContentArea);this.propertyLastStartTimeNode=new Element("div",{styles:this.css.propertyTextNode,value:""}).inject(this.propertyContentArea);t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.lastEndTime+":"}).inject(this.propertyContentArea);this.propertyLastEndTimeNode=new Element("div",{styles:this.css.propertyTextNode,value:""}).inject(this.propertyContentArea);t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.description+":"}).inject(this.propertyContentArea);this.propertyDescriptionNode=new Element("textarea",{styles:this.css.propertyInputAreaNode,value:""}).inject(this.propertyContentArea);t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.isEnable+":"}).inject(this.propertyContentArea);var e=new Element("div",{styles:this.css.propertyTextNode,text:""}).inject(this.propertyContentArea);this.propertyEnableNode=new Element("div",{styles:{float:"left",color:"red"},text:""}).inject(e);this.propertyEnableButton=new Element("input",{type:"button",styles:this.css.propertyButton,value:this.lp.enable}).inject(e);this.propertyEnableButton.addEvent("click",function(){var t=this.propertyEnableButton.retrieve("id");if(t)this.actions.enableAgent(t,function(){this.refresh()}.bind(this))}.bind(this));this.propertyDisableButton=new Element("input",{type:"button",styles:this.css.propertyButton,value:this.lp.disable}).inject(e);this.propertyDisableButton.addEvent("click",function(){var t=this.propertyDisableButton.retrieve("id");if(t)this.actions.disableAgent(t,function(){this.refresh()}.bind(this))}.bind(this))},loadCronTooltip:function(){MWF.xDesktop.requireApp("Template","widget.CronPicker",null,false);this.cronPicker=new MWF.xApplication.Template.widget.CronPicker(this.content,this.propertyCronNode,this,{},{style:"design",position:{x:"right",y:"auto"},onSelect:function(t){this.propertyCronNode.set("value",t);this.cronValue=t}.bind(this),onQueryLoad:function(){if(this.cronValue){if(!this.cronPicker.node){this.cronPicker.options.value=this.cronValue}else{this.cronPicker.setCronValue(this.cronValue)}}}.bind(this)})},loadPropertyResize:function(){this.propertyResize=new Drag(this.propertyResizeBar,{snap:1,onStart:function(t,e){var i=Browser.name=="firefox"?e.event.clientX:e.event.x;var n=Browser.name=="firefox"?e.event.clientY:e.event.y;t.store("position",{x:i,y:n});var s=this.propertyNode.getSize();t.store("initialWidth",s.x)}.bind(this),onDrag:function(t,e){var i=Browser.name=="firefox"?e.event.clientX:e.event.x;var n=this.content.getSize();var s=t.retrieve("position");var o=t.retrieve("initialWidth").toFloat();var r=s.x.toFloat()-i.toFloat();var a=o+r;if(a>n.x/2)a=n.x/2;if(a<40)a=40;this.contentNode.setStyle("margin-right",a+1);this.propertyNode.setStyle("width",a)}.bind(this)})},loadPropertyContentResize:function(){this.propertyContentResize=new Drag(this.propertyContentResizeNode,{snap:1,onStart:function(t,e){var i=Browser.name=="firefox"?e.event.clientX:e.event.x;var n=Browser.name=="firefox"?e.event.clientY:e.event.y;t.store("position",{x:i,y:n});var s=this.propertyDomArea.getSize();t.store("initialHeight",s.y)}.bind(this),onDrag:function(t,e){var i=this.propertyContentNode.getSize();var n=Browser.name=="firefox"?e.event.clientY:e.event.y;var s=t.retrieve("position");var o=n.toFloat()-s.y.toFloat();var r=t.retrieve("initialHeight").toFloat();var a=r+o;if(a<40)a=40;if(a>i.y-40)a=i.y-40;this.propertyDomPercent=a/i.y;this.setPropertyContentResize()}.bind(this)})},setPropertyContentResize:function(){var t=this.propertyContentNode.getSize();this.propertyContentArea.setStyle("height",""+t.y+"px")},resizeNode:function(){if(!this.isMax){var t=this.node.getSize();this.contentNode.setStyle("height",""+t.y+"px");this.propertyNode.setStyle("height",""+t.y+"px");var e=this.contentToolbarNode.getStyle("margin-top").toFloat();var i=this.contentToolbarNode.getStyle("margin-bottom").toFloat();var n=this.contentToolbarNode.getComputedSize();var s=t.y-n.totalHeight-e-i;this.editContentNode.setStyle("height",""+s+"px");if(this.designNode){var o=this.designNode.getStyle("margin-top").toFloat();var r=this.designNode.getStyle("margin-bottom").toFloat();s=t.y-n.totalHeight-e-i-o-r;this.designNode.setStyle("height",""+s+"px")}titleSize=this.propertyTitleNode.getSize();titleMarginTop=this.propertyTitleNode.getStyle("margin-top").toFloat();titleMarginBottom=this.propertyTitleNode.getStyle("margin-bottom").toFloat();titlePaddingTop=this.propertyTitleNode.getStyle("padding-top").toFloat();titlePaddingBottom=this.propertyTitleNode.getStyle("padding-bottom").toFloat();s=titleSize.y+titleMarginTop+titleMarginBottom+titlePaddingTop+titlePaddingBottom;s=t.y-s;this.propertyContentNode.setStyle("height",""+s+"px");this.propertyResizeBar.setStyle("height",""+s+"px");this.setPropertyContentResize();titleSize=this.agentListTitleNode.getSize();titleMarginTop=this.agentListTitleNode.getStyle("margin-top").toFloat();titleMarginBottom=this.agentListTitleNode.getStyle("margin-bottom").toFloat();titlePaddingTop=this.agentListTitleNode.getStyle("padding-top").toFloat();titlePaddingBottom=this.agentListTitleNode.getStyle("padding-bottom").toFloat();nodeMarginTop=this.agentListAreaSccrollNode.getStyle("margin-top").toFloat();nodeMarginBottom=this.agentListAreaSccrollNode.getStyle("margin-bottom").toFloat();s=titleSize.y+titleMarginTop+titleMarginBottom+titlePaddingTop+titlePaddingBottom+nodeMarginTop+nodeMarginBottom;s=t.y-s;this.agentListAreaSccrollNode.setStyle("height",""+s+"px");this.agentListResizeNode.setStyle("height",""+s+"px")}},loadAgent:function(){debugger;this.getAgentData(this.options.id,function(t){this.agent=new MWF.xApplication.service.AgentDesigner.Agent(this,t);this.agent.load();if(this.status){if(this.status.openAgents){this.status.openAgents.each(function(t){this.loadAgentData(t,function(t){var e=true;if(this.status.currentId){if(this.status.currentId!=t.id)e=false}var i=new MWF.xApplication.service.AgentDesigner.Agent(this,t,{showTab:e});i.load()}.bind(this),true)}.bind(this))}}if(!this.agentHelpMenu){MWF.require("MWF.widget.ScriptHelp",function(){this.agentHelpMenu=new MWF.widget.ScriptHelp($("MWFScriptAutoCode"),this.agent.editor);this.agentHelpMenu.getEditor=function(){if(this.agentTab.showPage)return this.agentTab.showPage.agent.editor.editor;return null}.bind(this)}.bind(this))}}.bind(this))},getAgentData:function(t,e){if(!t){this.loadNewAgentData(e)}else{this.loadAgentData(t,e)}},loadNewAgentData:function(i){MWF.Actions.get("x_cms_assemble_control").getUUID(function(t){var e={name:"",id:t,alias:"",description:"",isNewAgent:true,text:"",enable:true,cron:"",lastStartTime:"",lastEndTime:""};this.createListAgentItem(e,true);if(i)i(e)}.bind(this))},loadAgentData:function(t,i,n){this.actions.getAgent(t,function(t){if(t){var e=t.data;if(!n){this.setTitle(this.options.appTitle+"-"+e.name);this.taskitem.setText(this.options.appTitle+"-"+e.name);this.options.appTitle=this.options.appTitle+"-"+e.name}if(i)i(e)}}.bind(this))},saveAgent:function(){if(this.agentTab.showPage){var e=this.agentTab.showPage.agent;e.save(function(){if(e==this.agent){var t=e.data.name;this.setTitle(MWF.SRVAD.LP.title+"-"+t);this.options.desktopReload=true;this.options.id=e.data.id}}.bind(this))}},saveDictionaryAs:function(){this.dictionary.saveAs()},dictionaryExplode:function(){this.dictionary.explode()},dictionaryImplode:function(){this.dictionary.implode()},recordStatus:function(){if(this.agentTab){var e=[];this.agentTab.pages.each(function(t){if(t.agent.data.id!=this.options.id)e.push(t.agent.data.id)}.bind(this));var t=this.agentTab.showPage.agent.data.id;var i={id:this.options.id,openAgents:e,currentId:t};return i}return{id:this.options.id}}});
|