all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH manager v2] fix #3994: Options menu entry in the System menu
@ 2022-05-06 12:39 Daniel Tschlatscher
  2022-05-11 12:27 ` Markus Frank
  2022-05-12 15:13 ` [pve-devel] applied: " Thomas Lamprecht
  0 siblings, 2 replies; 5+ messages in thread
From: Daniel Tschlatscher @ 2022-05-06 12:39 UTC (permalink / raw)
  To: pve-devel

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.tschlatscher@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





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-05-13  8:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-06 12:39 [pve-devel] [PATCH manager v2] fix #3994: Options menu entry in the System menu Daniel Tschlatscher
2022-05-11 12:27 ` Markus Frank
2022-05-12 15:13 ` [pve-devel] applied: " Thomas Lamprecht
2022-05-13  7:55   ` Daniel Tschlatscher
2022-05-13  8:00     ` Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal