ApplicationServers.min.js 16 KB

1
  1. MWF.xApplication.Setting.servers=MWF.xApplication.Setting.servers||{};MWF.xApplication.Setting.servers.ApplicationServers=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],initialize:function(t){this.explorer=t;this.app=this.explorer.app;this.actions=this.app.actions;this.css=this.app.css;this.applicationServers=[];this.content=this.explorer.applicationServerContent;this.page=this.app.serverPage;this.currentDoc=null;this.load()},load:function(){this.actions.listApplicationServer(function(t){t.data.each(function(t){this.applicationServers.push(new MWF.xApplication.Setting.servers.ApplicationServer(this,t))}.bind(this));this.createAddAction();this.setApplicationServerAreaWidth();this.setApplicationServerAreaWidthFun=this.setApplicationServerAreaWidth.bind(this);this.app.addEvent("resize",this.setApplicationServerAreaWidthFun)}.bind(this))},createAddAction:function(){this.createServerAction=new Element("div",{styles:this.css.applicationServerCreateAction}).inject(this.content);this.createServerAction.addEvents({mouseover:function(){this.createServerAction.setStyles(this.css.applicationServerCreateAction_over)}.bind(this),mouseout:function(){this.createServerAction.setStyles(this.css.applicationServerCreateAction)}.bind(this),click:function(){this.createServer()}.bind(this)})},createServer:function(){var t={list:this,app:this.app,json:{contextList:[],planList:[]},node:this.createServerAction,name:"",reload:function(){this.list.applicationServers.push(new MWF.xApplication.Setting.servers.ApplicationServer(this.list,this.json))}};this.currentDoc=new MWF.xApplication.Setting.servers.ApplicationServer.Document(t)},setApplicationServerAreaWidth:function(){var t=this.applicationServers.length;var e=this.explorer.contentAreaNode.getSize().x;var i=this.applicationServers[0].node.getSize().x;var s=this.applicationServers[0].node.getStyle("margin-left").toInt();var n=this.applicationServers[0].node.getStyle("margin-right").toInt();i=i+s+n;var o=(e/i).toInt();var r=i*o;this.content.setStyle("width",""+r+"px")},getDepolyableList:function(t){this.actions.listDepolyable(function(e){this.depolyableList=e.data;if(t)t(e.data)}.bind(this))},destroy:function(){if(this.setApplicationServerAreaWidthFun)this.app.removeEvent("resize",this.setApplicationServerAreaWidthFun);this.applicationServers.each(function(t){t.destroy()}.bind(this));if(this.currentDoc)this.currentDoc.destroy();this.content.destroy();MWF.release(this)}});MWF.xApplication.Setting.servers.ApplicationServer=new Class({Implements:[Events],initialize:function(t,e){this.list=t;this.explorer=this.list.explorer;this.app=this.list.explorer.app;this.json=e;this.container=this.list.content;this.css=this.app.css;this.name=this.json.name;this.load()},load:function(){this.node=new Element("div",{styles:this.css.applicationServerNode}).inject(this.container);if(this.list.createServerAction)this.node.inject(this.list.createServerAction,"before");this.iconNode=new Element("div",{styles:this.css.applicationServerIconNode}).inject(this.node);this.statusNode=new Element("div",{styles:this.css.applicationServerStatusNode}).inject(this.node);if(this.json.status=="connected"){this.statusNode.setStyle("background-color","#23b107")}else{this.statusNode.setStyle("background-color","#999")}this.textNode=new Element("div",{styles:this.css.applicationServerTextNode}).inject(this.node);this.nameNode=new Element("div",{styles:this.css.applicationServerNameNode}).inject(this.textNode);this.hostNode=new Element("div",{styles:this.css.applicationServerHostNode}).inject(this.textNode);this.adminNode=new Element("div",{styles:this.css.applicationServerAdminNode}).inject(this.textNode);this.messageNode=new Element("div",{styles:this.css.applicationServerMessageNode}).inject(this.textNode);this.setServerText();this.node.addEvent("click",this.open.bind(this))},setServerText:function(){this.nameNode.set("text",this.json.name||"");this.hostNode.set("text",(this.json.host||"")+" : "+(this.json.port||""));this.adminNode.set("text",this.json.username||"");this.messageNode.set("text",this.json.message||"")},open:function(){this.list.currentDoc=new MWF.xApplication.Setting.servers.ApplicationServer.Document(this)},reload:function(){this.app.actions.getAppServer(this.json.name,function(t){this.name=this.json.name;this.json=t.data;this.nameNode.set("text",this.json.name);this.hostNode.set("text",this.json.host+" : "+this.json.port);this.adminNode.set("text",this.json.username);this.messageNode.set("text",this.json.message)}.bind(this))},destroy:function(){this.node.destroy();MWF.release(this)}});MWF.xApplication.Setting.servers.ApplicationServer.Document=new Class({Implements:[Events],initialize:function(t){this.server=t;this.list=this.server.list;this.app=this.server.app;this.json=this.server.json;this.container=this.list.explorer.container;this.css=this.app.css;this.apps=[];this.load()},load:function(){this.node=new Element("div",{styles:this.css.applicationServerDocumentNode}).inject(this.container);this.setNodeSize();this.show()},setNodeSize:function(){var t=this.server.node.getSize();var e=this.server.node.getPosition(this.server.node.getOffsetParent());this.node.setStyles({width:""+t.x+"px",height:""+t.y+"px",top:""+e.y+"px",left:""+e.x+"px"})},show:function(){var t=this.list.page.contentNodeArea.getSize();var e=this.list.page.contentNodeArea.getPosition(this.list.page.contentNodeArea.getOffsetParent());var i={width:""+t.x+"px",height:""+t.y+"px",top:""+e.y+"px",left:""+e.x+"px"};this.morph=new Fx.Morph(this.node,{duration:100,transition:Fx.Transitions.Sine.easeOut});this.morph.start(i).chain(function(){this.list.content.setStyle("display","none");this.createForm();this.setDocumentSizeFun=this.setDocumentSize.bind(this);this.setDocumentSize();this.app.addEvent("resize",this.setDocumentSizeFun)}.bind(this))},setDocumentSize:function(){var t=this.list.page.contentNodeArea.getSize();var e=this.actionNode.getSize();var i=t.y-e.y;this.inforNode.setStyle("height",""+i+"px");this.applicationAreaNode.setStyle("height",""+i+"px");this.node.setStyles({width:""+t.x+"px",height:""+t.y+"px"})},createForm:function(){this.createActions();this.createBaseInfo()},createActions:function(){this.actionNode=new Element("div",{styles:this.css.applicationServerDocumentActionNode}).inject(this.node);this.saveAction=new Element("div",{styles:this.css.applicationServerDocumentSaveNode}).inject(this.actionNode);if(this.server.name)this.deleteAction=new Element("div",{styles:this.css.applicationServerDocumentDeleteNode}).inject(this.actionNode);if(this.server.name)this.deployAction=new Element("div",{title:this.app.lp.deploy,styles:this.css.applicationServerDocumentDeployNode}).inject(this.actionNode);this.closeAction=new Element("div",{styles:this.css.applicationServerDocumentCloseNode}).inject(this.actionNode);this.saveAction.addEvents({mouseover:function(){this.saveAction.setStyles(this.css.applicationServerDocumentSaveNode_over)}.bind(this),mouseout:function(){this.saveAction.setStyles(this.css.applicationServerDocumentSaveNode)}.bind(this),mousedown:function(){this.saveAction.setStyles(this.css.applicationServerDocumentSaveNode_down)}.bind(this),mouseup:function(){this.saveAction.setStyles(this.css.applicationServerDocumentSaveNode_over)}.bind(this),click:function(t){this.saveDocument()}.bind(this)});if(this.deleteAction){this.deleteAction.addEvents({mouseover:function(){this.deleteAction.setStyles(this.css.applicationServerDocumentDeleteNode_over)}.bind(this),mouseout:function(){this.deleteAction.setStyles(this.css.applicationServerDocumentDeleteNode)}.bind(this),mousedown:function(){this.deleteAction.setStyles(this.css.applicationServerDocumentDeleteNode_down)}.bind(this),mouseup:function(){this.deleteAction.setStyles(this.css.applicationServerDocumentDeleteNode_over)}.bind(this),click:function(t){this.deleteDocument(t)}.bind(this)})}this.closeAction.addEvents({mouseover:function(){this.closeAction.setStyles(this.css.applicationServerDocumentCloseNode_over)}.bind(this),mouseout:function(){this.closeAction.setStyles(this.css.applicationServerDocumentCloseNode)}.bind(this),mousedown:function(){this.closeAction.setStyles(this.css.applicationServerDocumentCloseNode_down)}.bind(this),mouseup:function(){this.closeAction.setStyles(this.css.applicationServerDocumentCloseNode_over)}.bind(this),click:function(t){this.closeDocument()}.bind(this)});if(this.deployAction){this.deployAction.addEvents({mouseover:function(){this.deployAction.setStyles(this.css.applicationServerDocumentDeployNode_over)}.bind(this),mouseout:function(){this.deployAction.setStyles(this.css.applicationServerDocumentDeployNode)}.bind(this),mousedown:function(){this.deployAction.setStyles(this.css.applicationServerDocumentDeployNode_down)}.bind(this),mouseup:function(){this.deployAction.setStyles(this.css.applicationServerDocumentDeployNode_over)}.bind(this),click:function(t){this.deploy(t)}.bind(this)})}},createBaseInfo:function(){this.inforAreaNode=new Element("div",{styles:this.css.applicationServerDocumentInforAreaNode}).inject(this.node);this.inforNode=new Element("div",{styles:this.css.applicationServerDocumentInforNode}).inject(this.inforAreaNode);var t="<table cellSpacing='8px' width='90%' align='center'>"+"<tr><td>name<input value='"+(this.json.name||"")+"'/></td></tr>"+"<tr><td>order<input value='"+(this.json.order||"0")+"'/></td></tr>"+"<tr><td>containerType<input value='"+(this.json.containerType||"")+"'/></td></tr>"+"<tr><td>host<input value='"+(this.json.host||"")+"'/></td></tr>"+"<tr><td>port<input value='"+(this.json.port||"")+"'/></td></tr>"+"<tr><td>proxyHost<input value='"+(this.json.proxyHost||"")+"'/></td></tr>"+"<tr><td>proxyPort<input value='"+(this.json.proxyPort||"")+"'/></td></tr>"+"<tr><td>username<input value='"+(this.json.username||"")+"'/></td></tr>"+"<tr><td>password<input type='password' value='"+(this.json.password||"")+"'/></td></tr>"+"</table>";this.inforNode.set("html",t);var e=this.inforNode.getElements("td");var i=this.inforNode.getElements("input");e.setStyles(this.css.applicationServerDocumentTdNode);i.setStyles(this.css.applicationServerDocumentInputNode);this.applicationAreaNode=new Element("div",{styles:this.css.applicationServerDocumentApplicationAreaNode}).inject(this.inforAreaNode);this.applicationNode=new Element("div",{styles:this.css.applicationServerDocumentApplicationNode}).inject(this.applicationAreaNode);this.listApplications()},listApplications:function(){var t="<table cellPadding='5px' cellSpacing='0' width='100%' align='center'>"+"<tr><th align='left'>name</th><th align='left'>description</th><th align='left'>weight</th><th align='left'>deployed</th><th align='left'>plan</th></tr>"+"</table>";this.applicationNode.set("html",t);this.applicationTable=this.applicationNode.getElement("table");this.list.getDepolyableList(function(){this.list.depolyableList.each(function(t,e){var i="#FFF";if(e%2==0)i="#f3f4ff";this.apps.push(new MWF.xApplication.Setting.servers.ApplicationServer.Document.App(this,t.name,i))}.bind(this))}.bind(this))},closeDocument:function(){this.node.empty();this.list.content.setStyle("display","block");var t=this.server.node.getSize();var e=this.server.node.getPosition(this.server.node.getOffsetParent());var i={width:""+t.x+"px",height:""+t.y+"px",top:""+e.y+"px",left:""+e.x+"px"};this.morph.start(i).chain(function(){this.destroy()}.bind(this))},destroy:function(){this.app.removeEvent("resize",this.setDocumentSizeFun);this.apps.each(function(t){t.destroy()}.bind(this));this.node.destroy();this.list.currentDoc=null;MWF.release(this)},saveDocument:function(){debugger;var t=this.inforNode.getElements("input");this.json.name=t[0].get("value");this.json.order=t[1].get("value");this.json.host=t[3].get("value");this.json.port=t[4].get("value");this.json.proxyHost=t[5].get("value");this.json.proxyPort=t[6].get("value");this.json.username=t[7].get("value");this.json.password=t[8].get("value");this.apps.each(function(t){if(t.weightInput){if(t.planAppArr.length){var e=t.weightInput.get("value").toFloat();if(!isNaN(e)){t.planAppArr[0].weight=e}}}}.bind(this));if(this.server.name){this.app.actions.updateAppServer(this.server.name,this.json,function(){this.closeDocument();this.server.reload()}.bind(this))}else{this.app.actions.addAppServer(this.json,function(){this.closeDocument();this.server.reload()}.bind(this))}},deleteDocument:function(t){var e=this;this.app.confirm("warn",t,this.app.lp.deleteAppServer_title,this.app.lp.deleteAppServer,"350","120",function(){e.app.actions.removeAppServer(e.server.name,function(){this.closeDocument();this.server.destroy()}.bind(e));this.close()},function(){this.close()})},deploy:function(t){var e=this;this.app.confirm("warn",t,this.app.lp.deployAppServer_title,{html:this.app.lp.deployAppServer},"350","150",function(){var t=this.content.getElement("input");var i="false";if(t.checked)i="true";var s=e.inforNode.getElements("input");e.json.name=s[0].get("value");e.json.order=s[1].get("value");e.json.host=s[3].get("value");e.json.port=s[4].get("value");e.json.username=s[5].get("value");e.json.password=s[6].get("value");e.json.weight=s[7].get("value");if(e.server.name){e.app.actions.updateAppServer(e.server.name,e.json,function(){this.app.actions.deploy(this.server.name,i,function(){this.closeDocument();this.server.reload()}.bind(this))}.bind(e))}this.close()},function(){this.close()})}});MWF.xApplication.Setting.servers.ApplicationServer.Document.App=new Class({Implements:[Events],initialize:function(t,e,i){this.document=t;this.server=this.document.server;this.app=this.server.app;this.json=this.server.json;this.css=this.app.css;this.appName=e;this.table=this.document.applicationTable;this.status="";this.load(i)},load:function(t){this.checkbox=new Element("input",{type:"checkbox",name:this.appName});this.tr=new Element("tr",{styles:{"background-color":t}}).inject(this.table);var e=new Element("td",{text:this.appName}).inject(this.tr);e=new Element("td").inject(this.tr);this.weightTd=new Element("td").inject(this.tr);this.weightTd.setStyle("width","80px");e=new Element("td").inject(this.tr);var i=this.json.contextList.indexOf(this.appName);this.planAppArr=this.json.planList.filter(function(t,e){return t.name==this.appName}.bind(this));if(i!=-1&&this.planAppArr.length){new Element("div",{styles:this.css.applicationServerDocumentApplicationDeployedNode}).inject(e);this.checkbox.set("checked",true);this.status="depolyed"}else if(i==-1&&this.planAppArr.length){new Element("div",{styles:this.css.applicationServerDocumentApplicationReadyDeployNode}).inject(e);this.checkbox.set("checked",true);this.status="readyDepoly"}else if(i!=-1&&!this.planAppArr.length){new Element("div",{styles:this.css.applicationServerDocumentApplicationReadyDeleteNode}).inject(e);this.status="readyDelete"}else{new Element("div",{styles:this.css.applicationServerDocumentApplicationNotDepolyNode}).inject(e);this.status=""}if(this.checkbox.get("checked")){this.createWeightInput()}e=new Element("td").inject(this.tr);this.checkbox.inject(e);var s=this;this.checkbox.addEvent("click",function(){var t=this.getParent().getPrevious("td");var e=t.getElement("div");var i=this.get("name");var n=s.json.planList.filter(function(t,e){return t.name==i});if(this.checked){s.createWeightInput();if(!n.length)s.json.planList.push({name:i,weight:100});if(s.status=="depolyed"){e.setStyle("background","url(/x_component_Setting/$Main/default/icon/deployed.png) no-repeat center center")}else{e.setStyle("background","url(/x_component_Setting/$Main/default/icon/readyDeploy.png) no-repeat center center")}}else{s.removeWeightInput();if(n.length)s.json.planList.erase(n[0]);if(s.status=="depolyed"){e.setStyle("background","url(/x_component_Setting/$Main/default/icon/readyDelete.png) no-repeat center center")}else{e.setStyle("background","")}}})},createWeightInput:function(){if(!this.weightInput){this.weightInput=new Element("input",{styles:{border:"1px solid #BBB",width:"80px"},type:"text",value:this.planAppArr.length?this.planAppArr[0].weight:""}).inject(this.weightTd)}},removeWeightInput:function(){if(this.weightInput){this.weightInput.destroy();this.weightInput=null}},destroy:function(){this.tr.destroy();MWF.release(this)}});