]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/FlowsSelectorView.js
"Diff loading" was in fact never working, thus creating bug 213
[gpl/argeo-slc.git] / server / org.argeo.slc.ria / src / argeo-ria-lib / slc / class / org / argeo / slc / ria / FlowsSelectorView.js
index 174f1409efb27c3a3b58fdc104b676747e7475c6..73789cfd5ec3b40008d67c363d66baaf90046458 100644 (file)
@@ -29,6 +29,10 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                instanceLabel : {\r
                        init : ""\r
                },\r
+               executeAfterAdd : {\r
+                       init : false,\r
+                       check : "Boolean"\r
+               },\r
                /**\r
                 * Commands definition, see\r
                 * {@link org.argeo.ria.event.CommandsManager#definitions}\r
@@ -65,6 +69,11 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                                                return;\r
                                                        }\r
                                                }\r
+                                               if(this.getExecuteAfterAdd() && batchView.getCommands()){\r
+                                                       batchView.setForceClearPreference(true);\r
+                                                       batchView.getCommands()["submitform"].command.execute();\r
+                                               }\r
+                                               this.setExecuteAfterAdd(false);\r
                                        },\r
                                        selectionChange : function(viewId, selection) {\r
                                                if (viewId != "form:tree")\r
@@ -130,7 +139,8 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                        menu : "Launcher",\r
                                        toolbar : "list",\r
                                        callback : function(e) {\r
-                                               this.rootNode.reload();\r
+                                               this.rootNode.setState("loading");\r
+                                               this.rootNode.load();\r
                                        },\r
                                        command : null\r
                                },                              \r
@@ -226,7 +236,7 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                        }\r
                        var req = org.argeo.slc.ria.SlcApi.getListAgentsService("agents");                      \r
                        var agents = {};\r
-                       if(folder.getState() == "loaded" && folder.getUserData("agentsMap")){\r
+                       if(folder.getUserData("agentsMap")){\r
                                // Diff loading, just add new nodes.\r
                                agents = folder.getUserData("agentsMap");\r
                                var newAgents = {};\r
@@ -255,11 +265,9 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                        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.setUserData("preferredHost", true);\r
                                        }else{\r
                                                folder.add(agentFolder);\r
                                                agentFolder.setIcon("org.argeo.slc.ria/computer.png");\r
-                                               agentFolder.setUserData("preferredHost", false);\r
                                        }\r
                                }\r
                                if(newAgents){\r
@@ -318,7 +326,7 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                        for (var i = 0; i < mods[key].length; i++) {\r
                                                var module = mods[key][i];\r
                                                var versionFolder = new org.argeo.ria.components.DynamicTreeFolder(\r
-                                                               module.getDescription(), flowLoader,\r
+                                                               module.getLabel(), flowLoader,\r
                                                                "Loading Flows", folder.getDragData());\r
                                                versionFolder.setUserData("moduleData", {\r
                                                                        name : key,\r
@@ -326,7 +334,8 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                                                });\r
                                                versionFolder.setIcon("org.argeo.slc.ria/archive.png");\r
                                                versionFolder.setUserData("agentUuid", agentId);\r
-                                               org.argeo.slc.ria.FlowsSelectorView.attachToolTip(versionFolder, key + ' (' + module.getVersion() + ')');\r
+                                               var sep = (module.getDescription()!=""?" - ":"");\r
+                                               org.argeo.slc.ria.FlowsSelectorView.attachToolTip(versionFolder, key + ' (' + module.getVersion() + ')'+sep+module.getDescription());\r
                                                // Warning, we must add it AFTER setting the user data, \r
                                                // because of the persistent loading mechanism.\r
                                                folder.add(versionFolder);\r
@@ -366,12 +375,24 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                }\r
                                var execFlows = executionModule.getExecutionFlows();\r
                                for (var key in execFlows) {\r
-                                       var file = new qx.ui.tree.TreeFile(key);\r
+                                       var path = execFlows[key].getPath();\r
+                                       var name = execFlows[key].getName();\r
+                                       var nodeLabel = key;\r
+                                       var sep = "\/";\r
+                                       if(name && name.indexOf(sep)>-1 && !path){\r
+                                               // Use given name to build the path.\r
+                                               // split dirname and basename\r
+                                               var parts = name.split(sep);\r
+                                               var basename = parts.pop();\r
+                                               var dirname = parts.join("/");\r
+                                               path = dirname;\r
+                                               nodeLabel = basename;\r
+                                       }\r
+                                       var file = new qx.ui.tree.TreeFile(nodeLabel);\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
-                                       var path = execFlows[key].getPath();\r
                                        file.setUserData("executionModule",     executionModule);\r
                                        file.setUserData("executionFlow", execFlows[key]);\r
                                        file.setUserData("agentUuid", agentUuid);\r
@@ -532,11 +553,9 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                        if(qx.lang.Array.contains(prefArray, hostName)){\r
                                qx.lang.Array.remove(prefArray, hostName);\r
                                agentNode.setIcon("org.argeo.slc.ria/computer.png");\r
-                               agentFolder.setUserData("preferredHost", false);\r
                        }else{\r
                                prefArray.push(hostName);\r
                                agentNode.setIcon("org.argeo.slc.ria/computer_bookmarked.png");\r
-                               agentFolder.setUserData("preferredHost", true);\r
                                var parent = agentNode.getParent();\r
                                parent.remove(agentNode);\r
                                parent.addAtBegin(agentNode);\r
@@ -584,6 +603,15 @@ qx.Class.define("org.argeo.slc.ria.FlowsSelectorView", {
                                }\r
                        }, this);\r
 \r
+                       this.tree.addListener("dblclick", function(e){\r
+                               var sel = this.tree.getSortedSelection();\r
+                               if(sel && sel.length!=1)  return;\r
+                               var origin = sel[0];\r
+                               if(origin.classname == "qx.ui.tree.TreeFile"){\r
+                                       this.setExecuteAfterAdd(true);\r
+                                       this.getCommands()["addtobatch"].command.execute();\r
+                               }\r
+                       }, this);\r
 \r
                        this.add(this.tree);\r
                },\r