Add event listening for embedded item deletion
This commit is contained in:
parent
df1e768cc2
commit
dcdc1b7764
2 changed files with 32 additions and 7 deletions
|
|
@ -1,24 +1,47 @@
|
||||||
export class PlayerActor {
|
export class PlayerActor {
|
||||||
|
/** @this {Actor} */
|
||||||
static async genericEmbeddedUpdate($event) {
|
static async genericEmbeddedUpdate($event) {
|
||||||
let data = $event.target.dataset;
|
let data = $event.delegateTarget.dataset;
|
||||||
let item = await fromUuid(data.embeddedId);
|
let item = await fromUuid(data.embeddedId);
|
||||||
item?.update({ [data.embeddedUpdate]: $event.target.value });
|
item?.update({ [data.embeddedUpdate]: $event.target.value });
|
||||||
|
this.sheet.render();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** @this {Actor} */
|
||||||
static async genericEmbeddedDelete($event) {
|
static async genericEmbeddedDelete($event) {
|
||||||
let data = $event.target.dataset;
|
let data = $event.delegateTarget.dataset;
|
||||||
let itemID = data.embeddedId;
|
let item = await fromUuid(data.embeddedId);
|
||||||
if (!itemID) {
|
|
||||||
// TODO: Throw a notification here
|
if (!item) {
|
||||||
|
ui.notifications.error(
|
||||||
|
`dotdungeon.notification.error.item-not-found`,
|
||||||
|
{ console: false }
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
// TODO: Ask for confirmation before deleting
|
|
||||||
|
Dialog.confirm({
|
||||||
|
title: game.i18n.format(
|
||||||
|
`dotdungeon.dialogs.${item.type}.delete.title`,
|
||||||
|
item
|
||||||
|
),
|
||||||
|
content: game.i18n.format(
|
||||||
|
`dotdungeon.dialogs.${item.type}.delete.content`,
|
||||||
|
item
|
||||||
|
),
|
||||||
|
yes: () => {
|
||||||
|
item.delete();
|
||||||
|
},
|
||||||
|
defaultYes: false,
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** @this {Actor} */
|
||||||
static createCustomSpell() {
|
static createCustomSpell() {
|
||||||
this.createEmbeddedDocuments(
|
this.createEmbeddedDocuments(
|
||||||
"Item",
|
"Item",
|
||||||
[{ type: `spell`, name: `New Spell` }]
|
[{ type: `spell`, name: `New Spell` }]
|
||||||
);
|
);
|
||||||
|
this.sheet.render();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,9 @@ export class PlayerSheet extends GenericActorSheet {
|
||||||
|
|
||||||
html.find(`.add-spell`).on(`click`, this.actor.createCustomSpell.bind(this.actor));
|
html.find(`.add-spell`).on(`click`, this.actor.createCustomSpell.bind(this.actor));
|
||||||
html.find(`[data-embedded-update]`)
|
html.find(`[data-embedded-update]`)
|
||||||
.on(`change`, this.actor.updateEmbeddedDocument.bind(this.actor));
|
.on(`change`, this.actor.genericEmbeddedUpdate.bind(this.actor));
|
||||||
|
html.find(`[data-embedded-delete]`)
|
||||||
|
.on(`click`, this.actor.genericEmbeddedDelete.bind(this.actor));
|
||||||
};
|
};
|
||||||
|
|
||||||
async getData() {
|
async getData() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue