mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-07-27 05:52:32 +00:00
ui: storage: show no-keeps hint exactly when needed
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>
This commit is contained in:
parent
fbbb2a1428
commit
56fad7c4e6
@ -81,6 +81,18 @@ Ext.define('PVE.panel.StoragePruneInputPanel', {
|
|||||||
return options;
|
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: {
|
listeners: {
|
||||||
afterrender: function(panel) {
|
afterrender: function(panel) {
|
||||||
if (panel.needMask) {
|
if (panel.needMask) {
|
||||||
@ -89,12 +101,14 @@ Ext.define('PVE.panel.StoragePruneInputPanel', {
|
|||||||
gettext('Backup content type not available for this storage.'),
|
gettext('Backup content type not available for this storage.'),
|
||||||
);
|
);
|
||||||
} else if (panel.isCreate) {
|
} else if (panel.isCreate) {
|
||||||
panel.query('pmxPruneKeepField').forEach(field => {
|
|
||||||
field.setDisabled(true);
|
|
||||||
});
|
|
||||||
panel.down('proxmoxcheckbox[name=keep-all]').setValue(true);
|
panel.down('proxmoxcheckbox[name=keep-all]').setValue(true);
|
||||||
}
|
}
|
||||||
panel.down('component[name=pbs-hint]').setHidden(!panel.isPBS);
|
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: {
|
listeners: {
|
||||||
change: function(field, newValue) {
|
change: function(field, newValue) {
|
||||||
let panel = field.up('pveStoragePruneInputPanel');
|
let panel = field.up('pveStoragePruneInputPanel');
|
||||||
let anyValue = false;
|
panel.updateComponents();
|
||||||
panel.query('pmxPruneKeepField').forEach(field => {
|
|
||||||
anyValue = anyValue || field.getValue() !== null;
|
|
||||||
field.setDisabled(newValue);
|
|
||||||
});
|
|
||||||
panel.down('component[name=no-keeps-hint]').setHidden(anyValue || newValue);
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user