]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecLoggerApplet.js
Ignore MANIFESTs
[gpl/argeo-slc.git] / server / org.argeo.slc.ria / src / argeo-ria-lib / slc / class / org / argeo / slc / ria / SlcExecLoggerApplet.js
index 539d4cc601a27b71381438ae48eb2f6e31cf3351..4fe18a4f8fe2503d7b26f528a1cd89a03d0b5e0e 100644 (file)
@@ -33,19 +33,19 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet",
                init : {\r
                        "reloadlogs" : {\r
                                label           : "Reload Logs", \r
-                               icon            : "org.argeo.slc.ria/view-refresh.png",\r
+                               icon            : "org/argeo/slc/ria/view-refresh.png",\r
                                shortcut        : "Control+r",\r
                                enabled         : true,\r
                                menu            : null,\r
                                toolbar         : null,\r
                                callback        : function(e){\r
-                                       this._reloadLogger();\r
+                                       this.reloadLogger();\r
                                },\r
                                command         : null\r
                        },\r
                        "opendetail" : {\r
                                label           : "Logs Detail",\r
-                               icon            : "org.argeo.slc.ria/mime-xls.png",\r
+                               icon            : "org/argeo/slc/ria/mime-xls.png",\r
                                shortcut        : null,\r
                                enabled         : false,\r
                                menu            : null,\r
@@ -62,8 +62,8 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet",
                                command         : null                                  \r
                        },\r
                        "reopenrealized" : {\r
-                               label           : "Re-open",\r
-                               icon            : "org.argeo.slc.ria/document-open.png",\r
+                               label           : "Re-open Process",\r
+                               icon            : "org/argeo/slc/ria/document-open.png",\r
                                shortcut        : "Control+o",\r
                                enabled         : false,\r
                                menu            : null,\r
@@ -100,9 +100,9 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet",
         *  \r
         */\r
        load : function(){\r
-               this._reloadLogger();\r
-               this.UIBus.addListener("newSlcExecution", this._reloadLogger, this);\r
-               this.UIBus.addListener("updateSlcExecutionStatus", this._reloadLogger, this);\r
+               this.reloadLogger();\r
+               this.UIBus.addListener("newSlcExecution", this.reloadLogger, this);\r
+               this.UIBus.addListener("updateSlcExecutionStatus", this.reloadLogger, this);\r
        },\r
         \r
        addScroll : function(){\r
@@ -110,8 +110,8 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet",
        },\r
        \r
        close : function(){\r
-               this.UIBus.removeListener("newSlcExecution", this._reloadLogger, this);\r
-               this.UIBus.removeListener("updateSlcExecutionStatus", this._reloadLogger, this);\r
+               this.UIBus.removeListener("newSlcExecution", this.reloadLogger, this);\r
+               this.UIBus.removeListener("updateSlcExecutionStatus", this.reloadLogger, this);\r
        },\r
                \r
        openRealized : function(logData){\r
@@ -167,6 +167,7 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet",
                        handler(response.getContent());\r
                });\r
                // STUB CASE\r
+               /*\r
                req.addListener("failed", function(){\r
                        if(!window.xmlExecStub || !window.xmlExecStub[uuid]){                           \r
                                return;\r
@@ -174,13 +175,14 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet",
                        var xmlDoc = window.xmlExecStub[uuid];\r
                        handler(xmlDoc);\r
                });     \r
+               */\r
                req.send();\r
        },\r
        \r
        openDetail : function(logData){\r
                                \r
                var uuid = logData[2];\r
-               var window = new qx.ui.window.Window("Logs Detail", "org.argeo.slc.ria/mime-xls.png");\r
+               var window = new qx.ui.window.Window("Logs Detail", "org/argeo/slc/ria/mime-xls.png");\r
                window.setLayout(new qx.ui.layout.VBox(0));\r
                window.setContentPadding(0);            \r
                window.open();\r
@@ -193,7 +195,7 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet",
                \r
                var tBar = new qx.ui.toolbar.ToolBar();\r
                window.add(tBar);\r
-               var menuButton = new qx.ui.toolbar.Button("Close", "org.argeo.slc.ria/window-close.png");\r
+               var menuButton = new qx.ui.toolbar.Button("Close", "org/argeo/slc/ria/window-close.png");\r
                tBar.add(menuButton);\r
                menuButton.addListener("execute", function(e){\r
                        window.close();\r
@@ -203,40 +205,86 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet",
                var table = new org.argeo.ria.components.ui.Table(tableModel, {\r
                        "date":{NAME : "Date", WIDTH:180}, \r
                        "type":{NAME : "Type", WIDTH:90, ALIGN:"CENTER"}, \r
+                       "thread":{NAME : "Thread", WIDTH:90, ALIGN:"CENTER"}, \r
                        "log":"Log"\r
                });\r
                table.setStatusBarVisible(true);\r
                window.add(table, {flex:1});\r
                window.setAllowMinimize(false);\r
+               window.setResizable(true, true, true, true);\r
+               \r
+               tableModel.addListener("dataChanged", function(event){\r
+                       if(!event.getData()) return;\r
+                       var dataMap = event.getData();\r
+                       table.scrollCellVisible(0, dataMap.lastRow);\r
+               });\r
+               \r
+               var cpButton = new qx.ui.toolbar.Button("Download", "org/argeo/slc/ria/document-save-as.png");\r
+               tBar.add(cpButton);\r
+               cpButton.addListener("execute", function(e){\r
+                       var downloadUrl = org.argeo.slc.ria.SlcApi.DEFAULT_CONTEXT+"/"+org.argeo.slc.ria.SlcApi.DOWNLOAD_SLCEXEC_STEPS + "?ext=log&uuid=" + uuid;\r
+                       org.argeo.ria.Application.INSTANCE.javascriptDownloadLocation(downloadUrl);\r
+               });\r
+               \r
+               var reopButton = new qx.ui.toolbar.Button("Re-open Process", "org/argeo/slc/ria/document-open.png");\r
+               tBar.add(reopButton);\r
+               reopButton.addListener("execute", function(e){\r
+                       this.openRealized(logData);\r
+               }, this);\r
                \r
                // Call service to load execution message\r
-               var req = org.argeo.slc.ria.SlcApi.getSlcExecutionService(uuid);\r
+               this._loadSlcExecutionSteps(uuid, tableModel, false);\r
+               \r
+               var poller = new qx.event.Timer(3000);\r
+               poller.addListener("interval", function(e){\r
+                       this._loadSlcExecutionSteps(uuid, tableModel, true);\r
+               }, this);\r
+               \r
+               window.addListener("close", function(){\r
+                       poller.stop();\r
+               }, this);\r
+               poller.start();\r
+       },      \r
+\r
+       _loadSlcExecutionSteps : function(uuid, tableModel, poller){\r
+               var req;\r
+               var lastUuid = tableModel.getUserData("lastStepUuid");\r
+               if(!poller || !lastUuid){\r
+                       req = org.argeo.slc.ria.SlcApi.getTailSlcExecutionStepService(uuid, 200, null);\r
+               }else{\r
+                       req = org.argeo.slc.ria.SlcApi.getTailSlcExecutionStepService(uuid, null, lastUuid);\r
+               }\r
                req.addListener("completed", function(response){                        \r
                        var xmlDoc = response.getContent();\r
-                       var tableLines = [];\r
+                       var tableLines = (poller?tableModel.getData():[]);\r
                        var parser = org.argeo.ria.util.Element;\r
-                       var slcSteps = parser.selectNodes(xmlDoc, "slc:slc-execution/slc:steps/slc:slc-execution-step");\r
+                       var slcSteps = parser.selectNodes(xmlDoc, "slc:object-list/slc:slc-execution-step");\r
                        for(var i=0;i<slcSteps.length;i++){                             \r
                                var step = slcSteps[i];\r
-                               var date = parser.getSingleNodeText(step, "slc:begin");\r
+                               var stepUuid = parser.getSingleNodeText(step, "@uuid");\r
+                               var date = parser.getSingleNodeText(step, "slc:timestamp");\r
                                var type = parser.getSingleNodeText(step, "slc:type");\r
+                               var thread = parser.getSingleNodeText(step, "slc:thread");\r
                                var logLines = parser.selectNodes(step, "slc:log-lines/slc:log-line");\r
                                if(logLines.length > 0){\r
-                                       tableLines.push([date, type, parser.getSingleNodeText(logLines[0], ".")]);\r
+                                       tableLines.push([date, type, thread, parser.getSingleNodeText(logLines[0], ".")]);\r
                                        if(logLines.length>1){\r
                                                for(var j=1;j<logLines.length;j++){\r
-                                                       tableLines.push(["", "", parser.getSingleNodeText(logLines[j], ".")]);  \r
+                                                       tableLines.push(["", "", "", parser.getSingleNodeText(logLines[j], ".")]);      \r
                                                }\r
                                        }\r
                                }else{\r
-                                       tableLines.push([date, type, ""]);\r
+                                       tableLines.push([date, type, thread, ""]);\r
                                }\r
                        }\r
+                       if(slcSteps.length){\r
+                               tableModel.setUserData("lastStepUuid", stepUuid);\r
+                       }\r
                        tableModel.setData(tableLines);\r
                });\r
                req.send();\r
                \r
-       },      \r
+       },\r
        \r
        /**\r
         * Creates the applet layout\r
@@ -279,7 +327,7 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet",
        /**\r
         * Refresh the data model.\r
         */\r
-       _reloadLogger : function(){\r
+       reloadLogger : function(){\r
                var request = org.argeo.slc.ria.SlcApi.getListSlcExecutionsService();\r
                request.addListener("completed", function(response){                    \r
                        var messages = org.argeo.ria.util.Element.selectNodes(response.getContent(), "//slc:slc-execution");\r
@@ -292,6 +340,7 @@ qx.Class.define("org.argeo.slc.ria.SlcExecLoggerApplet",
                                        [slcExec.getDate(), slcExec.getHost(), slcExec.getUuid(), slcExec.getStatus()]\r
                                ]);                             \r
                        }\r
+                       this.logModel.sortByColumn(0, false);\r
                }, this);\r
                request.send();         \r
        }\r