X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Forg.argeo.slc.ria%2Fsrc%2Fargeo-ria-lib%2Fslc%2Fclass%2Forg%2Fargeo%2Fslc%2Fria%2FSlcExecLoggerApplet.js;fp=server%2Forg.argeo.slc.ria%2Fsrc%2Fargeo-ria-lib%2Fslc%2Fclass%2Forg%2Fargeo%2Fslc%2Fria%2FSlcExecLoggerApplet.js;h=8a5917e008a9bacd7ae8b92a743510933b4afea3;hb=f59509dd7a5d4aed1a1b4f8fae72883b3911b16b;hp=f3b4ba8395184aa4efa8080576ff7035b56ff3c5;hpb=af874b12bcb864e1ee2b48e8d6e1fea3a584c53d;p=gpl%2Fargeo-slc.git diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecLoggerApplet.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecLoggerApplet.js index f3b4ba839..8a5917e00 100644 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecLoggerApplet.js +++ b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecLoggerApplet.js @@ -42,7 +42,25 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet", this._reloadLogger(); }, command : null - } + }, + "openrealized" : { + label : "Re-open", + icon : "org.argeo.slc.ria/document-open.png", + shortcut : "Control+o", + enabled : false, + menu : null, + toolbar : "realized", + callback : function(e){ + var selection = this.getViewSelection(); + var rowData = selection.getNodes()[0]; + this.openRealized(rowData); + }, + selectionChange : function(viewId, selection){ + if(viewId != "logger") return; + this.setEnabled((selection!=null && selection.length==1)); + }, + command : null + } } } }, @@ -78,6 +96,61 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet", this.UIBus.removeListener("updateSlcExecutionStatus", this._reloadLogger, this); }, + openRealized : function(logData){ + + // DEBUG PURPOSE + var CHECK_HOST = false; + + var uuid = logData[2]; + var host = "charlie";// logData[1]; + + + // 1. Check that both associated views are here + var batchView; + var flowsView; + try{ + batchView = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("batch").getContent(); + flowsView = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("selector").getContent(); + }catch(e){ + this.debug("Cannot find either bath or flows IView!"); + } + if(!batchView || !flowsView) return; + + // 2. Check that at least a host with the same name exists. + var agentsMap = flowsView.getAgentsMap(); + var currentBatchId = batchView.getBatchAgentId(); + if(currentBatchId != null){ + var currentHost = agentsMap[currentBatchId]; + if(currentHost != host){ + this.error("Cannot re-open these flows on a different host. Please clear the batch first."); + return; + } + } + if(!qx.lang.Object.contains(agentsMap, host)){ + this.error("Cannot find any agent running on '"+host+"'! Please start an agent on this host."); + return; + } + //console.log(currentBatchId); + if(currentBatchId == null){ + var defaultId = qx.lang.Object.getKeyFromValue(agentsMap, host); + batchView.setBatchAgentId(defaultId); + } + + // 3. Call service to load execution message + if(!window.xmlExecStub || !window.xmlExecStub[uuid]){ + throw new Error("Cannot find window.xmlExecStub['"+uuid+"']"); + return; + } + var xmlDoc = window.xmlExecStub[uuid]; + + // 4. Now send all realized flows to the batch + var realizedFlows = org.argeo.ria.util.Element.selectNodes(xmlDoc, "slc:slc-execution/realized-flows/slc:realized-flow"); + for(var i=0;i