]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.webapp/src/main/webapp/source/class/org/argeo/slc/web/event/CommandsManager.js
Canonical view
[gpl/argeo-slc.git] / org.argeo.slc.webapp / src / main / webapp / source / class / org / argeo / slc / web / event / CommandsManager.js
index f0dff464730e7ba6f6a1cbc7c2e115408b4ebf98..a03a087dd6c9794fb41569b3e702e7bd65b321bf 100644 (file)
@@ -23,10 +23,20 @@ qx.Class.define("org.argeo.slc.web.event.CommandsManager",
                                menu            : "File",\r
                                toolbar         : "list",\r
                                callback        : function(e){\r
-                                       this.loadTable("/com.capco.sparta.web/resultList.sparta");\r
+                                       this.loadTable("/org.argeo.slc.webapp/resultList.web");\r
                                }, \r
                                command         : null\r
                        },\r
+                       "stop" : {\r
+                               label           : "Stop", \r
+                               icon            : "resource/slc/edit-delete.png",\r
+                               shortcut        : "Control+s",\r
+                               enabled         : false,\r
+                               menu            : null,\r
+                               toolbar         : "list",\r
+                               callback        : function(e){},\r
+                               command         : null\r
+                       },\r
                        "quit" : {\r
                                label           : "Quit", \r
                                icon            : "resource/slc/system-shutdown.png",\r
@@ -51,8 +61,8 @@ qx.Class.define("org.argeo.slc.web.event.CommandsManager",
                                selectionChange : function(viewId, xmlNodes){\r
                                        if(viewId != "list") return;\r
                                        this.setEnabled(false);\r
-                                       if(xmlNodes == null) return;\r
-                                       var applet = qx.xml.Element.selectSingleNode(xmlNodes[0],'report[@type="applet"]'); \r
+                                       if(xmlNodes == null || !xmlNodes.length) return;\r
+                                       var applet = org.argeo.slc.web.util.Element.selectSingleNode(xmlNodes[0],'report[@type="applet"]'); \r
                                        if(applet != null && qx.dom.Node.getText(applet) != ""){\r
                                                this.setEnabled(true);                                                  \r
                                        }                                       \r
@@ -70,7 +80,21 @@ qx.Class.define("org.argeo.slc.web.event.CommandsManager",
                                command         : null,\r
                                submenu         : {},\r
                                submenuCallback : function(commandId){\r
-                                       qx.log.Logger.info(commandId);\r
+                                       var xmlNodes = this.getSelectionForView("list").getNodes();\r
+                                       // Single selection\r
+                                       var uuid = qx.xml.Element.getSingleNodeText(xmlNodes[0], 'param[@name="uuid"]');\r
+                                       var urls = {\r
+                                               xsl : "resultView.xslt",\r
+                                               xml : "resultViewXml.xslt",\r
+                                               xls : "resultView.xls",\r
+                                               pdf : "resultView.pdf"\r
+                                       };\r
+                                       var url = "../"+urls[commandId]+"?uuid="+uuid;\r
+                                       if(commandId == "xls" || commandId == "pdf"){\r
+                                               document.location.href = url;\r
+                                       }else{\r
+                                               var win = window.open(url);\r
+                                       }\r
                                },\r
                                selectionChange : function(viewId, xmlNodes){\r
                                        if(viewId!="list")return;\r
@@ -81,13 +105,14 @@ qx.Class.define("org.argeo.slc.web.event.CommandsManager",
                                        var reports = qx.xml.Element.selectNodes(xmlNodes[0],'report[@type="download"]');\r
                                        if(reports == null || !reports.length)return;\r
                                        \r
-                                       reports.map(function(report){\r
+                                       for(var i=0; i<reports.length;i++){\r
+                                               var report = reports[i];\r
                                                this.addSubMenuButton(\r
                                                        qx.dom.Node.getText(report),\r
-                                                       qx.dom.Node.getText(qx.xml.Element.selectSingleNode(report, "@icon")),\r
-                                                       qx.dom.Node.getText(qx.xml.Element.selectSingleNode(report, "@commandid"))\r
+                                                       qx.dom.Node.getText(org.argeo.slc.web.util.Element.selectSingleNode(report, "@icon")),\r
+                                                       qx.dom.Node.getText(org.argeo.slc.web.util.Element.selectSingleNode(report, "@commandid"))\r
                                                );\r
-                                       }, this);\r
+                                       }\r
                                        this.setEnabled(true);\r
                                        this.fireDataEvent("changeMenu", this.getMenu());\r
                                }\r
@@ -175,13 +200,14 @@ qx.Class.define("org.argeo.slc.web.event.CommandsManager",
                this.toolbars = {};\r
                var defs = this.getDefinitions();\r
                for(var key in defs){\r
-                       var definition = defs[key];\r
+                       var definition = defs[key];                     \r
                        var command = new org.argeo.slc.web.event.Command(key, definition.label, definition.icon, definition.shortcut);\r
                        if(definition.submenu){\r
                                var menu = new qx.ui.menu.Menu();\r
                                command.setMenu(menu);\r
                                if(definition.submenuCallback){\r
                                        command.setMenuCallback(definition.submenuCallback);\r
+                                       command.setMenuContext(this.application);\r
                                }\r
                        }\r
                        command.setEnabled(definition.enabled);\r
@@ -248,6 +274,12 @@ qx.Class.define("org.argeo.slc.web.event.CommandsManager",
                        defs[commandId].command.execute();\r
                }\r
        },\r
+       getCommandById : function(commandId){\r
+               var defs = this.getDefinitions();\r
+               if(defs[commandId] && defs[commandId].command){\r
+                       return defs[commandId].command;\r
+               }               \r
+       },\r
        addToolbarContextMenu : function(toolbar){\r
                var menu = new qx.ui.menu.Menu();\r
                var icon = new qx.ui.menu.RadioButton("Show Icons");\r