]> git.proxmox.com Git - pmg-gui.git/blobdiff - js/Utils.js
spam detector: custom rules: consitent add/edit/remove button & modernization
[pmg-gui.git] / js / Utils.js
index 695967d83e273abee74922a9b013100dee2121e8..149abd684711812bb47b3f820048544a4f8b7764 100644 (file)
@@ -686,6 +686,24 @@ Ext.define('PMG.Utils', {
                    growMax: 250,
                    fieldLabel: gettext("Disclaimer"),
                },
+               {
+                   xtype: 'proxmoxKVComboBox',
+                   name: 'position',
+                   fieldLabel: gettext("Position"),
+                   deleteEmpty: false,
+                   value: 'end',
+                   comboItems: [
+                       ['end', gettext('End')],
+                       ['start', gettext('Start')],
+                   ],
+               },
+               {
+                   xtype: 'proxmoxcheckbox',
+                   name: 'add-separator',
+                   fieldLabel: gettext("Add Separator"),
+                   uncheckedValue: '0',
+                   value: true,
+               },
            ],
        },
     },
@@ -813,29 +831,22 @@ Ext.define('PMG.Utils', {
        return `<i class='fa ${iconCls}'></i> ${text}`;
     },
 
-    addresses_subject_renderer: function(value, metaData, rec, render_receiver) {
+    render_envelope: function(value, { data }, render_receiver) {
        let subject = Ext.htmlEncode(value);
-       let from = Ext.htmlEncode(rec.data.from);
-       let sender = Ext.htmlEncode(rec.data.sender);
-       if (sender) {
-           from = Ext.String.format(gettext("{0} on behalf of {1}"),
-                                    sender, from);
+       let from = Ext.htmlEncode(data.from);
+       if (data.sender) {
+           let sender = Ext.htmlEncode(data.sender);
+           from = Ext.String.format(gettext("{0} on behalf of {1}"), sender, from);
        }
-       let ret = '<small>' + from;
        if (render_receiver) {
-           ret += '<br>To: ' + Ext.htmlEncode(rec.data.receiver);
+           let receiver = Ext.htmlEncode(data.receiver);
+           return `<small>${from}<br>To: ${receiver}</small><br>${subject}`;
        }
-       ret += '</small><br>' + subject;
-       return ret;
+       return `<small>${from}</small><br>${subject}`;
     },
 
-    sender_renderer: function(value, metaData, rec) {
-       return PMG.Utils.addresses_subject_renderer(value, metaData, rec, false);
-    },
-
-    sender_receiver_renderer: function(value, metaData, rec) {
-       return PMG.Utils.addresses_subject_renderer(value, metaData, rec, true);
-    },
+    render_sender: (value, _meta, rec) => PMG.Utils.render_envelope(value, rec, false),
+    render_sender_receiver: (value, _meta, rec) => PMG.Utils.render_envelope(value, rec, true),
 
     constructor: function() {
        var me = this;
@@ -905,3 +916,12 @@ Ext.define('PMG.Async', {
        );
     },
 });
+
+// custom Vtypes
+Ext.apply(Ext.form.field.VTypes, {
+    // matches the pmg-email-address in pmg-api
+    PMGMail: function(v) {
+       return (/^[^\s\\@]+@[^\s/\\@]+$/).test(v);
+    },
+    PMGMailText: gettext('Example') + ": user@example.com",
+});