From: Dominik Csapak <d.csa...@proxmox.com>

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lampre...@proxmox.com>
---
 www/manager6/Makefile            |   2 -
 www/manager6/node/Config.js      |   4 +-
 www/manager6/node/NetworkEdit.js | 325 ------------------------------------
 www/manager6/node/NetworkView.js | 351 ---------------------------------------
 4 files changed, 3 insertions(+), 679 deletions(-)
 delete mode 100644 www/manager6/node/NetworkEdit.js
 delete mode 100644 www/manager6/node/NetworkView.js

diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index da01f71c..63e48f7d 100644
--- a/www/manager6/Makefile
+++ b/www/manager6/Makefile
@@ -123,8 +123,6 @@ JSSRC=                                                      
\
        node/StatusView.js                              \
        node/Summary.js                                 \
        node/ServiceView.js                             \
-       node/NetworkEdit.js                             \
-       node/NetworkView.js                             \
        node/Tasks.js                                   \
        node/Subscription.js                            \
        node/APT.js                                     \
diff --git a/www/manager6/node/Config.js b/www/manager6/node/Config.js
index 5ead4878..32d5721b 100644
--- a/www/manager6/node/Config.js
+++ b/www/manager6/node/Config.js
@@ -165,7 +165,9 @@ Ext.define('PVE.node.Config', {
                    iconCls: 'fa fa-exchange',
                    itemId: 'network',
                    groups: ['services'],
-                   xtype: 'pveNodeNetworkView'
+                   nodename: nodename,
+                   onlineHelp: 'sysadmin_network_configuration',
+                   xtype: 'proxmoxNodeNetworkView'
                },
                {
                    title: gettext('DNS'),
diff --git a/www/manager6/node/NetworkEdit.js b/www/manager6/node/NetworkEdit.js
deleted file mode 100644
index de8b65d9..00000000
--- a/www/manager6/node/NetworkEdit.js
+++ /dev/null
@@ -1,325 +0,0 @@
-Ext.define('PVE.node.NetworkEdit', {
-    extend: 'PVE.window.Edit',
-    alias: ['widget.pveNodeNetworkEdit'],
-
-    initComponent : function() {
-       var me = this;
-
-       var nodename = me.pveSelNode.data.node;
-       if (!nodename) {
-           throw "no node name specified";
-       }
-
-       if (!me.iftype) {
-           throw "no network device type specified";
-       }
-
-       me.isCreate = !me.iface;
-
-       var iface_vtype;
-
-       if (me.iftype === 'bridge') {
-           iface_vtype = 'BridgeName';
-       } else if (me.iftype === 'bond') {
-           iface_vtype = 'BondName';
-       } else if (me.iftype === 'eth' && !me.isCreate) {
-           iface_vtype = 'InterfaceName';
-       } else if (me.iftype === 'vlan' && !me.isCreate) {
-           iface_vtype = 'InterfaceName';
-       } else if (me.iftype === 'OVSBridge') {
-           iface_vtype = 'BridgeName';
-       } else if (me.iftype === 'OVSBond') {
-           iface_vtype = 'BondName';
-       } else if (me.iftype === 'OVSIntPort') {
-           iface_vtype = 'InterfaceName';
-       } else if (me.iftype === 'OVSPort') {
-           iface_vtype = 'InterfaceName';
-       } else {
-           console.log(me.iftype);
-           throw "unknown network device type specified";
-       }
-
-       me.subject = PVE.Utils.render_network_iface_type(me.iftype);
-
-       var column2 = [];
-
-       if (!(me.iftype === 'OVSIntPort' || me.iftype === 'OVSPort' ||
-             me.iftype === 'OVSBond')) {
-           column2.push({
-               xtype: 'pvecheckbox',
-               fieldLabel: gettext('Autostart'),
-               name: 'autostart',
-               uncheckedValue: 0,
-               checked: me.isCreate ? true : undefined
-           });
-       }
-
-       if (me.iftype === 'bridge') {
-           column2.push({
-               xtype: 'pvecheckbox',
-               fieldLabel: gettext('VLAN aware'),
-               name: 'bridge_vlan_aware',
-               deleteEmpty: !me.isCreate
-           });
-           column2.push({
-               xtype: 'textfield',
-               fieldLabel: gettext('Bridge ports'),
-               name: 'bridge_ports'
-           });   
-       } else if (me.iftype === 'OVSBridge') {
-           column2.push({
-               xtype: 'textfield',
-               fieldLabel: gettext('Bridge ports'),
-               name: 'ovs_ports'
-           });   
-           column2.push({
-               xtype: 'textfield',
-               fieldLabel: gettext('OVS options'),
-               name: 'ovs_options'
-           });   
-       } else if (me.iftype === 'OVSPort' || me.iftype === 'OVSIntPort') {
-           column2.push({
-               xtype: me.isCreate ? 'PVE.form.BridgeSelector' : 'displayfield',
-               fieldLabel: PVE.Utils.render_network_iface_type('OVSBridge'),
-               allowBlank: false,
-               nodename: nodename,
-               bridgeType: 'OVSBridge',
-               name: 'ovs_bridge'
-           });
-           column2.push({
-               xtype: 'pveVlanField',
-               deleteEmpty: !me.isCreate,
-               name: 'ovs_tag',
-               value: ''
-           });
-           column2.push({
-               xtype: 'textfield',
-               fieldLabel: gettext('OVS options'),
-               name: 'ovs_options'
-           });
-       } else if (me.iftype === 'bond') {
-           column2.push({
-               xtype: 'textfield',
-               fieldLabel: gettext('Slaves'),
-               name: 'slaves'
-           });
-
-           var policySelector = Ext.createWidget('bondPolicySelector', {
-               fieldLabel: gettext('Hash policy'),
-               name: 'bond_xmit_hash_policy',
-               deleteEmpty: !me.isCreate,
-               disabled: true
-           });
-
-           column2.push({
-               xtype: 'bondModeSelector',
-               fieldLabel: gettext('Mode'),
-               name: 'bond_mode',
-               value: me.isCreate ? 'balance-rr' : undefined,
-               listeners: {
-                   change: function(f, value) {
-                       if (value === 'balance-xor' ||
-                           value === '802.3ad') {
-                           policySelector.setDisabled(false);
-                       } else {
-                           policySelector.setDisabled(true);
-                           policySelector.setValue('');
-                       }
-                   }
-               },
-               allowBlank: false
-           });
-
-           column2.push(policySelector);
-
-       } else if (me.iftype === 'OVSBond') {
-           column2.push({
-               xtype: me.isCreate ? 'PVE.form.BridgeSelector' : 'displayfield',
-               fieldLabel: PVE.Utils.render_network_iface_type('OVSBridge'),
-               allowBlank: false,
-               nodename: nodename,
-               bridgeType: 'OVSBridge',
-               name: 'ovs_bridge'
-           });
-           column2.push({
-               xtype: 'pveVlanField',
-               deleteEmpty: !me.isCreate,
-               name: 'ovs_tag',
-               value: ''
-           });
-           column2.push({
-               xtype: 'textfield',
-               fieldLabel: gettext('OVS options'),
-               name: 'ovs_options'
-           });
-       }
-
-       column2.push({
-           xtype: 'textfield',
-           fieldLabel: gettext('Comment'),
-           allowBlank: true,
-           nodename: nodename,
-           name: 'comments'
-       });
-
-       var url;
-       var method;
-
-       if (me.isCreate) {
-           url = "/api2/extjs/nodes/" + nodename + "/network";
-           method = 'POST';
-       } else {
-           url = "/api2/extjs/nodes/" + nodename + "/network/" + me.iface;
-           method = 'PUT';
-       }
-
-       var column1 = [
-           { 
-               xtype: 'hiddenfield',
-               name: 'type',
-               value: me.iftype
-           },
-           {
-               xtype: me.isCreate ? 'textfield' : 'displayfield',
-               fieldLabel: gettext('Name'),
-               name: 'iface',
-               value: me.iface,
-               vtype: iface_vtype,
-               allowBlank: false
-           }
-       ];
-
-       if (me.iftype === 'OVSBond') {
-           column1.push(
-               {
-                   xtype: 'bondModeSelector',
-                   fieldLabel: gettext('Mode'),
-                   name: 'bond_mode',
-                   openvswitch: true,
-                   value: me.isCreate ? 'active-backup' : undefined,
-                   allowBlank: false
-               },
-               {
-                   xtype: 'textfield',
-                   fieldLabel: gettext('Slaves'),
-                   name: 'ovs_bonds'
-               }
-           );
-       } else {
-
-           column1.push(
-               {
-                   xtype: 'proxmoxtextfield',
-                   deleteEmpty: !me.isCreate,
-                   fieldLabel: gettext('IP address'),
-                   vtype: 'IPAddress',
-                   name: 'address'
-               },
-               {
-                   xtype: 'proxmoxtextfield',
-                   deleteEmpty: !me.isCreate,
-                   fieldLabel: gettext('Subnet mask'),
-                   vtype: 'IPAddress',
-                   name: 'netmask',
-                   validator: function(value) {
-                       /*jslint confusion: true */
-                       if (!me.items) {
-                           return true;
-                       }
-                       var address = me.down('field[name=address]').getValue();
-                       if (value !== '') {
-                           if (address === '') {
-                               return "Subnet mask requires option 'IP 
address'";
-                           }
-                       } else {
-                           if (address !== '') {
-                               return "Option 'IP address' requires a subnet 
mask";
-                           }
-                       }
-                   
-                       return true;
-                   }
-               },
-               {
-                   xtype: 'proxmoxtextfield',
-                   deleteEmpty: !me.isCreate,
-                   fieldLabel: gettext('Gateway'),
-                   vtype: 'IPAddress',
-                   name: 'gateway'
-               },
-               {
-                   xtype: 'proxmoxtextfield',
-                   deleteEmpty: !me.isCreate,
-                   fieldLabel: gettext('IPv6 address'),
-                   vtype: 'IP6Address',
-                   name: 'address6'
-               },
-               {
-                   xtype: 'proxmoxtextfield',
-                   deleteEmpty: !me.isCreate,
-                   fieldLabel: gettext('Prefix length'),
-                   vtype: 'IP6PrefixLength',
-                   name: 'netmask6',
-                   value: '',
-                   allowBlank: true,
-                   validator: function(value) {
-                       /*jslint confusion: true */
-                       if (!me.items) {
-                           return true;
-                       }
-                       var address = 
me.down('field[name=address6]').getValue();
-                       if (value !== '') {
-                           if (address === '') {
-                               return "IPv6 prefix length requires option 
'IPv6 address'";
-                           }
-                       } else {
-                           if (address !== '') {
-                               return "Option 'IPv6 address' requires an IPv6 
prefix length";
-                           }
-                       }
-
-                       return true;
-                   }
-               },
-               {
-                   xtype: 'proxmoxtextfield',
-                   deleteEmpty: !me.isCreate,
-                   fieldLabel: gettext('Gateway'),
-                   vtype: 'IP6Address',
-                   name: 'gateway6'
-               }
-           );
-       }
-
-       Ext.applyIf(me, {
-           url: url,
-           method: method,
-           items: {
-                xtype: 'inputpanel',
-               column1: column1,
-               column2: column2
-           }
-       });
-
-       me.callParent();
-
-       if (me.isCreate) {
-           me.down('field[name=iface]').setValue(me.iface_default);
-       } else {
-           me.load({
-               success: function(response, options) {
-                   var data = response.result.data;
-                   if (data.type !== me.iftype) {
-                       var msg = "Got unexpected device type";
-                       Ext.Msg.alert(gettext('Error'), msg, function() {
-                           me.close();
-                       });
-                       return;
-                   }
-                   me.setValues(data);
-                   me.isValid(); // trigger validation
-               }
-           });
-       }
-    }
-});
diff --git a/www/manager6/node/NetworkView.js b/www/manager6/node/NetworkView.js
deleted file mode 100644
index 848aa7b5..00000000
--- a/www/manager6/node/NetworkView.js
+++ /dev/null
@@ -1,351 +0,0 @@
-Ext.define('PVE.node.NetworkView', {
-    extend: 'Ext.panel.Panel',
-
-    alias: ['widget.pveNodeNetworkView'],
-
-    onlineHelp: 'sysadmin_network_configuration',
-
-    initComponent : function() {
-       var me = this;
-
-       var nodename = me.pveSelNode.data.node;
-       if (!nodename) {
-           throw "no node name specified";
-       }
-
-       var store = Ext.create('Ext.data.Store', {
-           model: 'pve-networks',
-           proxy: {
-                type: 'pve',
-                url: "/api2/json/nodes/" + nodename + "/network"
-           },
-           sorters: [
-               {
-                   property : 'iface',
-                   direction: 'ASC'
-               }
-           ]
-       });
-
-       var reload = function() {
-           var changeitem = me.down('#changes');
-           PVE.Utils.API2Request({
-               url: '/nodes/' + nodename + '/network',
-               failure: function(response, opts) {
-                   changeitem.update(gettext('Error') + ': ' + 
response.htmlStatus);
-                   store.loadData({});
-               },
-               success: function(response, opts) {
-                   var result = Ext.decode(response.responseText);
-                   store.loadData(result.data);
-                   var changes = result.changes;
-                   if (changes === undefined || changes === '') {
-                       changes = gettext("No changes");
-                   }
-                   changeitem.update("<pre>" + Ext.htmlEncode(changes) + 
"</pre>");
-               }
-           });
-       };
-
-       var run_editor = function() {
-           var grid = me.down('gridpanel');
-           var sm = grid.getSelectionModel();
-           var rec = sm.getSelection()[0];
-           if (!rec) {
-               return;
-           }
-
-           var win = Ext.create('PVE.node.NetworkEdit', {
-               pveSelNode: me.pveSelNode,
-               iface: rec.data.iface,
-               iftype: rec.data.type
-           });
-           win.show();
-           win.on('destroy', reload);
-       };
-
-       var edit_btn = new Ext.Button({
-           text: gettext('Edit'),
-           disabled: true,
-           handler: run_editor
-       });
-
-       var del_btn = new Ext.Button({
-           text: gettext('Remove'),
-           disabled: true,
-           handler: function(){
-               var grid = me.down('gridpanel');
-               var sm = grid.getSelectionModel();
-               var rec = sm.getSelection()[0];
-               if (!rec) {
-                   return;
-               }
-
-               var iface = rec.data.iface;
-
-               PVE.Utils.API2Request({
-                   url: '/nodes/' + nodename + '/network/' + iface,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   callback: function() {
-                       reload();
-                   },
-                   failure: function(response, opts) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   }
-               });
-           }
-       });
-
-       var set_button_status = function() {
-           var grid = me.down('gridpanel');
-           var sm = grid.getSelectionModel();
-           var rec = sm.getSelection()[0];
-
-           edit_btn.setDisabled(!rec);
-           del_btn.setDisabled(!rec);
-       };
-
-       PVE.Utils.monStoreErrors(me, store);
-
-       var render_ports = function(value, metaData, record) {
-           if (value === 'bridge') {
-               return record.data.bridge_ports;
-           } else if (value === 'bond') {
-               return record.data.slaves;
-           } else if (value === 'OVSBridge') {
-               return record.data.ovs_ports;
-           } else if (value === 'OVSBond') {
-               return record.data.ovs_bonds;
-           }
-       };
-
-       var find_next_iface_id = function(prefix) {
-           var next;
-           for (next = 0; next <= 9999; next++) {
-               if (!store.getById(prefix + next.toString())) {
-                   break;
-               }
-           }
-           return prefix + next.toString();
-       };
-
-       Ext.apply(me, {
-           layout: 'border',
-           tbar: [
-               {
-                   text: gettext('Create'),
-                   menu: new Ext.menu.Menu({
-                       plain: true,
-                       items: [
-                           {
-                               text: 
PVE.Utils.render_network_iface_type('bridge'),
-                               handler: function() {
-                                   var win = 
Ext.create('PVE.node.NetworkEdit', {
-                                       pveSelNode: me.pveSelNode,
-                                       iftype: 'bridge',
-                                       iface_default: 
find_next_iface_id('vmbr')
-                                   });
-                                   win.on('destroy', reload);
-                                   win.show();
-                               }
-                           },
-                           {
-                               text: 
PVE.Utils.render_network_iface_type('bond'),
-                               handler: function() {
-                                   var win = 
Ext.create('PVE.node.NetworkEdit', {
-                                       pveSelNode: me.pveSelNode,
-                                       iftype: 'bond',
-                                       iface_default: 
find_next_iface_id('bond')
-                                   });
-                                   win.on('destroy', reload);
-                                   win.show();
-                               }
-                           }, '-',
-                           {
-                               text: 
PVE.Utils.render_network_iface_type('OVSBridge'),
-                               handler: function() {
-                                   var win = 
Ext.create('PVE.node.NetworkEdit', {
-                                       pveSelNode: me.pveSelNode,
-                                       iftype: 'OVSBridge',
-                                       iface_default: 
find_next_iface_id('vmbr')
-                                   });
-                                   win.on('destroy', reload);
-                                   win.show();
-                               }
-                           },
-                           {
-                               text: 
PVE.Utils.render_network_iface_type('OVSBond'),
-                               handler: function() {
-                                   var win = 
Ext.create('PVE.node.NetworkEdit', {
-                                       pveSelNode: me.pveSelNode,
-                                       iftype: 'OVSBond',
-                                       iface_default: 
find_next_iface_id('bond')
-                                   });
-                                   win.on('destroy', reload);
-                                   win.show();
-                               }
-                           },
-                           {
-                               text: 
PVE.Utils.render_network_iface_type('OVSIntPort'),
-                               handler: function() {
-                                   var win = 
Ext.create('PVE.node.NetworkEdit', {
-                                       pveSelNode: me.pveSelNode,
-                                       iftype: 'OVSIntPort'
-                                   });
-                                   win.on('destroy', reload);
-                                   win.show();
-                               }
-                           }
-                       ]
-                   })
-               }, ' ', 
-               {
-                   text: gettext('Revert'),
-                   handler: function() {
-                       PVE.Utils.API2Request({
-                           url: '/nodes/' + nodename + '/network',
-                           method: 'DELETE',
-                           waitMsgTarget: me,
-                           callback: function() {
-                               reload();
-                           },
-                           failure: function(response, opts) {
-                               Ext.Msg.alert(gettext('Error'), 
response.htmlStatus);
-                           }
-                       });
-                   }
-               },
-               edit_btn, 
-               del_btn
-           ],
-           items: [
-               {
-                   xtype: 'gridpanel',
-                   stateful: true,
-                   stateId: 'grid-node-network',
-                   store: store,
-                   region: 'center',
-                   border: false,
-                   columns: [
-                       {
-                           header: gettext('Name'),
-                           width: 100,
-                           sortable: true,
-                           dataIndex: 'iface'
-                       },
-                       {
-                           header: gettext('Type'),
-                           width: 100,
-                           sortable: true,
-                           renderer: PVE.Utils.render_network_iface_type,
-                           dataIndex: 'type'
-                       },
-                       {
-                           xtype: 'booleancolumn', 
-                           header: gettext('Active'),
-                           width: 80,
-                           sortable: true,
-                           dataIndex: 'active',
-                           trueText: 'Yes',
-                           falseText: 'No',
-                           undefinedText: 'No'
-                       },
-                       {
-                           xtype: 'booleancolumn', 
-                           header: gettext('Autostart'),
-                           width: 80,
-                           sortable: true,
-                           dataIndex: 'autostart',
-                           trueText: 'Yes',
-                           falseText: 'No',
-                           undefinedText: 'No'
-                       },
-                       {
-                           header: gettext('Ports/Slaves'),
-                           dataIndex: 'type',
-                           renderer: render_ports
-                       },
-                       {
-                           header: gettext('IP address'),
-                           sortable: true,
-                           dataIndex: 'address',
-                           renderer: function(value, metaData, rec) {
-                               if (rec.data.address && rec.data.address6) {
-                                   return rec.data.address + "<br>"
-                                          + rec.data.address6 + '/' + 
rec.data.netmask6;
-                               } else if (rec.data.address6) {
-                                   return rec.data.address6 + '/' + 
rec.data.netmask6;
-                               } else {
-                                   return rec.data.address;
-                               }
-                           }
-                       },
-                       {
-                           header: gettext('Subnet mask'),
-                           sortable: true,
-                           dataIndex: 'netmask'
-                       },
-                       {
-                           header: gettext('Gateway'),
-                           sortable: true,
-                           dataIndex: 'gateway',
-                           renderer: function(value, metaData, rec) {
-                               if (rec.data.gateway && rec.data.gateway6) {
-                                   return rec.data.gateway + "<br>" + 
rec.data.gateway6;
-                               } else if (rec.data.gateway6) {
-                                   return rec.data.gateway6;
-                               } else {
-                                   return rec.data.gateway;
-                               }
-                           }
-                       },
-                       {
-                           header: gettext('Comment'),
-                           dataIndex: 'comments',
-                           renderer: Ext.String.htmlEncode
-                       }
-                   ],
-                   listeners: {
-                       selectionchange: set_button_status,
-                       itemdblclick: run_editor
-                   }
-               },
-               {
-                   border: false,
-                   region: 'south',
-                   autoScroll: true,
-                   itemId: 'changes',
-                   tbar: [ 
-                       gettext('Pending changes') + ' (' +
-                           gettext('Please reboot to activate changes') + ')'
-                   ],
-                   split: true, 
-                   bodyPadding: 5,
-                   flex: 0.6,
-                   html: gettext("No changes")
-               }
-           ],
-           listeners: {
-               activate: reload
-           }
-       });
-
-       me.callParent();
-    }
-}, function() {
-
-    Ext.define('pve-networks', {
-       extend: 'Ext.data.Model',
-       fields: [ 
-           'iface', 'type', 'active', 'autostart',
-           'bridge_ports', 'slaves',
-           'address', 'netmask', 'gateway',
-           'address6', 'netmask6', 'gateway6',
-           'comments'
-       ],
-       idProperty: 'iface'
-    });
-
-});
-    
-- 
2.14.2


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to