refactor: refactor form submission logic in actor sheet
This commit is contained in:
parent
cd44db079f
commit
bfbd327e51
1 changed files with 6 additions and 18 deletions
|
@ -12,7 +12,6 @@ export class DS4ActorSheet extends foundry.applications.api.DocumentSheetV2 {
|
||||||
classes: ["sheet", "ds4-actor-sheet"],
|
classes: ["sheet", "ds4-actor-sheet"],
|
||||||
tag: "form",
|
tag: "form",
|
||||||
form: {
|
form: {
|
||||||
handler: DS4ActorSheet.prototype._onSubmitForm,
|
|
||||||
submitOnChange: true,
|
submitOnChange: true,
|
||||||
closeOnSubmit: false,
|
closeOnSubmit: false,
|
||||||
},
|
},
|
||||||
|
@ -172,30 +171,19 @@ export class DS4ActorSheet extends foundry.applications.api.DocumentSheetV2 {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle form submission
|
* Process form data for submission
|
||||||
* @param {Event} event - The form submission event
|
* @param {Event} event - The form submission event
|
||||||
* @param {HTMLFormElement} form - The form element
|
* @param {HTMLFormElement} form - The form element
|
||||||
* @param {FormDataExtended} formData - The form data
|
* @param {FormDataExtended} formData - The form data
|
||||||
|
* @returns {object} The processed form data
|
||||||
*/
|
*/
|
||||||
async _onSubmitForm(event, form, formData) {
|
_processFormData(event, form, formData) {
|
||||||
const submitData = this._prepareSubmitData(event, form, formData);
|
const submitData = foundry.utils.expandObject(formData.object);
|
||||||
await this.document.update(submitData);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Prepare data for form submission
|
|
||||||
* @param {Event} event - The form submission event
|
|
||||||
* @param {HTMLFormElement} form - The form element
|
|
||||||
* @param {FormDataExtended} formData - The form data
|
|
||||||
* @returns {object} The prepared submit data
|
|
||||||
*/
|
|
||||||
_prepareSubmitData(event, form, formData) {
|
|
||||||
const submitData = super._prepareSubmitData(event, form, formData);
|
|
||||||
|
|
||||||
// Parse values for specific fields
|
// Parse values for specific fields
|
||||||
for (const [key, value] of Object.entries(submitData)) {
|
for (const [key, value] of Object.entries(formData.object)) {
|
||||||
if (key.includes("system.") && typeof value === "string") {
|
if (key.includes("system.") && typeof value === "string") {
|
||||||
submitData[key] = this.parseValue(value);
|
foundry.utils.setProperty(submitData, key, this.parseValue(value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue