instead of having 3 server fields, have a single line
which can be ips seperated by ',' ';' or ' '

also now the domain and dns server can be changed seperately

Signed-off-by: Dominik Csapak <[email protected]>
---
this is necessary for cloudinit, since we want to
share it there

if we refactor another component so that we use it for both qemu/lxc
we should add a 'guest' directory and move those things there
 www/manager6/lxc/DNS.js | 87 ++++++++++++-------------------------------------
 1 file changed, 20 insertions(+), 67 deletions(-)

diff --git a/www/manager6/lxc/DNS.js b/www/manager6/lxc/DNS.js
index 512cbf9d..3287ae91 100644
--- a/www/manager6/lxc/DNS.js
+++ b/www/manager6/lxc/DNS.js
@@ -7,28 +7,22 @@ Ext.define('PVE.lxc.DNSInputPanel', {
     onGetValues: function(values) {
        var me = this;
 
-       if (!values.searchdomain) {
-           if (me.insideWizard) {
-               return {};
-           } else {
-               return { "delete": "searchdomain,nameserver" };
-           }
+       var deletes = [];
+       if (!values.searchdomain && !me.insideWizard) {
+           deletes.push('searchdomain');
        }
-       var list = [];
-       Ext.Array.each(['dns1', 'dns2', 'dns3'], function(fn) {
-           if (values[fn]) {
-               list.push(values[fn]);
-           }
-           delete values[fn];
-       });
 
-       if (list.length) {
+       if (values.nameserver) {
+           var list = values.nameserver.split(/[\ \,\;]+/);
            values.nameserver = list.join(' ');
-       } else {
-           if (!me.insideWizard) {
-               values['delete'] = 'nameserver';
-           }
+       } else if(!me.insideWizard) {
+           deletes.push('nameserver');
        }
+
+       if (deletes.length) {
+           values['delete'] = deletes.join(',');
+       }
+
        return values;
     },
 
@@ -42,47 +36,16 @@ Ext.define('PVE.lxc.DNSInputPanel', {
                skipEmptyText: true,
                fieldLabel: gettext('DNS domain'),
                emptyText: gettext('use host settings'),
-               allowBlank: true,
-               listeners: {
-                   change: function(f, value) {
-                       if (!me.rendered) {
-                           return;
-                       }
-                       var field_ids = ['#dns1', '#dns2', '#dns3'];
-                       Ext.Array.each(field_ids, function(fn) {
-                           var field = me.down(fn);
-                           field.setDisabled(!value);
-                           field.clearInvalid();
-                       });
-                   }
-               }
+               allowBlank: true
            },
            {
                xtype: 'proxmoxtextfield',
-               fieldLabel: gettext('DNS server') + " 1",
-               vtype: 'IP64Address',
+               fieldLabel: gettext('DNS servers'),
+               vtype: 'IP64AddressList',
                allowBlank: true,
-               disabled: true,
-               name: 'dns1',
-               itemId: 'dns1'
-           },
-           {
-               xtype: 'proxmoxtextfield',
-               fieldLabel: gettext('DNS server') + " 2",
-               vtype: 'IP64Address',
-               skipEmptyText: true,
-               disabled: true,
-               name: 'dns2',
-               itemId: 'dns2'
-           },
-           {
-               xtype: 'proxmoxtextfield',
-               fieldLabel: gettext('DNS server') + " 3",
-               vtype: 'IP64Address',
-               skipEmptyText: true,
-               disabled: true,
-               name: 'dns3',
-               itemId: 'dns3'
+               emptyText: gettext('use host settings'),
+               name: 'nameserver',
+               itemId: 'nameserver'
            }
        ];
 
@@ -119,10 +82,6 @@ Ext.define('PVE.lxc.DNSEdit', {
                    if (values.nameserver) {
                        values.nameserver.replace(/[,;]/, ' ');
                        values.nameserver.replace(/^\s+/, '');
-                       var nslist = values.nameserver.split(/\s+/);
-                       values.dns1 = nslist[0];
-                       values.dns2 = nslist[1];
-                       values.dns3 = nslist[2];
                    }
 
                    ipanel.setValues(values);
@@ -190,10 +149,7 @@ Ext.define('PVE.lxc.DNS', {
                defaultValue: '',
                editor: caps.vms['VM.Config.Network'] ? 'PVE.lxc.DNSEdit' : 
undefined,
                renderer: function(value) {
-                   if (me.getObjectValue('nameserver') || 
me.getObjectValue('searchdomain')) {
-                       return value;
-                   }
-                   return gettext('use host settings');
+                   return value || gettext('use host settings');
                }
            },
            nameserver: {
@@ -201,10 +157,7 @@ Ext.define('PVE.lxc.DNS', {
                defaultValue: '',
                editor: caps.vms['VM.Config.Network'] ? 'PVE.lxc.DNSEdit' : 
undefined,
                renderer: function(value) {
-                   if (me.getObjectValue('nameserver') || 
me.getObjectValue('searchdomain')) {
-                       return value;
-                   }
-                   return gettext('use host settings');
+                   return value || gettext('use host settings');
                }
            }
        };
-- 
2.11.0


_______________________________________________
pve-devel mailing list
[email protected]
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to