]> git.proxmox.com Git - pmg-gui.git/blobdiff - js/ViewMailHeaders.js
spam info grid: use 1:2 flex ratio between rule name and description
[pmg-gui.git] / js / ViewMailHeaders.js
index c4059f2fa9c494e035acbb5a23faf69fe0855aef..a04b8e566b6d7562b251dab64884c112a37750bd 100644 (file)
@@ -1,4 +1,3 @@
-/*global Proxmox*/
 Ext.define('PMG.ViewMailHeaders', {
     extend: 'Ext.window.Window',
     alias: 'widget.pmgViewMailHeaders',
@@ -15,39 +14,59 @@ Ext.define('PMG.ViewMailHeaders', {
 
     layout: {
        type: 'vbox',
-       align: 'stretch'
+       align: 'stretch',
     },
 
     controller: {
-
        xclass: 'Ext.app.ViewController',
 
-       init: function(view) {
+       toggleRaw: function(field, newValue) {
+           let me = this;
+           let view = me.getView();
+           view.raw = !newValue;
+           me.loadData(view.url);
+       },
 
-           var panel = view.lookupReference('contentPanel');
-           var fromField =
+       setData: function(data) {
+           let view = this.getView();
+           let panel = view.lookupReference('contentPanel');
+           let from = data.match(/^FROM:\s*(.*\S)\s*$/mi);
+           if (from) {
+               view.lookupReference('fromField').setValue(from[1]);
+           }
+           let to = data.match(/^TO:\s*(.*\S)\s*$/mi);
+           if (to) {
+               view.lookupReference('toField').setValue(to[1]);
+           }
+           let subject = data.match(/^SUBJECT:\s*(.*\S)\s*$/mi);
+           if (subject) {
+               view.lookupReference('subjectField').setValue(subject[1]);
+           }
+           panel.update(Ext.String.htmlEncode(data));
+       },
+
+       loadData: function(url) {
+           let me = this;
+           let view = me.getView();
+           if (!view.raw) {
+               url += "?decode-header=1";
+           }
            Proxmox.Utils.API2Request({
-               url: view.url,
+               url,
                waitMsgTarget: view,
                method: 'GET',
-               waitMsgTarget: view,
-               success: function(response, opts) {
-                   var data = response.result.data;
-                   var from = data.match(/^FROM:\s*(.*\S)\s*$/mi);
-                   if (from) view.lookupReference('fromField').setValue(from[1]);
-                   var to = data.match(/^TO:\s*(.*\S)\s*$/mi);
-                   if (to) view.lookupReference('toField').setValue(to[1]);
-                   var subject = data.match(/^SUBJECT:\s*(.*\S)\s*$/mi);
-                   if (subject) view.lookupReference('subjectField').setValue(subject[1]);
-                   panel.update(Ext.String.htmlEncode(data));
-               },
-               failure: function (response, opts) {
+               success: response => me.setData(response.result.data),
+               failure: function(response, opts) {
                    view.destroy();
                    Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-               }
+               },
            });
+       },
 
-       }
+       init: function(view) {
+           let me = this;
+           me.loadData(view.url);
+       },
     },
 
     items: [
@@ -56,25 +75,40 @@ Ext.define('PMG.ViewMailHeaders', {
            fieldLabel: gettext('From'),
            reference: 'fromField',
            focusable: false,
-           exitable: false
+           exitable: false,
        },
        {
            xtype: 'textfield',
            fieldLabel: gettext('To'),
            reference: 'toField',
            focusable: false,
-           exitable: false
+           exitable: false,
        },
        {
            xtype: 'textfield',
            fieldLabel: gettext('Subject'),
            reference: 'subjectField',
            focusable: false,
-           exitable: false
+           exitable: false,
        },
        {
-           xtype: 'displayfield',
-           fieldLabel: gettext('Header')
+           xtype: 'container',
+           layout: 'hbox',
+           items: [
+               {
+                   xtype: 'displayfield',
+                   fieldLabel: gettext('Header'),
+                   flex: 1,
+               },
+               {
+                   xtype: 'checkbox',
+                   reference: 'raw',
+                   boxLabel: gettext('Decode'),
+                   value: true,
+                   iconCls: 'fa fa-file-code-o',
+                   handler: 'toggleRaw',
+               },
+           ],
        },
        {
            xtype: 'panel',
@@ -82,7 +116,7 @@ Ext.define('PMG.ViewMailHeaders', {
            reference: 'contentPanel',
            flex: 1,
            autoScroll: true,
-           bodyStyle: 'white-space:pre'
-       }
-    ]
+           bodyStyle: 'white-space:pre',
+       },
+    ],
 });