80 lines
2.1 KiB
JavaScript
80 lines
2.1 KiB
JavaScript
const {DocumentSheetV2, HandlebarsApplicationMixin} = foundry.applications.api
|
|
|
|
export class SpellSheet extends HandlebarsApplicationMixin(DocumentSheetV2) {
|
|
|
|
|
|
/** @inheritDoc */
|
|
static DEFAULT_OPTIONS = {
|
|
position: {width: 520, height: 480},
|
|
classes: ['dsa41', 'sheet', 'item', 'spell'],
|
|
tag: 'form',
|
|
form: {
|
|
submitOnChange: true,
|
|
closeOnSubmit: false,
|
|
handler: SpellSheet.#onSubmitForm
|
|
}
|
|
}
|
|
|
|
static TABS = {
|
|
sheet: {
|
|
tabs: [
|
|
{id: 'meta', group: 'sheet', label: 'Meta'},
|
|
{id: 'variants', group: 'sheet', label: 'Varianten'},
|
|
{id: 'commonality', group: 'sheet', label: 'Verbreitung'},
|
|
],
|
|
initial: 'meta'
|
|
}
|
|
}
|
|
|
|
/** @inheritDoc */
|
|
static PARTS = {
|
|
form: {
|
|
template: `systems/DSA_4-1/templates/item/spell/main-sheet.hbs`
|
|
},
|
|
meta: {
|
|
template: `systems/DSA_4-1/templates/item/spell/tab-meta.hbs`
|
|
},
|
|
variants: {
|
|
template: `systems/DSA_4-1/templates/item/spell/tab-variants.hbs`
|
|
},
|
|
commonality: {
|
|
template: `systems/DSA_4-1/templates/item/spell/tab-commonality.hbs`
|
|
}
|
|
}
|
|
|
|
_configureRenderOptions(options) {
|
|
super._configureRenderOptions(options)
|
|
|
|
if (options.window) {
|
|
options.window.title = this.document.name
|
|
}
|
|
|
|
return options
|
|
}
|
|
|
|
/**
|
|
* Handle form submission
|
|
* @this {SpellSheet}
|
|
* @param {SubmitEvent} event
|
|
* @param {HTMLFormElement} form
|
|
* @param {FormDataExtended} formData
|
|
*/
|
|
static async #onSubmitForm(event, form, formData) {
|
|
event.preventDefault()
|
|
|
|
await this.document.update(formData.object) // Note: formData.object
|
|
}
|
|
|
|
/** @override */
|
|
async _prepareContext(options) {
|
|
const context = await super._prepareContext(options);
|
|
const spellData = context.document;
|
|
|
|
context.system = spellData.system;
|
|
context.flags = spellData.flags;
|
|
context.name = spellData.name;
|
|
|
|
return context;
|
|
}
|
|
|
|
} |