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=d925f63b752ddc33b270d81983e030904b453b76;hb=a1eea4ff2521c189359673954b0372c25f9f1141;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..d925f63b7 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,43 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet", this._reloadLogger(); }, command : null - } + }, + "opendetail" : { + label : "Logs Detail", + icon : "org.argeo.slc.ria/mime-xls.png", + shortcut : null, + enabled : false, + menu : null, + toolbar : "slc_logs", + callback : function(e){ + var selection = this.getViewSelection(); + var rowData = selection.getNodes()[0]; + this.openDetail(rowData); + }, + selectionChange : function(viewId, selection){ + if(viewId != "logger") return; + this.setEnabled((selection!=null && selection.length==1)); + }, + command : null + }, + "reopenrealized" : { + label : "Re-open", + icon : "org.argeo.slc.ria/document-open.png", + shortcut : "Control+o", + enabled : false, + menu : null, + toolbar : "slc_logs", + 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 +114,130 @@ 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 = 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.getSlcExecutionService(uuid); + var handler = function(xmlDoc){ + var realizedFlows = org.argeo.ria.util.Element.selectNodes(xmlDoc, "slc:slc-execution/slc:realized-flows/slc:realized-flow"); + for(var i=0;i 0){ + tableLines.push([date, type, parser.getSingleNodeText(logLines[0], ".")]); + if(logLines.length>1){ + for(var j=1;j