mirror of
https://git.proxmox.com/git/proxmox-widget-toolkit
synced 2025-05-06 11:54:48 +00:00
input panel: improve validity change check for advanced fields
instead of only checking the validity of the advanced items when the form validity changed as a whole, add a validity change listener to each field in the advanced section. This improves the behaviour such that every time an advanced field gets invalid the items are show, not only when the form was valid before. Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> Tested-By: Aaron Lauterer <a.lauterer@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
0c50257362
commit
b2471e89d0
@ -318,21 +318,6 @@ Ext.define('Proxmox.window.Edit', {
|
||||
let dirty = form.isDirty();
|
||||
submitBtn.setDisabled(!valid || !(dirty || me.isCreate));
|
||||
resetBtn.setDisabled(!dirty);
|
||||
|
||||
if (inputPanel && inputPanel.hasAdvanced) {
|
||||
// we want to show the advanced options as soon as some of it is not valid
|
||||
let advancedItems = me.down('#advancedContainer').query('field');
|
||||
let allAdvancedValid = true;
|
||||
advancedItems.forEach(function(field) {
|
||||
if (!field.isValid()) {
|
||||
allAdvancedValid = false;
|
||||
}
|
||||
});
|
||||
|
||||
if (!allAdvancedValid) {
|
||||
inputPanel.setAdvancedVisible(true);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
form.on('dirtychange', set_button_status);
|
||||
@ -395,6 +380,18 @@ Ext.define('Proxmox.window.Edit', {
|
||||
|
||||
me.callParent();
|
||||
|
||||
|
||||
if (inputPanel?.hasAdvanced) {
|
||||
let advancedItems = inputPanel.down('#advancedContainer').query('field');
|
||||
advancedItems.forEach(function(field) {
|
||||
me.mon(field, 'validitychange', (f, valid) => {
|
||||
if (!valid) {
|
||||
f.up('inputpanel').setAdvancedVisible(true);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// always mark invalid fields
|
||||
me.on('afterlayout', function() {
|
||||
// on touch devices, the isValid function
|
||||
|
Loading…
Reference in New Issue
Block a user