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=7d644316e325e7b86b10e68a328d5025d4a15214;hpb=d8e9131cdd34b663a03008df8eb97616694259ce;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 7d644316e..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 @@ -33,7 +33,7 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet", init : { "reloadlogs" : { label : "Reload Logs", - icon : "resource/slc/view-refresh.png", + icon : "org.argeo.slc.ria/view-refresh.png", shortcut : "Control+r", enabled : true, menu : null, @@ -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 + } } } }, @@ -57,16 +93,16 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet", this.setView(viewPane); this.setViewSelection(new org.argeo.ria.components.ViewSelection(viewPane.getViewId())); this._createLayout(); + this.UIBus = org.argeo.ria.event.UIBus.getInstance(); }, /** * */ load : function(){ - this._reloadLogger(); - this.timer = new qx.event.Timer(15000); - this.timer.addListener("interval", this._reloadLogger, this); - this.timer.start(); + this._reloadLogger(); + this.UIBus.addListener("newSlcExecution", this._reloadLogger, this); + this.UIBus.addListener("updateSlcExecutionStatus", this._reloadLogger, this); }, addScroll : function(){ @@ -74,9 +110,134 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet", }, close : function(){ - this.timer.stop(); + this.UIBus.removeListener("newSlcExecution", this._reloadLogger, this); + 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