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
},\r
"opendetail" : {\r
label : "Logs Detail",\r
- icon : "org.argeo.slc.ria/mime-xls.png",\r
+ icon : "org/argeo/slc/ria/mime-xls.png",\r
shortcut : null,\r
enabled : false,\r
menu : null,\r
},\r
"reopenrealized" : {\r
label : "Re-open",\r
- icon : "org.argeo.slc.ria/document-open.png",\r
+ icon : "org/argeo/slc/ria/document-open.png",\r
shortcut : "Control+o",\r
enabled : false,\r
menu : null,\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
+ 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
\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
+ 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
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
table.scrollCellVisible(0, dataMap.lastRow);\r
});\r
\r
- \r
- var tA = new qx.ui.container.Composite(new qx.ui.layout.Canvas()); \r
- tA.setHeight(120);\r
- \r
- var textArea = new qx.ui.form.TextArea(); \r
- tA.add(textArea, {left:0,top:0, right:0,bottom:0});\r
- \r
- var okButton = new qx.ui.form.Button("Done");\r
- okButton.setZIndex(2000);\r
- tA.add(okButton, {bottom:20,right:20});\r
- okButton.addListener("execute", function(){\r
- tA.setVisibility("excluded");\r
- });\r
- \r
- textArea.setNativeContextMenu(true);\r
- window.add(tA);\r
- var cpButton = new qx.ui.toolbar.Button("Copy As Text", "org.argeo.slc.ria/edit-copy.png");\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 all = tableModel.getData();\r
- var string = "";\r
- for(var i=0;i<all.length;i++){\r
- for(var j=0;j<all[i].length;j++){\r
- string += all[i][j] + "\t";\r
- }\r
- string += "\n";\r
- }\r
- tA.setVisibility("visible");\r
- textArea.setValue(string);\r
- new qx.util.DeferredCall(function(){\r
- textArea.setSelection(0, string.length);\r
- }).schedule(); \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
- tA.setVisibility("excluded");\r
- \r
- \r
\r
// Call service to load execution message\r
- this._loadSlcExecution(uuid, tableModel);\r
+ this._loadSlcExecutionSteps(uuid, tableModel, false);\r
\r
var poller = new qx.event.Timer(3000);\r
poller.addListener("interval", function(e){\r
- this._loadSlcExecution(uuid, tableModel);\r
+ this._loadSlcExecutionSteps(uuid, tableModel, true);\r
}, this);\r
\r
window.addListener("close", function(){\r
poller.start();\r
}, \r
\r
- _loadSlcExecution : function(uuid, tableModel){\r
- var req = org.argeo.slc.ria.SlcApi.getSlcExecutionService(uuid);\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 = [];\r
+ var tableLines = (poller?tableModel.getData():[]);\r
var parser = org.argeo.ria.util.Element;\r
- var slcSteps = parser.selectNodes(xmlDoc, "slc:slc-execution/slc:steps/slc:slc-execution-step");\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 date = parser.getSingleNodeText(step, "slc:begin");\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, parser.getSingleNodeText(logLines[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
+ tableLines.push(["", "", "", parser.getSingleNodeText(logLines[j], ".")]); \r
}\r
}\r
}else{\r
- tableLines.push([date, type, ""]);\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