ui: prune: fix sending invalid parameters

the prune input panel is used in various contexts (add/editing a
prunejob, adding a datastore, executing a prune). These different api
calls don't all take the same parameters, so we have to correctly set
the `isCreate` to not send a `delete` paramter for those request if
there was an empty field.

Also set 'max-depth:0' only when recursive was not set *and* we can
set 'recursive', because for creating a datastore that is not supported
by the api, and for the prune job editing we override the whole
onGetValues anyway so that's not an issue there.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2024-03-06 12:21:02 +01:00 committed by Thomas Lamprecht
parent 3c8f974e88
commit 169ddf541d
3 changed files with 8 additions and 2 deletions

View File

@ -479,6 +479,7 @@ Ext.define('PBS.DataStoreContent', {
ns,
dryrun: true,
canRecurse: true,
isCreate: true,
},
],
});

View File

@ -27,7 +27,7 @@ Ext.define('PBS.panel.PruneInputPanel', {
if (me.ns && me.ns !== '') {
values.ns = me.ns;
}
if (!values.recursive) {
if (!values.recursive && me.canRecurse) {
values['max-depth'] = 0;
}
delete values.recursive;

View File

@ -105,7 +105,9 @@ Ext.define('PBS.window.PruneJobEdit', {
xtype: 'pbsNamespaceMaxDepthReduced',
name: 'max-depth',
fieldLabel: gettext('Max. Depth'),
deleteEmpty: true,
cbind: {
deleteEmpty: '{!isCreate}',
},
},
],
@ -133,6 +135,9 @@ Ext.define('PBS.window.PruneJobEdit', {
columnB: [
{
xtype: 'pbsPruneInputPanel',
cbind: {
isCreate: '{isCreate}',
},
getValues: () => ({}), // let that handle our inputpanel here
},
{