label : "Confirm on batch deletion",\r
type : "boolean",\r
defaultValue : true\r
+ },\r
+ "slc.batch.autoclear" : {\r
+ label : "Autoclear batch on execution",\r
+ type : "boolean",\r
+ defaultValue : false\r
}\r
}\r
},\r
menu : "Launcher",\r
toolbar : "batch",\r
callback : function(e) {\r
- if (this.getBatchAgentId()) {\r
- this.executeBatchOnAgent(this.getBatchAgentId());\r
+ var batchAgentId = this.getBatchAgentId();\r
+ if (!batchAgentId) {\r
+ return; \r
}\r
+ var prefName = "slc.batch.autoclear";\r
+ var prefValue = this.getRiaPreferenceValue(prefName);\r
+ if(prefValue !== null && prefValue === true){\r
+ this.executeBatchOnAgent(batchAgentId, true); \r
+ }else{\r
+ this.executeBatchOnAgent(batchAgentId, false);\r
+ }\r
+ return;\r
+ var modal = new org.argeo.ria.components.Modal("Clear?", null);\r
+ modal.addYesNoReminder("Do you want to clear the batch automatically after execution?", prefName);\r
+ modal.addListener("cancel", function(e){\r
+ this.executeBatchOnAgent(batchAgentId, false);\r
+ }, this);\r
+ modal.addListener("ok", function(e){\r
+ this.executeBatchOnAgent(batchAgentId, true);\r
+ }, this);\r
+ modal.attachAndShow(); \r
},\r
command : null\r
},\r
toolbar : "batch",\r
callback : function(e) {\r
var sel = this.list.getSortedSelection();\r
- var confirmPref = this.getRiaPreferenceValue("slc.batch.delete.confirm");\r
- this.debug(confirmPref);\r
+ var confirmPref = this.getRiaPreferenceValue("slc.batch.delete.confirm"); \r
var execution = function() {\r
for (var i = 0; i < sel.length; i++) {\r
this.list.remove(sel[i]);\r
var executionFlow = target.getUserData("executionFlow");\r
var batchEntry = new org.argeo.slc.ria.execution.BatchEntrySpec(\r
executionModule, executionFlow);\r
- var label = batchEntry.getLabel();\r
- var icon = target.getIcon() || "org.argeo.slc.ria/office-document.png";\r
- var item = new qx.ui.form.ListItem(label, icon);\r
- /*\r
- item.addListener("dblclick", function(e) {\r
- this.getCommands()["editexecutionspecs"].command\r
- .execute();\r
- }, this);\r
- */\r
- item.setUserData("batchEntrySpec", batchEntry);\r
+\r
+ this.appendBatchEntrySpec(batchEntry, target.getIcon(), after); \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
+ item.setUserData("batchEntrySpec", batchEntrySpec);\r
item.setPaddingTop(1);\r
item.setPaddingBottom(2);\r
if (after) {\r
} else {\r
this.list.add(item);\r
}\r
- this.list.select(item);\r
- /*\r
- if (this.getAutoOpen() && !skipAutoOpen) {\r
- this.getCommands()["editexecutionspecs"].command.execute();\r
- }\r
- */\r
+ this.list.setSelection([item]);\r
+ \r
},\r
\r
/**\r
* @param agentUuid\r
* {String} The id of the target agent\r
*/\r
- executeBatchOnAgent : function(agentUuid) {\r
+ executeBatchOnAgent : function(agentUuid, clearBatch) {\r
var selection = this.list.getChildren();\r
if (!selection.length)\r
return;\r
+ // Get Host\r
+ var agentsMap = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("selector").getContent().getAgentsMap();\r
+ var host = agentsMap[agentUuid];\r
var slcExecMessage = new org.argeo.slc.ria.execution.Message();\r
+ slcExecMessage.setHost(host);\r
for (var i = 0; i < selection.length; i++) {\r
var batchEntrySpec = selection[i].getUserData("batchEntrySpec");\r
slcExecMessage.addBatchEntrySpec(batchEntrySpec);\r
}\r
- var req = org.argeo.slc.ria.SlcApi.getNewSlcExecutionService(\r
- agentUuid, slcExecMessage.toXml());\r
- req.send();\r
- // Force logs refresh right now!\r
- qx.event.Timer.once(function() {\r
- var command = org.argeo.ria.event.CommandsManager\r
- .getInstance().getCommandById("reloadlogs");\r
- if (command) {\r
- command.execute();\r
- }\r
- }, this, 2000);\r
+ try{\r
+ var xmlMessage = slcExecMessage.toXml();\r
+ if(!window.xmlExecStub){\r
+ window.xmlExecStub = {};\r
+ }\r
+ window.xmlExecStub[slcExecMessage.getUuid()] = qx.xml.Document.fromString(xmlMessage);\r
+ var req = org.argeo.slc.ria.SlcApi.getNewSlcExecutionService(\r
+ agentUuid, xmlMessage);\r
+ req.send();\r
+ // Force logs refresh right now!\r
+ qx.event.Timer.once(function() {\r
+ var command = org.argeo.ria.event.CommandsManager\r
+ .getInstance().getCommandById("reloadlogs");\r
+ if (command) {\r
+ command.execute();\r
+ }\r
+ }, this, 2000);\r
+ if(clearBatch){\r
+ req.addListener("completed", function(e){\r
+ this.list.removeAll();\r
+ this.setBatchAgentId(null);\r
+ }, this);\r
+ } \r
+ }catch(e){\r
+ this.error(e); \r
+ }\r
},\r
\r
clearBatchForAgentId : function(agentId){\r