]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - server/org.argeo.slc.ria/src/argeo-ria-lib/slc-web/class/org/argeo/slc/web/TestList.js
Fix 293 & 291
[gpl/argeo-slc.git] / server / org.argeo.slc.ria / src / argeo-ria-lib / slc-web / class / org / argeo / slc / web / TestList.js
index 6204701924e3b95785ca2262f7ea239eb059df84..e0816ffce1f73378b9a2c3c44b707bda69b080a5 100644 (file)
@@ -9,7 +9,19 @@ qx.Class.define("org.argeo.slc.web.TestList",
 {\r
   extend : qx.ui.container.Composite,\r
   implement : [org.argeo.ria.components.IView], \r
+  include : [org.argeo.ria.session.MPrefHolder],\r
 \r
+  statics : {\r
+       riaPreferences : {\r
+               "slc.web.TestList.DefaultAction" : {\r
+                       label : "Test List : Double Click default action",\r
+                       type : "list",\r
+                       list : ["Open","Download Xls"],\r
+                       defaultValue : "Open"\r
+               }\r
+       }\r
+  },\r
+  \r
   construct : function(){\r
        this.base(arguments, new qx.ui.layout.VBox());          \r
        var model = new qx.ui.table.model.Simple();\r
@@ -49,6 +61,10 @@ qx.Class.define("org.argeo.slc.web.TestList",
                init : 'My Collection',\r
                check : "String"\r
        },\r
+       currentOpenInstanceId : {\r
+               check : "String",\r
+               nullable:true\r
+       },\r
        /**\r
         * The applet commands.\r
         */\r
@@ -56,7 +72,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                init : {\r
                        "loadtestlist" : {\r
                                label           : "Load Collection", \r
-                               icon            : "resource/slc/view-refresh.png",\r
+                               icon            : "org.argeo.slc.ria/view-refresh.png",\r
                                shortcut        : "Control+l",\r
                                enabled         : true,\r
                                menu            : "Collection",\r
@@ -68,7 +84,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                        },\r
                        "polllistloading" : {\r
                                label           : "Auto load", \r
-                               icon            : "resource/slc/document-open-recent.png",\r
+                               icon            : "org.argeo.slc.ria/document-open-recent.png",\r
                                shortcut        : "Control+l",\r
                                enabled         : true,\r
                                toggle          : true,\r
@@ -82,7 +98,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                        /*\r
                        "copyfullcollection" : {\r
                                label           : "Copy to...", \r
-                               icon            : "resource/slc/edit-copy.png",\r
+                               icon            : "org.argeo.slc.ria/edit-copy.png",\r
                                shortcut        : null,\r
                                enabled         : false,\r
                                menu            : "Collection",\r
@@ -108,7 +124,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                        */\r
                        "opentest" : {\r
                                label           : "Open", \r
-                               icon            : "resource/slc/media-playback-start.png",\r
+                               icon            : "org.argeo.slc.ria/media-playback-start.png",\r
                                shortcut        : "Control+o",\r
                                enabled         : false,\r
                                menu            : "Selection",\r
@@ -118,6 +134,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                                        var classObj = org.argeo.slc.ria.Applet;\r
                                        var xmlNodes = viewsManager.getViewPaneSelection("list").getNodes();\r
                                        var iView = viewsManager.initIViewClass(classObj, "applet", xmlNodes[0]);\r
+                                       this.setCurrentOpenInstanceId(iView.getInstanceId());\r
                                        iView.load(xmlNodes[0]);\r
                                },\r
                                selectionChange : function(viewId, xmlNodes){\r
@@ -130,7 +147,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                        },\r
                        "download" : {\r
                                label           : "Download as...", \r
-                               icon            : "resource/slc/go-down.png",\r
+                               icon            : "org.argeo.slc.ria/go-down.png",\r
                                shortcut        : null,\r
                                enabled         : false,\r
                                menu            : "Selection",\r
@@ -138,10 +155,10 @@ qx.Class.define("org.argeo.slc.web.TestList",
                                callback        : function(e){ },\r
                                command         : null,\r
                                submenu         : [\r
-                                               {'label':"Xsl", 'icon':'resource/slc/mime-xsl.png', 'commandId':'xsl'},\r
-                                               {'label':"Xml", 'icon':'resource/slc/mime-xml.png', 'commandId':'xml'},\r
-                                               {'label':"Excel", 'icon':'resource/slc/mime-xls.png', 'commandId':'xls'},\r
-                                               {'label':"Pdf", 'icon':'resource/slc/mime-pdf.png', 'commandId':'pdf'}\r
+                                               {'label':"Xsl", 'icon':'org.argeo.slc.ria/mime-xsl.png', 'commandId':'xsl'},\r
+                                               {'label':"Xml", 'icon':'org.argeo.slc.ria/mime-xml.png', 'commandId':'xml'},\r
+                                               {'label':"Excel", 'icon':'org.argeo.slc.ria/mime-xls.png', 'commandId':'xls'},\r
+                                               {'label':"Pdf", 'icon':'org.argeo.slc.ria/mime-pdf.png', 'commandId':'pdf'}\r
                                        ],\r
                                submenuCallback : function(commandId){\r
                                        var uuid = this.extractTestUuid();\r
@@ -168,7 +185,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                        },\r
                        "attachments" : {\r
                                label           : "Attachments", \r
-                               icon            : "resource/slc/document-save-as.png",\r
+                               icon            : "org.argeo.slc.ria/document-save-as.png",\r
                                shortcut        : null,\r
                                enabled         : false,\r
                                menu            : "Selection",\r
@@ -180,7 +197,8 @@ qx.Class.define("org.argeo.slc.web.TestList",
                                        var split = commandId.split("__commandseparator__");\r
                                        var uuid = split[0];\r
                                        var contentType = split[1];\r
-                                       var url = org.argeo.slc.ria.SlcApi.buildGetAttachmentUrl(uuid, contentType);\r
+                                       var name = split[2];\r
+                                       var url = org.argeo.slc.ria.SlcApi.buildGetAttachmentUrl(uuid, contentType, name);\r
                                        var win = window.open(url);\r
                                },\r
                                selectionChange : function(viewId, xmlNodes){\r
@@ -194,12 +212,12 @@ qx.Class.define("org.argeo.slc.web.TestList",
                                                var submenus = [];\r
                                                for(var i=0;i<attachs.length;i++){\r
                                                        var uuid = org.argeo.ria.util.Element.getSingleNodeText(attachs[i], "slc:uuid");\r
-                                                       var contentType = org.argeo.ria.util.Element.getSingleNodeText(attachs[i], "slc:content-type");\r
+                                                       var contentType = (org.argeo.ria.util.Element.getSingleNodeText(attachs[i], "slc:content-type")||'');\r
                                                        var name = org.argeo.ria.util.Element.getSingleNodeText(attachs[i], "slc:name");\r
                                                        submenus.push({\r
                                                                label:name, \r
-                                                               icon : 'resource/slc/mime-text-plain.png', \r
-                                                               commandId:uuid+'__commandseparator__'+contentType\r
+                                                               icon : 'org.argeo.slc.ria/mime-text-plain.png', \r
+                                                               commandId:uuid+'__commandseparator__'+contentType+'__commandseparator__'+name\r
                                                        });\r
                                                }\r
                                                this.setMenu(submenus);\r
@@ -209,7 +227,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                        },\r
                        "copytocollection" : {\r
                                label           : "Copy to...", \r
-                               icon            : "resource/slc/edit-copy.png",\r
+                               icon            : "org.argeo.slc.ria/edit-copy.png",\r
                                shortcut        : "Control+c",\r
                                enabled         : false,\r
                                menu            : "Selection",\r
@@ -240,17 +258,25 @@ qx.Class.define("org.argeo.slc.web.TestList",
                        },\r
                        "deletetest" : {\r
                                label           : "Delete", \r
-                               icon            : "resource/slc/edit-delete.png",\r
+                               icon            : "org.argeo.slc.ria/edit-delete.png",\r
                                shortcut        : "Control+d",\r
                                enabled         : false,\r
                                menu            : "Selection",\r
                                toolbar         : "selection",\r
                                callback        : function(e){\r
                                        var modal = new org.argeo.ria.components.Modal("Confirm", null);\r
-                                       modal.addConfirm("Are you sure you want to delete<br> test " + this.extractTestUuid() + "?");\r
+                                       var testUuid = this.extractTestUuid();\r
+                                       modal.addConfirm("Are you sure you want to delete<br> test " + testUuid + "?");\r
                                        modal.addListener("ok", function(){\r
                                                var request = org.argeo.slc.ria.SlcApi.getRemoveResultService(this.getCollectionId(), this.extractTestUuid());\r
                                                request.addListener("completed", function(response){\r
+                                                       if(this.getCurrentOpenInstanceId() == "test:"+testUuid){\r
+                                                               var appletView = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("applet");\r
+                                                               if(appletView.contentExists(this.getCurrentOpenInstanceId())){\r
+                                                                       appletView.closeCurrent();\r
+                                                               }\r
+                                                               this.setCurrentOpenInstanceId(null);\r
+                                                       }\r
                                                        this.loadCollections();\r
                                                        this.loadList();\r
                                                        this.info("Test was successfully deleted");\r
@@ -286,7 +312,14 @@ qx.Class.define("org.argeo.slc.web.TestList",
          });\r
          var viewPane = this.getView();\r
          this.table.addListener("dblclick", function(e){\r
-               org.argeo.ria.event.CommandsManager.getInstance().executeCommand("opentest");\r
+               var pref = this.getRiaPreferenceValue("slc.web.TestList.DefaultAction");\r
+               if(pref == "Open"){\r
+                       org.argeo.ria.event.CommandsManager.getInstance().executeCommand("opentest");\r
+               }else{\r
+                       var uuid = this.extractTestUuid();\r
+                       var url = "../resultView.xslt?uuid="+uuid;\r
+                       alert('Should download : '+url);\r
+               }\r
          }, this);\r
          var columnModel = this.table.getTableColumnModel(); \r
          columnModel.getBehavior().setWidth(0, "60%");\r
@@ -320,7 +353,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
                 var collectionList = event.getContent();\r
                 select.removeAll();\r
                 for(key in collectionList){\r
-                       var item = new qx.ui.form.ListItem(collectionList[key], "resource/slc/folder.png", key);\r
+                       var item = new qx.ui.form.ListItem(collectionList[key], "org.argeo.slc.ria/folder.png", key);\r
                        select.add(item);\r
                        if(key == this.getCollectionId()){\r
                                select.setSelected(item);\r
@@ -409,12 +442,12 @@ qx.Class.define("org.argeo.slc.web.TestList",
                        if(this.getCollectionId() && key == this.getCollectionId()) continue;\r
                        submenus.push({\r
                                "label":collectionList[key], \r
-                               "icon":"resource/slc/folder.png", \r
+                               "icon":"org.argeo.slc.ria/folder.png", \r
                                "commandId":key\r
                        });\r
                }               \r
                submenus.push({'separator':true});\r
-               submenus.push({"label":"New...", "icon":"resource/slc/folder-new.png", "commandId":"slc.client.create"});\r
+               submenus.push({"label":"New...", "icon":"org.argeo.slc.ria/folder-new.png", "commandId":"slc.client.create"});\r
                command.setMenu(submenus);\r
                if(checkSelection){\r
                        var viewSelection = this.getView().getViewSelection();\r
@@ -431,7 +464,7 @@ qx.Class.define("org.argeo.slc.web.TestList",
         */\r
        copySelectionToCollection:function(collectionId, selectionType){\r
                if(collectionId == "slc.client.create"){\r
-                       var modal = new org.argeo.ria.components.Modal("Create collection", "resource/slc/folder-new.png");\r
+                       var modal = new org.argeo.ria.components.Modal("Create collection", "org.argeo.slc.ria/folder-new.png");\r
                        modal.makePromptForm("Enter the new collection name", function(value){\r
                                if(value == ""){\r
                                        alert("Please enter a name for the new collection!");\r