81 lines
2.1 KiB
JavaScript
81 lines
2.1 KiB
JavaScript
/**
|
|
* Extend the basic ItemSheet with some very simple modifications
|
|
*/
|
|
export class AcksItemSheet extends ItemSheet {
|
|
constructor(...args) {
|
|
super(...args);
|
|
|
|
/**
|
|
* Keep track of the currently active sheet tab
|
|
* @type {string}
|
|
*/
|
|
}
|
|
|
|
/**
|
|
* Extend and override the default options used by the Simple Item Sheet
|
|
* @returns {Object}
|
|
*/
|
|
static get defaultOptions() {
|
|
return mergeObject(super.defaultOptions, {
|
|
classes: ["acks", "sheet", "item"],
|
|
width: 520,
|
|
height: 390,
|
|
resizable: false,
|
|
tabs: [
|
|
{
|
|
navSelector: ".tabs",
|
|
contentSelector: ".sheet-body",
|
|
initial: "description",
|
|
},
|
|
],
|
|
});
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
/** @override */
|
|
get template() {
|
|
const path = "systems/acks/templates/items/";
|
|
return `${path}/${this.item.data.type}-sheet.html`;
|
|
}
|
|
|
|
/**
|
|
* Prepare data for rendering the Item sheet
|
|
* The prepared data object contains both the actor data as well as additional sheet options
|
|
*/
|
|
getData() {
|
|
const data = super.getData();
|
|
data.config = CONFIG.ACKS;
|
|
return data;
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
/**
|
|
* Activate event listeners using the prepared sheet HTML
|
|
* @param html {HTML} The prepared HTML object ready to be rendered into the DOM
|
|
*/
|
|
activateListeners(html) {
|
|
html.find('input[data-action="add-tag"]').keypress((ev) => {
|
|
if (event.which == 13) {
|
|
let value = $(ev.currentTarget).val();
|
|
let values = value.split(',');
|
|
this.object.pushTag(values);
|
|
}
|
|
});
|
|
html.find('.tag-delete').click((ev) => {
|
|
let value = ev.currentTarget.parentElement.dataset.tag;
|
|
this.object.popTag(value);
|
|
});
|
|
html.find('a.melee-toggle').click(() => {
|
|
this.object.update({data: {melee: !this.object.data.data.melee}});
|
|
});
|
|
|
|
html.find('a.missile-toggle').click(() => {
|
|
this.object.update({data: {missile: !this.object.data.data.missile}});
|
|
});
|
|
|
|
super.activateListeners(html);
|
|
}
|
|
}
|