Add the subentry "Options" in the "System" menu to expose some options in the GUI which were not exposed before.
Added a new file for displaying and editing the node config options which were not exposed through the GUI yet. Namely those are the settings for wakeonlan and startall-on-boot-delay. Edited the Makefile to include the newly created file. Signed-off-by: Daniel Tschlatscher <d.tschlatsc...@proxmox.com> --- Changes from v2: - Moved the file from the widget-toolkit to the pve-manager repository because it implements PVE specific functionality. - I originally rewrote this class to use a ViewController, but then found out that the ObjectGrid does most of what I wanted already, I just had to address it correctly. This means the code is now a bit shorter and a lot more concise. www/manager6/Makefile | 1 + www/manager6/node/Config.js | 9 ++++ www/manager6/node/NodeOptionsView.js | 67 ++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 www/manager6/node/NodeOptionsView.js diff --git a/www/manager6/Makefile b/www/manager6/Makefile index 2c7b1e70..d16770b1 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -195,6 +195,7 @@ JSSRC= \ node/Subscription.js \ node/Summary.js \ node/ZFS.js \ + node/NodeOptionsView.js \ pool/Config.js \ pool/StatusView.js \ pool/Summary.js \ diff --git a/www/manager6/node/Config.js b/www/manager6/node/Config.js index 52357df8..7e7d45f7 100644 --- a/www/manager6/node/Config.js +++ b/www/manager6/node/Config.js @@ -195,6 +195,15 @@ Ext.define('PVE.node.Config', { nodename: nodename, onlineHelp: 'sysadmin_network_configuration', }, + { + xtype: 'proxmoxNodeOptionsView', + title: gettext('Options'), + iconCls: 'fa fa-gear', + groups: ['services'], + itemId: 'options', + nodename: nodename, + onlineHelp: 'proxmox_node_management', + }, { xtype: 'proxmoxNodeHostsView', title: gettext('Hosts'), diff --git a/www/manager6/node/NodeOptionsView.js b/www/manager6/node/NodeOptionsView.js new file mode 100644 index 00000000..b841b7b0 --- /dev/null +++ b/www/manager6/node/NodeOptionsView.js @@ -0,0 +1,67 @@ +Ext.define('Proxmox.node.NodeOptionsView', { + extend: 'Proxmox.grid.ObjectGrid', + alias: ['widget.proxmoxNodeOptionsView'], + mixins: ['Proxmox.Mixin.CBind'], + + cbindData: function(_initialconfig) { + let me = this; + + let baseUrl = `/nodes/${me.nodename}/config`; + me.url = `/api2/json${baseUrl}`; + me.editorConfig = { + url: `/api2/extjs/${baseUrl}`, + }; + + return {}; + }, + + listeners: { + itemdblclick: function() { this.run_editor(); }, + activate: function() { this.rstore.startUpdate(); }, + destroy: function() { this.rstore.stopUpdate(); }, + deactivate: function() { this.rstore.stopUpdate(); }, + }, + + tbar: [ + { + text: gettext('Edit'), + xtype: 'proxmoxButton', + disabled: true, + handler: btn => btn.up('grid').run_editor(), + }, + ], + + gridRows: [ + { + xtype: 'integer', + name: 'startall-onboot-delay', + text: gettext('Start on boot delay'), + minValue: 0, + maxValue: 300, + labelWidth: 130, + deleteEmpty: true, + renderer: function(value) { + if (value === undefined) { + return Proxmox.Utils.defaultText; + } + + let secString = value === '1' ? gettext('Second') : gettext('Seconds'); + return `${value} ${secString}`; + }, + }, + { + xtype: 'text', + name: 'wakeonlan', + text: gettext('Wake on LAN'), + vtype: 'MacAddress', + deleteEmpty: true, + renderer: function(value) { + if (value === undefined) { + return Proxmox.Utils.NoneText; + } + + return value; + }, + }, + ], +}); -- 2.30.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel