init : {\r
"reloadlogs" : {\r
label : "Reload Logs", \r
- icon : "org.argeo.slc.ria/view-refresh.png",\r
+ icon : "org/argeo/slc/ria/view-refresh.png",\r
shortcut : "Control+r",\r
enabled : true,\r
menu : null,\r
toolbar : null,\r
callback : function(e){\r
- this._reloadLogger();\r
+ this.reloadLogger();\r
},\r
command : null\r
},\r
- "openrealized" : {\r
- label : "Re-open",\r
- icon : "org.argeo.slc.ria/document-open.png",\r
+ "opendetail" : {\r
+ label : "Logs Detail",\r
+ icon : "org/argeo/slc/ria/mime-xls.png",\r
+ shortcut : null,\r
+ enabled : false,\r
+ menu : null,\r
+ toolbar : "slc_logs",\r
+ callback : function(e){\r
+ var selection = this.getViewSelection();\r
+ var rowData = selection.getNodes()[0];\r
+ this.openDetail(rowData);\r
+ },\r
+ selectionChange : function(viewId, selection){\r
+ if(viewId != "logger") return;\r
+ this.setEnabled((selection!=null && selection.length==1));\r
+ },\r
+ command : null \r
+ },\r
+ "reopenrealized" : {\r
+ label : "Re-open Process",\r
+ icon : "org/argeo/slc/ria/document-open.png",\r
shortcut : "Control+o",\r
enabled : false,\r
menu : null,\r
- toolbar : "realized",\r
+ toolbar : "slc_logs",\r
callback : function(e){\r
var selection = this.getViewSelection();\r
var rowData = selection.getNodes()[0];\r
* \r
*/\r
load : function(){\r
- this._reloadLogger();\r
- this.UIBus.addListener("newSlcExecution", this._reloadLogger, this);\r
- this.UIBus.addListener("updateSlcExecutionStatus", this._reloadLogger, this);\r
+ this.reloadLogger();\r
+ this.UIBus.addListener("newSlcExecution", this.reloadLogger, this);\r
+ this.UIBus.addListener("updateSlcExecutionStatus", this.reloadLogger, this);\r
},\r
\r
addScroll : function(){\r
},\r
\r
close : function(){\r
- this.UIBus.removeListener("newSlcExecution", this._reloadLogger, this);\r
- this.UIBus.removeListener("updateSlcExecutionStatus", this._reloadLogger, this);\r
+ this.UIBus.removeListener("newSlcExecution", this.reloadLogger, this);\r
+ this.UIBus.removeListener("updateSlcExecutionStatus", this.reloadLogger, this);\r
},\r
\r
openRealized : function(logData){\r
var CHECK_HOST = false;\r
\r
var uuid = logData[2];\r
- var host = "charlie";// logData[1];\r
+ var host = logData[1];\r
\r
\r
// 1. Check that both associated views are here\r
}\r
\r
// 3. Call service to load execution message\r
- var req = org.argeo.slc.ria.SlcApi.getRealizedFlowsService(uuid);\r
- var handler = function(xmlDoc){ \r
- var realizedFlows = org.argeo.ria.util.Element.selectNodes(xmlDoc, "slc:slc-execution/realized-flows/slc:realized-flow");\r
- for(var i=0;i<realizedFlows.length;i++){\r
- var newEntrySpec = new org.argeo.slc.ria.execution.BatchEntrySpec(null, null, realizedFlows[i]); \r
+ var req = org.argeo.slc.ria.SlcApi.getSlcExecutionService(uuid);\r
+ var handler = function(xmlDoc){ \r
+ var realizedFlows = org.argeo.ria.util.Element.selectNodes(xmlDoc, "slc:slc-execution/slc:realized-flows/slc:realized-flow");\r
+ for(var i=0;i<realizedFlows.length;i++){ \r
+ var newEntrySpec = new org.argeo.slc.ria.execution.BatchEntrySpec(null, null, realizedFlows[i]);\r
batchView.appendBatchEntrySpec(newEntrySpec);\r
} \r
};\r
- req.addListener("completed", function(response){\r
+ req.addListener("completed", function(response){ \r
handler(response.getContent());\r
});\r
// STUB CASE\r
+ /*\r
req.addListener("failed", function(){\r
if(!window.xmlExecStub || !window.xmlExecStub[uuid]){ \r
return;\r
var xmlDoc = window.xmlExecStub[uuid];\r
handler(xmlDoc);\r
}); \r
+ */\r
req.send();\r
},\r
\r
+ openDetail : function(logData){\r
+ \r
+ var uuid = logData[2];\r
+ var window = new qx.ui.window.Window("Logs Detail", "org/argeo/slc/ria/mime-xls.png");\r
+ window.setLayout(new qx.ui.layout.VBox(0));\r
+ window.setContentPadding(0); \r
+ window.open();\r
+ org.argeo.ria.components.ViewsManager.getInstance().getApplicationRoot().add(window, {\r
+ top : '20%',\r
+ left : '20%',\r
+ width: '60%',\r
+ height: '60%'\r
+ });\r
+ \r
+ var tBar = new qx.ui.toolbar.ToolBar();\r
+ window.add(tBar);\r
+ var menuButton = new qx.ui.toolbar.Button("Close", "org/argeo/slc/ria/window-close.png");\r
+ tBar.add(menuButton);\r
+ menuButton.addListener("execute", function(e){\r
+ window.close();\r
+ });\r
+ \r
+ var tableModel = new qx.ui.table.model.Simple();\r
+ var table = new org.argeo.ria.components.ui.Table(tableModel, {\r
+ "date":{NAME : "Date", WIDTH:180}, \r
+ "type":{NAME : "Type", WIDTH:90, ALIGN:"CENTER"}, \r
+ "thread":{NAME : "Thread", WIDTH:90, ALIGN:"CENTER"}, \r
+ "log":"Log"\r
+ });\r
+ table.setStatusBarVisible(true);\r
+ window.add(table, {flex:1});\r
+ window.setAllowMinimize(false);\r
+ window.setResizable(true, true, true, true);\r
+ \r
+ tableModel.addListener("dataChanged", function(event){\r
+ if(!event.getData()) return;\r
+ var dataMap = event.getData();\r
+ table.scrollCellVisible(0, dataMap.lastRow);\r
+ });\r
+ \r
+ var cpButton = new qx.ui.toolbar.Button("Download", "org/argeo/slc/ria/document-save-as.png");\r
+ tBar.add(cpButton);\r
+ cpButton.addListener("execute", function(e){\r
+ var downloadUrl = org.argeo.slc.ria.SlcApi.DEFAULT_CONTEXT+"/"+org.argeo.slc.ria.SlcApi.DOWNLOAD_SLCEXEC_STEPS + "?ext=log&uuid=" + uuid;\r
+ org.argeo.ria.Application.INSTANCE.javascriptDownloadLocation(downloadUrl);\r
+ });\r
+ \r
+ var reopButton = new qx.ui.toolbar.Button("Re-open Process", "org/argeo/slc/ria/document-open.png");\r
+ tBar.add(reopButton);\r
+ reopButton.addListener("execute", function(e){\r
+ this.openRealized(logData);\r
+ }, this);\r
+ \r
+ // Call service to load execution message\r
+ this._loadSlcExecutionSteps(uuid, tableModel, false);\r
+ \r
+ var poller = new qx.event.Timer(3000);\r
+ poller.addListener("interval", function(e){\r
+ this._loadSlcExecutionSteps(uuid, tableModel, true);\r
+ }, this);\r
+ \r
+ window.addListener("close", function(){\r
+ poller.stop();\r
+ }, this);\r
+ poller.start();\r
+ }, \r
+\r
+ _loadSlcExecutionSteps : function(uuid, tableModel, poller){\r
+ var req;\r
+ var lastUuid = tableModel.getUserData("lastStepUuid");\r
+ if(!poller || !lastUuid){\r
+ req = org.argeo.slc.ria.SlcApi.getTailSlcExecutionStepService(uuid, 200, null);\r
+ }else{\r
+ req = org.argeo.slc.ria.SlcApi.getTailSlcExecutionStepService(uuid, null, lastUuid);\r
+ }\r
+ req.addListener("completed", function(response){ \r
+ var xmlDoc = response.getContent();\r
+ var tableLines = (poller?tableModel.getData():[]);\r
+ var parser = org.argeo.ria.util.Element;\r
+ var slcSteps = parser.selectNodes(xmlDoc, "slc:object-list/slc:slc-execution-step");\r
+ for(var i=0;i<slcSteps.length;i++){ \r
+ var step = slcSteps[i];\r
+ var stepUuid = parser.getSingleNodeText(step, "@uuid");\r
+ var date = parser.getSingleNodeText(step, "slc:timestamp");\r
+ var type = parser.getSingleNodeText(step, "slc:type");\r
+ var thread = parser.getSingleNodeText(step, "slc:thread");\r
+ var logLines = parser.selectNodes(step, "slc:log-lines/slc:log-line");\r
+ if(logLines.length > 0){\r
+ tableLines.push([date, type, thread, parser.getSingleNodeText(logLines[0], ".")]);\r
+ if(logLines.length>1){\r
+ for(var j=1;j<logLines.length;j++){\r
+ tableLines.push(["", "", "", parser.getSingleNodeText(logLines[j], ".")]); \r
+ }\r
+ }\r
+ }else{\r
+ tableLines.push([date, type, thread, ""]);\r
+ }\r
+ }\r
+ if(slcSteps.length){\r
+ tableModel.setUserData("lastStepUuid", stepUuid);\r
+ }\r
+ tableModel.setData(tableLines);\r
+ });\r
+ req.send();\r
+ \r
+ },\r
+ \r
/**\r
* Creates the applet layout\r
*/\r
return new qx.ui.table.columnmodel.Resize(obj)\r
}\r
});\r
+ this.logPane.addListener("cellDblclick", function(e){\r
+ this.getCommands()["opendetail"].command.execute();\r
+ }, this);\r
+ \r
var selectionModel = this.logPane.getSelectionModel();\r
- selectionModel.addListener("changeSelection", function(e){\r
- var viewSelection = this.getViewSelection();\r
- viewSelection.setViewId("logger");\r
- viewSelection.clear();\r
- selectionModel.iterateSelection(function(index){\r
+ selectionModel.addListener("changeSelection", function(e){ \r
+ var viewSelection = this.getViewSelection(); \r
+ viewSelection.setViewId("logger"); \r
+ viewSelection.clear(); \r
+ selectionModel.iterateSelection(function(index){ \r
viewSelection.addNode(this.logModel.getRowData(index));\r
}, this);\r
}, this);\r
/**\r
* Refresh the data model.\r
*/\r
- _reloadLogger : function(){\r
+ reloadLogger : function(){\r
var request = org.argeo.slc.ria.SlcApi.getListSlcExecutionsService();\r
request.addListener("completed", function(response){ \r
var messages = org.argeo.ria.util.Element.selectNodes(response.getContent(), "//slc:slc-execution");\r
[slcExec.getDate(), slcExec.getHost(), slcExec.getUuid(), slcExec.getStatus()]\r
]); \r
}\r
+ this.logModel.sortByColumn(0, false);\r
}, this);\r
request.send(); \r
}\r