* [pve-devel] [PATCH docs] fix #3994: Added blockid to chapter Proxmox Node Management
@ 2022-04-20 10:09 Daniel Tschlatscher
2022-04-20 10:09 ` [pve-devel] [PATCH widget-toolkit] fix #3994: Node config options in the GUI Daniel Tschlatscher
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Daniel Tschlatscher @ 2022-04-20 10:09 UTC (permalink / raw)
To: pve-devel
to make it possible to reference it through the help button in the
GUI.
Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
---
pvenode.adoc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/pvenode.adoc b/pvenode.adoc
index 571afee..6ea9d7a 100644
--- a/pvenode.adoc
+++ b/pvenode.adoc
@@ -17,6 +17,8 @@ DESCRIPTION
-----------
endif::manvolnum[]
ifndef::manvolnum[]
+
+[[proxmox_node_management]]
Proxmox Node Management
-----------------------
ifdef::wiki[]
--
2.30.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pve-devel] [PATCH widget-toolkit] fix #3994: Node config options in the GUI
2022-04-20 10:09 [pve-devel] [PATCH docs] fix #3994: Added blockid to chapter Proxmox Node Management Daniel Tschlatscher
@ 2022-04-20 10:09 ` Daniel Tschlatscher
2022-04-22 10:12 ` Thomas Lamprecht
2022-04-20 10:09 ` [pve-devel] [PATCH manager] fix #3994: Options menu entry in the System menu Daniel Tschlatscher
2022-04-22 9:42 ` [pve-devel] applied: [PATCH docs] fix #3994: Added blockid to chapter Proxmox Node Management Thomas Lamprecht
2 siblings, 1 reply; 5+ messages in thread
From: Daniel Tschlatscher @ 2022-04-20 10:09 UTC (permalink / raw)
To: pve-devel
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.
Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
---
src/Makefile | 1 +
src/node/OptionsView.js | 85 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 86 insertions(+)
create mode 100644 src/node/OptionsView.js
diff --git a/src/Makefile b/src/Makefile
index dd7729e..0217ae1 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -96,6 +96,7 @@ JSSRC= \
node/DNSEdit.js \
node/HostsView.js \
node/DNSView.js \
+ node/OptionsView.js \
node/Tasks.js \
node/ServiceView.js \
node/TimeEdit.js \
diff --git a/src/node/OptionsView.js b/src/node/OptionsView.js
new file mode 100644
index 0000000..3d1e7bb
--- /dev/null
+++ b/src/node/OptionsView.js
@@ -0,0 +1,85 @@
+Ext.define('Proxmox.node.OptionsView', {
+ extend: 'Proxmox.grid.ObjectGrid',
+ alias: ['widget.proxmoxNodeOptionsView'],
+
+ 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;
+ },
+ },
+ ],
+
+ initComponent: function() {
+ let me = this;
+ let baseUrl = `/nodes/${me.nodename}/config`;
+
+ if (!me.nodename) {
+ throw "no node name specified";
+ }
+
+ let editBtn = new Ext.Button({
+ text: gettext('Edit'),
+ disabled: true,
+ handler: function() { me.run_editor(); },
+ });
+
+
+ let setButtonStatus = function() {
+ let sm = me.getSelectionModel();
+ let rec = sm.getSelection()[0];
+
+ if (!rec) {
+ editBtn.disable();
+ return;
+ }
+
+ let rowdef = me.rows[rec.data.key];
+ editBtn.setDisabled(!rowdef.editor);
+ };
+
+ Ext.apply(me, {
+ url: `/api2/json${baseUrl}`,
+ tbar: [editBtn],
+ editorConfig: {
+ url: `/api2/extjs/${baseUrl}`,
+ },
+ listeners: {
+ itemdblclick: me.run_editor,
+ selectionchange: setButtonStatus,
+ },
+ });
+
+ me.callParent();
+
+ me.on('activate', me.rstore.startUpdate);
+ me.on('deactivate', me.rstore.stopUpdate);
+ me.on('destroy', me.rstore.stopUpdate);
+ },
+});
--
2.30.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pve-devel] [PATCH manager] fix #3994: Options menu entry in the System menu
2022-04-20 10:09 [pve-devel] [PATCH docs] fix #3994: Added blockid to chapter Proxmox Node Management Daniel Tschlatscher
2022-04-20 10:09 ` [pve-devel] [PATCH widget-toolkit] fix #3994: Node config options in the GUI Daniel Tschlatscher
@ 2022-04-20 10:09 ` Daniel Tschlatscher
2022-04-22 9:42 ` [pve-devel] applied: [PATCH docs] fix #3994: Added blockid to chapter Proxmox Node Management Thomas Lamprecht
2 siblings, 0 replies; 5+ messages in thread
From: Daniel Tschlatscher @ 2022-04-20 10:09 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.
Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
---
www/manager6/node/Config.js | 9 +++++++++
1 file changed, 9 insertions(+)
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'),
--
2.30.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pve-devel] applied: [PATCH docs] fix #3994: Added blockid to chapter Proxmox Node Management
2022-04-20 10:09 [pve-devel] [PATCH docs] fix #3994: Added blockid to chapter Proxmox Node Management Daniel Tschlatscher
2022-04-20 10:09 ` [pve-devel] [PATCH widget-toolkit] fix #3994: Node config options in the GUI Daniel Tschlatscher
2022-04-20 10:09 ` [pve-devel] [PATCH manager] fix #3994: Options menu entry in the System menu Daniel Tschlatscher
@ 2022-04-22 9:42 ` Thomas Lamprecht
2 siblings, 0 replies; 5+ messages in thread
From: Thomas Lamprecht @ 2022-04-22 9:42 UTC (permalink / raw)
To: Proxmox VE development discussion, Daniel Tschlatscher
On 20.04.22 12:09, Daniel Tschlatscher wrote:
> to make it possible to reference it through the help button in the
> GUI.
>
> Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
> ---
> pvenode.adoc | 2 ++
> 1 file changed, 2 insertions(+)
>
>
applied, thanks!
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [pve-devel] [PATCH widget-toolkit] fix #3994: Node config options in the GUI
2022-04-20 10:09 ` [pve-devel] [PATCH widget-toolkit] fix #3994: Node config options in the GUI Daniel Tschlatscher
@ 2022-04-22 10:12 ` Thomas Lamprecht
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Lamprecht @ 2022-04-22 10:12 UTC (permalink / raw)
To: Proxmox VE development discussion, Daniel Tschlatscher
On 20.04.22 12:09, Daniel Tschlatscher wrote:
> 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.
Why is this in widget toolkit if it's only PVE specific? (see below)
I'd just add it in pve-manager, no point in adding the headache of splitting a feature
over multiple packages if it cannot be reused anyway.
> Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
> ---
> src/Makefile | 1 +
> src/node/OptionsView.js | 85 +++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 86 insertions(+)
> create mode 100644 src/node/OptionsView.js
>
> diff --git a/src/Makefile b/src/Makefile
> index dd7729e..0217ae1 100644
> --- a/src/Makefile
> +++ b/src/Makefile
> @@ -96,6 +96,7 @@ JSSRC= \
> node/DNSEdit.js \
> node/HostsView.js \
> node/DNSView.js \
> + node/OptionsView.js \
> node/Tasks.js \
> node/ServiceView.js \
> node/TimeEdit.js \
> diff --git a/src/node/OptionsView.js b/src/node/OptionsView.js
> new file mode 100644
> index 0000000..3d1e7bb
> --- /dev/null
> +++ b/src/node/OptionsView.js
> @@ -0,0 +1,85 @@
> +Ext.define('Proxmox.node.OptionsView', {
> + extend: 'Proxmox.grid.ObjectGrid',
> + alias: ['widget.proxmoxNodeOptionsView'],
> +
> + gridRows: [
> + {
> + xtype: 'integer',
> + name: 'startall-onboot-delay',
pve specific
> + 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',
pve specific
> + text: gettext('Wake on LAN'),
> + vtype: 'MacAddress',
> + deleteEmpty: true,
> + renderer: function(value) {
> + if (value === undefined) {
> + return Proxmox.Utils.NoneText;
> + }
> +
> + return value;
> + },
> + },
> + ],
> +
> + initComponent: function() {
> + let me = this;
> + let baseUrl = `/nodes/${me.nodename}/config`;
you use nodename before you check that it's set, not that it matters much but it's just not
/that/ nice code-style wise (things tend to get copied and adapted, which such unnecessary
subtleties may cause headache with).
> +
> + if (!me.nodename) {
> + throw "no node name specified";
> + }
> +
> + let editBtn = new Ext.Button({
> + text: gettext('Edit'),
> + disabled: true,
> + handler: function() { me.run_editor(); },
> + });
> +
> +
> + let setButtonStatus = function() {
> + let sm = me.getSelectionModel();
> + let rec = sm.getSelection()[0];
> +
> + if (!rec) {
> + editBtn.disable();
> + return;
> + }
> +
> + let rowdef = me.rows[rec.data.key];
> + editBtn.setDisabled(!rowdef.editor);
> + };
> +
> + Ext.apply(me, {
> + url: `/api2/json${baseUrl}`,
> + tbar: [editBtn],
> + editorConfig: {
> + url: `/api2/extjs/${baseUrl}`,
> + },
> + listeners: {
> + itemdblclick: me.run_editor,
> + selectionchange: setButtonStatus,
> + },
> + });
> +
> + me.callParent();
> +
> + me.on('activate', me.rstore.startUpdate);
> + me.on('deactivate', me.rstore.stopUpdate);
> + me.on('destroy', me.rstore.stopUpdate);
you could try using a view controller for above, that could theoretically also allow to drop the whole
initComponents. (search the code base for `ViewController`); not a requirement but good to check out
as learning purpose and maybe you like it better.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-04-22 10:12 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-20 10:09 [pve-devel] [PATCH docs] fix #3994: Added blockid to chapter Proxmox Node Management Daniel Tschlatscher
2022-04-20 10:09 ` [pve-devel] [PATCH widget-toolkit] fix #3994: Node config options in the GUI Daniel Tschlatscher
2022-04-22 10:12 ` Thomas Lamprecht
2022-04-20 10:09 ` [pve-devel] [PATCH manager] fix #3994: Options menu entry in the System menu Daniel Tschlatscher
2022-04-22 9:42 ` [pve-devel] applied: [PATCH docs] fix #3994: Added blockid to chapter Proxmox Node Management 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