Prevent partial-updates from being overwritten when adding/deleting a dice (closes #87)
This commit is contained in:
parent
2a7d485ab4
commit
29a1e0eacf
2 changed files with 26 additions and 0 deletions
|
|
@ -30,6 +30,16 @@ export class DiceList extends GenericDialog {
|
||||||
return ctx;
|
return ctx;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
async activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
|
||||||
|
if (!this.isEditable) return;
|
||||||
|
console.debug(`.dungeon | DiceList adding event listeners`);
|
||||||
|
|
||||||
|
html.find(`[data-die-update]`)
|
||||||
|
.on(`change`, this.updateDieInMemoryOnly.bind(this))
|
||||||
|
};
|
||||||
|
|
||||||
async _updateObject(_event, formData) {
|
async _updateObject(_event, formData) {
|
||||||
const newDice = this.dice.map(d => {
|
const newDice = this.dice.map(d => {
|
||||||
return {
|
return {
|
||||||
|
|
@ -41,6 +51,19 @@ export class DiceList extends GenericDialog {
|
||||||
await this.actor.update({ "system.dice": newDice });
|
await this.actor.update({ "system.dice": newDice });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
updateDieInMemoryOnly($e) {
|
||||||
|
const target = $e.currentTarget;
|
||||||
|
const data = target.dataset;
|
||||||
|
const value = target.value;
|
||||||
|
const [ dieId, field ] = data.dieUpdate.split(`.`);
|
||||||
|
for (const die of this.dice) {
|
||||||
|
if (die.id === dieId) {
|
||||||
|
die[field] = value;
|
||||||
|
return
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
addDie() {
|
addDie() {
|
||||||
this.dice.push({
|
this.dice.push({
|
||||||
count: 1,
|
count: 1,
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
class="count"
|
class="count"
|
||||||
name="{{die.id}}.count"
|
name="{{die.id}}.count"
|
||||||
value="{{die.count}}"
|
value="{{die.count}}"
|
||||||
|
data-die-update="{{die.id}}.count"
|
||||||
aria-label="The number of dice to roll at the same time"
|
aria-label="The number of dice to roll at the same time"
|
||||||
>
|
>
|
||||||
<span class="large" aria-hidden="true">d</span>
|
<span class="large" aria-hidden="true">d</span>
|
||||||
|
|
@ -17,6 +18,7 @@
|
||||||
class="sides"
|
class="sides"
|
||||||
name="{{die.id}}.sides"
|
name="{{die.id}}.sides"
|
||||||
value="{{die.sides}}"
|
value="{{die.sides}}"
|
||||||
|
data-die-update="{{die.id}}.sides"
|
||||||
aria-label="The number of sides that are on the dice"
|
aria-label="The number of sides that are on the dice"
|
||||||
>
|
>
|
||||||
<span class="large" aria-hidden="true">x</span>
|
<span class="large" aria-hidden="true">x</span>
|
||||||
|
|
@ -26,6 +28,7 @@
|
||||||
class="repeat"
|
class="repeat"
|
||||||
name="{{die.id}}.repeat"
|
name="{{die.id}}.repeat"
|
||||||
value="{{die.repeat}}"
|
value="{{die.repeat}}"
|
||||||
|
data-die-update="{{die.id}}.repeat"
|
||||||
aria-label="The number of times to repeat this dice "
|
aria-label="The number of times to repeat this dice "
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue