forked from extern/egroupware
calling etemplate2.submit(,,no_validation=true) caused no submit (as invalid is no promise, but null)
This commit is contained in:
parent
b2a85e68b8
commit
9e8b291201
@ -970,34 +970,7 @@ export class etemplate2
|
|||||||
// Get the form values
|
// Get the form values
|
||||||
const values = this.getValues(container);
|
const values = this.getValues(container);
|
||||||
|
|
||||||
// Trigger the submit event
|
const doSubmit = () =>
|
||||||
let canSubmit = true;
|
|
||||||
let invalid = null;
|
|
||||||
if(!no_validation)
|
|
||||||
{
|
|
||||||
canSubmit = !(invalid = this.isInvalid(container, values));
|
|
||||||
}
|
|
||||||
invalid?.then((widgets) =>
|
|
||||||
{
|
|
||||||
let invalid_widgets = widgets.filter((widget) => widget);
|
|
||||||
|
|
||||||
if(invalid_widgets.length)
|
|
||||||
{
|
|
||||||
// Show the first invalid widget, not the last
|
|
||||||
if(invalid_widgets[0] && invalid_widgets[0] instanceof et2_widget)
|
|
||||||
{
|
|
||||||
let messages = [];
|
|
||||||
let valid = invalid.isValid(messages);
|
|
||||||
invalid.set_validation_error(messages);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
doSubmit();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
let doSubmit = function()
|
|
||||||
{
|
{
|
||||||
if(typeof async == 'undefined' || typeof async == 'string')
|
if(typeof async == 'undefined' || typeof async == 'string')
|
||||||
{
|
{
|
||||||
@ -1030,9 +1003,39 @@ export class etemplate2
|
|||||||
{
|
{
|
||||||
this._widgetContainer.egw().debug("warn", "Missing menuaction for submit. Values: ", values);
|
this._widgetContainer.egw().debug("warn", "Missing menuaction for submit. Values: ", values);
|
||||||
}
|
}
|
||||||
}.bind(this);
|
}
|
||||||
|
|
||||||
|
// Trigger the submit event
|
||||||
|
let canSubmit = true;
|
||||||
|
let invalid = null;
|
||||||
|
if(!no_validation)
|
||||||
|
{
|
||||||
|
canSubmit = !(invalid = this.isInvalid(container, values));
|
||||||
|
|
||||||
|
invalid?.then((widgets) =>
|
||||||
|
{
|
||||||
|
let invalid_widgets = widgets.filter((widget) => widget);
|
||||||
|
|
||||||
|
if(invalid_widgets.length)
|
||||||
|
{
|
||||||
|
// Show the first invalid widget, not the last
|
||||||
|
if(invalid_widgets[0] && invalid_widgets[0] instanceof et2_widget)
|
||||||
|
{
|
||||||
|
let messages = [];
|
||||||
|
let valid = invalid.isValid(messages);
|
||||||
|
invalid.set_validation_error(messages);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
doSubmit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
doSubmit();
|
||||||
|
}
|
||||||
return canSubmit;
|
return canSubmit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user