]> git.proxmox.com Git - pmg-gui.git/blobdiff - js/ViewMailHeaders.js
fix #5251: login: set autocomplete on password and user
[pmg-gui.git] / js / ViewMailHeaders.js
index d881f172d4264e96afd2188a2daeb8f8a0c0d6cf..a04b8e566b6d7562b251dab64884c112a37750bd 100644 (file)
@@ -1,4 +1,3 @@
-/*global Proxmox*/
 Ext.define('PMG.ViewMailHeaders', {
     extend: 'Ext.window.Window',
     alias: 'widget.pmgViewMailHeaders',
@@ -19,38 +18,55 @@ Ext.define('PMG.ViewMailHeaders', {
     },
 
     controller: {
-
        xclass: 'Ext.app.ViewController',
 
-       init: function(view) {
-           var panel = view.lookupReference('contentPanel');
-           var fromField =
+       toggleRaw: function(field, newValue) {
+           let me = this;
+           let view = me.getView();
+           view.raw = !newValue;
+           me.loadData(view.url);
+       },
+
+       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',
-               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));
-               },
+               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: [
@@ -76,8 +92,23 @@ Ext.define('PMG.ViewMailHeaders', {
            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',