]> git.proxmox.com Git - pmg-gui.git/commitdiff
use rowexpander for trackingcenter logs
authorDominik Csapak <d.csapak@proxmox.com>
Thu, 5 Oct 2017 10:28:02 +0000 (12:28 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 5 Oct 2017 10:56:41 +0000 (12:56 +0200)
instead of opening a window with the log,
use the rowexpander and display the logs inline

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
js/MailTracker.js

index c5151998368a60da95c2632eac691c85662b4894..6e3d77e49d4a419e9a2bb1fdd59245d48016295a 100644 (file)
@@ -202,10 +202,20 @@ Ext.define('PMG.MailTracker', {
     border: false,
 
     emptyText: gettext('No data in database.'),
+    disableSelection: true,
+
     viewConfig: {
-       deferEmptyText: false
+       deferEmptyText: false,
+       enableTextSelection: true,
     },
 
+    plugins: [
+       {
+           ptype: 'rowexpander',
+           rowBodyTpl: '<p class="logs">{logs}</p>',
+       }
+    ],
+
     store: {
        autoDestroy: true,
        model: 'pmg-mail-tracker'
@@ -235,22 +245,36 @@ Ext.define('PMG.MailTracker', {
            });
        },
 
-       showDetails: function() {
+       showDetails: function(rowNode, record) {
            var view = this.getView();
-           var sm = view.getSelectionModel();
-           var rec = sm.getSelection()[0];
-           if (!rec) {
-               return;
-           }
 
            var params = view.store.proxy.getExtraParams();
 
-           var win = Ext.create('PMG.MaiLogWindow', {
-               starttime: params.starttime,
-               endtime: params.endtime,
-               logid: rec.data.id
+           Proxmox.Utils.API2Request({
+               method: 'GET',
+               params: { starttime: params.starttime, endtime: params.endtime },
+               url: '/nodes/' + Proxmox.NodeName + '/tracker/' + record.data.id,
+               waitMsgTarget: view,
+               failure: function(response, opts) {
+                   record.set('logs',gettext('Error') + " " + response.htmlStatus);
+               },
+               success: function(response, opts) {
+                   var data = response.result.data;
+                   var logs = "";
+
+                   Ext.Array.each(data.logs, function(line) {
+                       logs += Ext.htmlEncode(line) + "<br>";
+                   });
+
+                   record.set('logs', logs);
+               }
            });
-           win.show();
+       },
+
+       control: {
+           'gridview': {
+               expandbody: 'showDetails'
+           }
        }
     },
 
@@ -328,10 +352,6 @@ Ext.define('PMG.MailTracker', {
        }
     ],
 
-    listeners: {
-       itemdblclick: 'showDetails',
-    },
-
     initComponent: function() {
        var me = this;