66 lines
2.3 KiB
JavaScript
66 lines
2.3 KiB
JavaScript
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
|
|
|
export default class HeritiersCompetenceSheet extends HeritiersItemSheet {
|
|
/** @override */
|
|
static DEFAULT_OPTIONS = {
|
|
...super.DEFAULT_OPTIONS,
|
|
window: {
|
|
...super.DEFAULT_OPTIONS.window,
|
|
title: "SHEETS.Item.competence",
|
|
},
|
|
actions: {
|
|
addSpecialite: HeritiersCompetenceSheet.#onAddSpecialite,
|
|
deleteSpecialite: HeritiersCompetenceSheet.#onDeleteSpecialite,
|
|
editSpecialite: HeritiersCompetenceSheet.#onEditSpecialite,
|
|
editSpecialiteDescription: HeritiersCompetenceSheet.#onEditSpecialiteDescription,
|
|
}
|
|
}
|
|
|
|
/** @override */
|
|
static PARTS = {
|
|
sheet: {
|
|
template: "systems/fvtt-les-heritiers/templates/item-competence-sheet.hbs",
|
|
},
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
/* Event Handlers */
|
|
/* -------------------------------------------- */
|
|
|
|
static async #onAddSpecialite(event, target) {
|
|
let spec = foundry.utils.duplicate(this.item.system.specialites) || []
|
|
spec.push({ name: "Nouvelle Spécialité", id: foundry.utils.randomID(16), used: false })
|
|
await this.item.update({ 'system.specialites': spec })
|
|
}
|
|
|
|
static async #onDeleteSpecialite(event, target) {
|
|
const li = target.closest(".specialite-item")
|
|
let index = parseInt(li.dataset.specialiteIndex)
|
|
let spec = foundry.utils.duplicate(this.item.system.specialites) || []
|
|
spec.splice(index, 1)
|
|
await this.item.update({ 'system.specialites': spec })
|
|
}
|
|
|
|
static async #onEditSpecialite(event, target) {
|
|
const li = target.closest(".specialite-item")
|
|
let index = parseInt(li.dataset.specialiteIndex)
|
|
let spec = foundry.utils.duplicate(this.item.system.specialites) || []
|
|
if (spec[index]) {
|
|
spec[index].name = target.value
|
|
spec[index].id = spec[index].id || foundry.utils.randomID(16)
|
|
await this.item.update({ 'system.specialites': spec })
|
|
}
|
|
}
|
|
|
|
static async #onEditSpecialiteDescription(event, target) {
|
|
const li = target.closest(".specialite-item")
|
|
let index = parseInt(li.dataset.specialiteIndex)
|
|
let spec = foundry.utils.duplicate(this.item.system.specialites) || []
|
|
if (spec[index]) {
|
|
spec[index].description = target.value
|
|
spec[index].id = spec[index].id || foundry.utils.randomID(16)
|
|
await this.item.update({ 'system.specialites': spec })
|
|
}
|
|
}
|
|
}
|