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;h=f79a41bf979191d1575be4d54154f4ac6e6c35ab;hb=ac1edd931feb89d91bc726d4df2157988074c3d6;hp=f3b4ba8395184aa4efa8080576ff7035b56ff3c5;hpb=02e323ce2bac40ffb9d067788c61a3e41300a9fb;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..f79a41bf9 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,69 @@ 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 + var req = org.argeo.slc.ria.SlcApi.getRealizedFlowsService(uuid); + var handler = function(xmlDoc){ + var realizedFlows = org.argeo.ria.util.Element.selectNodes(xmlDoc, "slc:slc-execution/realized-flows/slc:realized-flow"); + for(var i=0;i