init : {
"close" : {
label : "Close Current",
- icon : "org.argeo.slc.ria/window-close.png",
+ icon : "org/argeo/slc/ria/window-close.png",
shortcut : "Control+w",
enabled : true,
menu : "Test",
init : {\r
"submitform" : {\r
label : "Execute Batch",\r
- icon : "org.argeo.slc.ria/media-playback-start.png",\r
+ icon : "org/argeo/slc/ria/media-playback-start.png",\r
shortcut : null,\r
enabled : false,\r
menu : "Launcher",\r
},\r
"removefrombatch" : {\r
label : "Remove from batch",\r
- icon : "org.argeo.slc.ria/edit-delete.png",\r
+ icon : "org/argeo/slc/ria/edit-delete.png",\r
shortcut : null,\r
enabled : false,\r
menu : "Launcher",\r
},\r
"clearbatch" : {\r
label : "Clear batch",\r
- icon : "org.argeo.slc.ria/user-trash-full.png",\r
+ icon : "org/argeo/slc/ria/user-trash-full.png",\r
shortcut : null,\r
enabled : true,\r
menu : "Launcher",\r
\r
this.dropDecorator = new qx.ui.decoration.Background(); \r
this.dropDecorator.set({\r
- backgroundImage : "org.argeo.slc.ria/drophere.gif",\r
+ backgroundImage : "org/argeo/slc/ria/drophere.gif",\r
backgroundRepeat : "no-repeat"\r
});\r
\r
\r
appendBatchEntrySpec: function(batchEntrySpec, icon, after){\r
\r
- var item = new qx.ui.form.ListItem(batchEntrySpec.getLabel(), icon || "org.argeo.slc.ria/system.png");\r
+ var item = new qx.ui.form.ListItem(batchEntrySpec.getLabel(), icon || "org/argeo/slc/ria/system.png");\r
item.setUserData("batchEntrySpec", batchEntrySpec);\r
item.setPaddingTop(1);\r
item.setPaddingBottom(2);\r
init : {\r
"addtobatch" : {\r
label : "Add to batch",\r
- icon : "org.argeo.slc.ria/list-add.png",\r
+ icon : "org/argeo/slc/ria/list-add.png",\r
shortcut : null,\r
enabled : true,\r
menu : null,\r
},\r
"reloadfull" : {\r
label : "Reload Agents",\r
- icon : "org.argeo.slc.ria/view-refresh.png",\r
+ icon : "org/argeo/slc/ria/view-refresh.png",\r
shortcut : "control+h",\r
enabled : true,\r
menu : "Launcher",\r
}, \r
"reloadtree" : {\r
label : "Reload Node",\r
- icon : "org.argeo.slc.ria/view-refresh.png",\r
+ icon : "org/argeo/slc/ria/view-refresh.png",\r
shortcut : null,\r
enabled : false,\r
menu : null,\r
agentFolder.setUserData("agentUuid", uuid);\r
if(preferredHosts && preferredHosts instanceof Array && qx.lang.Array.contains(preferredHosts, host)){\r
folder.addAtBegin(agentFolder);\r
- agentFolder.setIcon("org.argeo.slc.ria/computer_bookmarked.png");\r
+ agentFolder.setIcon("org/argeo/slc/ria/computer_bookmarked.png");\r
}else{\r
folder.add(agentFolder);\r
- agentFolder.setIcon("org.argeo.slc.ria/computer.png");\r
+ agentFolder.setIcon("org/argeo/slc/ria/computer.png");\r
}\r
}\r
if(newAgents){\r
}\r
folder.setUserData("agentsMap", agents);\r
folder.setLoaded(true);\r
- folder.getTree().fireEvent("changeSelection"); \r
+ folder.getTree().fireDataEvent("changeSelection", folder.getTree().getSelection()); \r
});\r
req.addListener("failed", function(response) {\r
folder.setLoaded(true);\r
name : key,\r
version : module.getVersion()\r
});\r
- versionFolder.setIcon("org.argeo.slc.ria/archive.png");\r
+ versionFolder.setIcon("org/argeo/slc/ria/archive.png");\r
versionFolder.setUserData("agentUuid", agentId);\r
var sep = (module.getDescription()!=""?" - ":"");\r
org.argeo.slc.ria.FlowsSelectorView.attachToolTip(versionFolder, key + ' (' + module.getVersion() + ')'+sep+module.getDescription());\r
}\r
}\r
folder.setLoaded(true);\r
- folder.getTree().fireEvent("changeSelection");\r
+ folder.getTree().fireDataEvent("changeSelection", folder.getTree().getSelection());\r
});\r
req.addListener("failed", function(response) {\r
folder.setLoaded(true);\r
if(execFlows[key].getDescription() != ""){\r
org.argeo.slc.ria.FlowsSelectorView.attachToolTip(file, execFlows[key].getDescription());\r
}\r
- file.setIcon("org.argeo.slc.ria/system.png");\r
+ file.setIcon("org/argeo/slc/ria/system.png");\r
file.setUserData("executionModule", executionModule);\r
file.setUserData("executionFlow", execFlows[key]);\r
file.setUserData("agentUuid", agentUuid);\r
folder.appendDragData(file);\r
}\r
folder.setLoaded(true);\r
- folder.getTree().fireEvent("changeSelection");\r
+ folder.getTree().fireDataEvent("changeSelection", folder.getTree().getSelection());\r
});\r
req.addListener("failed", function(response) {\r
folder.setLoaded(true);\r
}\r
if(qx.lang.Array.contains(prefArray, hostName)){\r
qx.lang.Array.remove(prefArray, hostName);\r
- agentNode.setIcon("org.argeo.slc.ria/computer.png");\r
+ agentNode.setIcon("org/argeo/slc/ria/computer.png");\r
}else{\r
prefArray.push(hostName);\r
- agentNode.setIcon("org.argeo.slc.ria/computer_bookmarked.png");\r
+ agentNode.setIcon("org/argeo/slc/ria/computer_bookmarked.png");\r
var parent = agentNode.getParent();\r
parent.remove(agentNode);\r
parent.addAtBegin(agentNode);\r
"Loading Agents", dragData);\r
this.tree.setRoot(this.rootNode);\r
this.tree.setHideRoot(true);\r
- this.rootNode.setPersistentTreeID("org.argeo.slc.ria.FlowsSelector")\r
+ this.rootNode.setPersistentTreeID("org/argeo/slc/ria.FlowsSelector")\r
this.rootNode.setOpen(true);\r
this.tree.setContextMenu(org.argeo.ria.event.CommandsManager\r
.getInstance().createMenuFromIds(["addtobatch",\r
LIST_MODULES_SERVICE : "listModulesDescriptors.service",\r
GET_EXECUTION_DESC_SERVICE : "getExecutionDescriptor.service",\r
GET_SLC_EXECUTION_SERVICE : "getSlcExecution.service",\r
+ TAIL_SLCEXEC_STEP_COUNT : "tailSlcExecutionStepsCount.service",\r
+ TAIL_SLCEXEC_STEP_OFFSET : "tailSlcExecutionStepsOffset.service",\r
+ DOWNLOAD_SLCEXEC_STEPS : "downloadSlcExecution.service",\r
+ \r
RELOAD_BUNDLE_SERVICE : "reloadBundle.service",\r
AMQ_SERVICE : "amq",\r
\r
return request;\r
},\r
\r
+ getTailSlcExecutionStepService : function(executionUuid, stepCount, offset, fireReloadEventType, iLoadStatusables){ \r
+ var request = org.argeo.slc.ria.SlcApi.getServiceRequest(\r
+ (offset?org.argeo.slc.ria.SlcApi.TAIL_SLCEXEC_STEP_OFFSET:org.argeo.slc.ria.SlcApi.TAIL_SLCEXEC_STEP_COUNT),\r
+ fireReloadEventType,\r
+ iLoadStatusables\r
+ );\r
+ request.setParameter("uuid", executionUuid);\r
+ if(offset){\r
+ request.setParameter("stepOffsetUuid", offset);\r
+ }else{\r
+ request.setParameter("stepCount", stepCount);\r
+ }\r
+ return request;\r
+ }, \r
+ \r
/**\r
* List currently available agents queues.\r
* @param fireReloadEventType {String} Event type to trigger (optionnal)\r
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
for(var i=0;i<attributes.length;i++){\r
this.addAttribute(attribute.getAttribute("name"), attribute.firstChild);\r
}\r
- var stepsDates = org.argeo.ria.util.Element.selectNodes(slcExecXml, "slc:steps/slc:slc-execution-step/slc:begin", NSMap);\r
+ var stepsDates = org.argeo.ria.util.Element.selectNodes(slcExecXml, "slc:steps/slc:slc-execution-step/slc:timestamp", NSMap);\r
if(stepsDates.length){\r
this.setDate(org.argeo.ria.util.Element.getSingleNodeText(stepsDates[stepsDates.length-1], ".", NSMap));\r
}\r
init : {\r
"updateData" : {\r
label : "Edit Execution Specs",\r
- icon : "org.argeo.slc.riadocument-open.png",\r
+ icon : "org/argeo/slc/ria/document-open.png",\r
shortcut : null,\r
enabled : false,\r
menu : null,\r
value = cellEditor.getValue();
}else{
var sel = cellEditor.getModelSelection();
- value = sel[0];
+ value = sel.getItem(0);
}
var validationFunc = cellEditor.getUserData("validationFunc");
init : {\r
"reload" : {\r
label : "Reload",\r
- icon : "org.argeo.slc.ria/view-refresh.png",\r
+ icon : "org/argeo/slc/ria/view-refresh.png",\r
shortcut : "control+h",\r
enabled : true,\r
menu : "Distributions",\r
},\r
"uninstall" : {\r
label : "Uninstall",\r
- icon : "org.argeo.slc.ria/window-close.png",\r
+ icon : "org/argeo/slc/ria/window-close.png",\r
shortcut: null,\r
enabled : false,\r
menu : "Distributions",\r