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%2FBatchView.js;h=78715de0403652f23aad1095fc6ccf67ba59daa7;hb=096964f665fc3b0e3d233b498b8b30823ae5fa36;hp=18deeaf49dd30f6ee719bf40d41c80a1a7dde175;hpb=d8f7abb3102580b01ffbeecc201f7bdfbd082150;p=gpl%2Fargeo-slc.git
diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/BatchView.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/BatchView.js
index 18deeaf49..78715de04 100644
--- a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/BatchView.js
+++ b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/BatchView.js
@@ -5,7 +5,21 @@ qx.Class.define("org.argeo.slc.ria.BatchView",
{
extend : qx.ui.container.Composite,
implement : [org.argeo.ria.components.IView],
-
+ include : [org.argeo.ria.session.MPrefHolder],
+ statics : {
+ riaPreferences : {
+ "slc.batch.delete.confirm" : {
+ label : "Confirm on batch deletion",
+ type : "boolean",
+ defaultValue : true
+ },
+ "slc.batch.autoclear" : {
+ label : "Autoclear batch on execution",
+ type : "boolean",
+ defaultValue : false
+ }
+ }
+ },
properties :
{
/**
@@ -16,22 +30,38 @@ qx.Class.define("org.argeo.slc.ria.BatchView",
init : {
"submitform" : {
label : "Execute Batch",
- icon : "resource/slc/media-playback-start.png",
+ icon : "org.argeo.slc.ria/media-playback-start.png",
shortcut : null,
enabled : false,
menu : "Launcher",
toolbar : "batch",
callback : function(e) {
- if (this.getBatchAgentId()) {
- this.executeBatchOnAgent(this.getBatchAgentId());
+ var batchAgentId = this.getBatchAgentId();
+ if (!batchAgentId) {
+ return;
+ }
+ var prefName = "slc.batch.autoclear";
+ var prefValue = this.getRiaPreferenceValue(prefName);
+ if(prefValue !== null){
+ this.executeBatchOnAgent(batchAgentId, prefValue);
+ return;
}
+ var modal = new org.argeo.ria.components.Modal("Clear?", null);
+ modal.addYesNoReminder("Do you want to clear the batch automatically after execution?", prefName);
+ modal.addListener("cancel", function(e){
+ this.executeBatchOnAgent(batchAgentId, false);
+ }, this);
+ modal.addListener("ok", function(e){
+ this.executeBatchOnAgent(batchAgentId, true);
+ }, this);
+ modal.attachAndShow();
},
command : null
},
/*
"toggleopenonadd" : {
label : "Auto edit on Add",
- icon : "resource/slc/document-open.png",
+ icon : "org.argeo.slc.ria/document-open.png",
shortcut : null,
enabled : true,
toggle : true,
@@ -46,7 +76,7 @@ qx.Class.define("org.argeo.slc.ria.BatchView",
},
"editexecutionspecs" : {
label : "Edit Execution Specs",
- icon : "resource/slc/document-open.png",
+ icon : "org.argeo.slc.ria/document-open.png",
shortcut : null,
enabled : false,
menu : "Launcher",
@@ -75,26 +105,34 @@ qx.Class.define("org.argeo.slc.ria.BatchView",
*/
"removefrombatch" : {
label : "Remove from batch",
- icon : "resource/slc/edit-delete.png",
+ icon : "org.argeo.slc.ria/edit-delete.png",
shortcut : null,
enabled : false,
menu : "Launcher",
toolbar : "batch",
callback : function(e) {
var sel = this.list.getSortedSelection();
- var modal = new org.argeo.ria.components.Modal("Confirm", null);
- modal.addConfirm("Are you sure you want to remove
the selected test"
- + (sel.length > 1 ? "s" : "")
- + " from the Batch?");
- modal.addListener("ok", function() {
- for (var i = 0; i < sel.length; i++) {
- this.list.remove(sel[i]);
- }
- if (!this.list.hasChildren()) {
- this.setBatchAgentId(null);
- }
- }, this);
- modal.attachAndShow();
+ var confirmPref = this.getRiaPreferenceValue("slc.batch.delete.confirm");
+ this.debug(confirmPref);
+ var execution = function() {
+ for (var i = 0; i < sel.length; i++) {
+ this.list.remove(sel[i]);
+ }
+ if (!this.list.hasChildren()) {
+ this.setBatchAgentId(null);
+ }
+ }
+ if(confirmPref){
+ var modal = new org.argeo.ria.components.Modal("Confirm", null);
+ modal.addConfirm("Are you sure you want to remove
the selected test"
+ + (sel.length > 1 ? "s" : "")
+ + " from the Batch?");
+ modal.addListener("ok", execution, this);
+ modal.attachAndShow();
+ }else{
+ execution = qx.lang.Function.bind(execution, this);
+ execution();
+ }
},
selectionChange : function(viewId, selection) {
if (viewId != "batch:list")
@@ -104,7 +142,23 @@ qx.Class.define("org.argeo.slc.ria.BatchView",
this.setEnabled(true);
},
command : null
- }
+ },
+ "clearbatch" : {
+ label : "Clear batch",
+ icon : "org.argeo.slc.ria/user-trash-full.png",
+ shortcut : null,
+ enabled : true,
+ menu : "Launcher",
+ toolbar : "batch",
+ callback : function(e) {
+ if(!this.list.hasChildren()) return;
+ this.list.selectAll();
+ this.getCommands()["removefrombatch"].command.execute();
+ },
+ selectionChange : function(viewId, selection) {
+ },
+ command : null
+ }
}
},
view : {
@@ -251,15 +305,27 @@ qx.Class.define("org.argeo.slc.ria.BatchView",
}
}, this);
+ this.dropDecorator = new qx.ui.decoration.Background();
+ this.dropDecorator.set({
+ backgroundImage : "org.argeo.slc.ria/drophere.gif",
+ backgroundRepeat : "no-repeat"
+ });
+
+
listChangeListener = function() {
var command = org.argeo.ria.event.CommandsManager.getInstance()
.getCommandById("submitform");
command.setEnabled(this.list.hasChildren());
+ var command2 = org.argeo.ria.event.CommandsManager.getInstance()
+ .getCommandById("clearbatch");
+ command2.setEnabled(this.list.hasChildren());
+ this.list.setDecorator((this.list.hasChildren()?null:this.dropDecorator));
};
this.list.addListener("addItem", listChangeListener, this);
this.list.addListener("removeItem", listChangeListener, this);
-
-
+
+ this.list.setDecorator(this.dropDecorator);
+
this.add(this.listPane);
},
@@ -318,7 +384,7 @@ qx.Class.define("org.argeo.slc.ria.BatchView",
var batchEntry = new org.argeo.slc.ria.execution.BatchEntrySpec(
executionModule, executionFlow);
var label = batchEntry.getLabel();
- var icon = target.getIcon() || "resource/slc/office-document.png";
+ var icon = target.getIcon() || "org.argeo.slc.ria/office-document.png";
var item = new qx.ui.form.ListItem(label, icon);
/*
item.addListener("dblclick", function(e) {
@@ -351,7 +417,7 @@ qx.Class.define("org.argeo.slc.ria.BatchView",
* @param agentUuid
* {String} The id of the target agent
*/
- executeBatchOnAgent : function(agentUuid) {
+ executeBatchOnAgent : function(agentUuid, clearBatch) {
var selection = this.list.getChildren();
if (!selection.length)
return;
@@ -360,17 +426,27 @@ qx.Class.define("org.argeo.slc.ria.BatchView",
var batchEntrySpec = selection[i].getUserData("batchEntrySpec");
slcExecMessage.addBatchEntrySpec(batchEntrySpec);
}
- var req = org.argeo.slc.ria.SlcApi.getNewSlcExecutionService(
- agentUuid, slcExecMessage.toXml());
- req.send();
- // Force logs refresh right now!
- qx.event.Timer.once(function() {
- var command = org.argeo.ria.event.CommandsManager
- .getInstance().getCommandById("reloadlogs");
- if (command) {
- command.execute();
- }
- }, this, 2000);
+ try{
+ var xmlMessage = slcExecMessage.toXml();
+ var req = org.argeo.slc.ria.SlcApi.getNewSlcExecutionService(
+ agentUuid, xmlMessage);
+ req.send();
+ // Force logs refresh right now!
+ qx.event.Timer.once(function() {
+ var command = org.argeo.ria.event.CommandsManager
+ .getInstance().getCommandById("reloadlogs");
+ if (command) {
+ command.execute();
+ }
+ }, this, 2000);
+ if(clearBatch){
+ req.addListener("completed", function(e){
+ this.list.removeAll();
+ }, this);
+ }
+ }catch(e){
+ this.error(e);
+ }
},
clearBatchForAgentId : function(agentId){