* [pve-devel] [PATCH manager] ui: storage: show no-keeps hint exactly when needed
@ 2020-11-24 14:31 Fabian Ebner
2020-11-24 14:47 ` [pve-devel] applied: " Thomas Lamprecht
0 siblings, 1 reply; 2+ messages in thread
From: Fabian Ebner @ 2020-11-24 14:31 UTC (permalink / raw)
To: pve-devel
extracting the logic from the previous checkbox listener into a function, which
is also called on field changes and once in afterrender. Calling it initially
makes sure the hint is also displayed at the beginning when editing a storage
with no retention options configured, and the initial disabling of the input
fields for the isCreate case now also happens through that call.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
Not too happy about the function name, but couldn't come up with
anything better.
www/manager6/storage/Base.js | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
diff --git a/www/manager6/storage/Base.js b/www/manager6/storage/Base.js
index 6113743d..4dd84b87 100644
--- a/www/manager6/storage/Base.js
+++ b/www/manager6/storage/Base.js
@@ -81,6 +81,18 @@ Ext.define('PVE.panel.StoragePruneInputPanel', {
return options;
},
+ updateComponents: function() {
+ let panel = this;
+
+ let keepAll = panel.down('proxmoxcheckbox[name=keep-all]').getValue();
+ let anyValue = false;
+ panel.query('pmxPruneKeepField').forEach(field => {
+ anyValue = anyValue || field.getValue() !== null;
+ field.setDisabled(keepAll);
+ });
+ panel.down('component[name=no-keeps-hint]').setHidden(anyValue || keepAll);
+ },
+
listeners: {
afterrender: function(panel) {
if (panel.needMask) {
@@ -89,12 +101,14 @@ Ext.define('PVE.panel.StoragePruneInputPanel', {
gettext('Backup content type not available for this storage.'),
);
} else if (panel.isCreate) {
- panel.query('pmxPruneKeepField').forEach(field => {
- field.setDisabled(true);
- });
panel.down('proxmoxcheckbox[name=keep-all]').setValue(true);
}
panel.down('component[name=pbs-hint]').setHidden(!panel.isPBS);
+
+ panel.query('pmxPruneKeepField').forEach(field => {
+ field.on('change', panel.updateComponents, panel);
+ });
+ panel.updateComponents();
},
},
@@ -105,12 +119,7 @@ Ext.define('PVE.panel.StoragePruneInputPanel', {
listeners: {
change: function(field, newValue) {
let panel = field.up('pveStoragePruneInputPanel');
- let anyValue = false;
- panel.query('pmxPruneKeepField').forEach(field => {
- anyValue = anyValue || field.getValue() !== null;
- field.setDisabled(newValue);
- });
- panel.down('component[name=no-keeps-hint]').setHidden(anyValue || newValue);
+ panel.updateComponents();
},
},
},
--
2.20.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* [pve-devel] applied: [PATCH manager] ui: storage: show no-keeps hint exactly when needed
2020-11-24 14:31 [pve-devel] [PATCH manager] ui: storage: show no-keeps hint exactly when needed Fabian Ebner
@ 2020-11-24 14:47 ` Thomas Lamprecht
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2020-11-24 14:47 UTC (permalink / raw)
To: Proxmox VE development discussion, Fabian Ebner
On 24.11.20 15:31, Fabian Ebner wrote:
> extracting the logic from the previous checkbox listener into a function, which
> is also called on field changes and once in afterrender. Calling it initially
> makes sure the hint is also displayed at the beginning when editing a storage
> with no retention options configured, and the initial disabling of the input
> fields for the isCreate case now also happens through that call.
>
> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
> ---
>
> Not too happy about the function name, but couldn't come up with
> anything better.
>
> www/manager6/storage/Base.js | 27 ++++++++++++++++++---------
> 1 file changed, 18 insertions(+), 9 deletions(-)
>
>
applied, thanks!
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-11-24 14:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-24 14:31 [pve-devel] [PATCH manager] ui: storage: show no-keeps hint exactly when needed Fabian Ebner
2020-11-24 14:47 ` [pve-devel] applied: " 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