Vincent Vandemeulebrouck
a103239288
Quand mergeObject est utilisé pour retourner une valeur, faire très attention à ne pas passer un Item/Actor, ou une de ses sous parties en premier paramètre sans préciser l'option { inplace: false } Sinon, le premier paramètre subit une mutation!
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
import { Grammar } from "./grammar.js";
|
|
import { ReglesOptionnelles } from "./settings/regles-optionnelles.js";
|
|
|
|
export class RdDConfirm {
|
|
/* -------------------------------------------- */
|
|
static confirmer(options, autresActions) {
|
|
let buttons = {
|
|
"action": RdDConfirm._createButtonAction(options),
|
|
"cancel": RdDConfirm._createButtonCancel()
|
|
};
|
|
if (options.settingConfirmer) {
|
|
buttons = foundry.utils.mergeObject(RdDConfirm._createButtonActionSave(options), buttons);
|
|
}
|
|
if (autresActions) {
|
|
buttons = foundry.utils.mergeObject(autresActions, buttons, { inplace: false });
|
|
}
|
|
const dialogDetails = {
|
|
title: options.title,
|
|
content: options.content,
|
|
default: "cancel",
|
|
buttons: buttons
|
|
};
|
|
new Dialog(dialogDetails, { width: 150 * Object.keys(buttons).length }).render(true);
|
|
}
|
|
|
|
static _createButtonCancel() {
|
|
return { icon: '<i class="fas fa-times"></i>', label: "Annuler" };
|
|
}
|
|
|
|
static _createButtonAction(options) {
|
|
return {
|
|
icon: '<i class="fas fa-check"></i>',
|
|
label: options.buttonLabel,
|
|
callback: () => options.onAction()
|
|
};
|
|
}
|
|
|
|
static _createButtonActionSave(options) {
|
|
return {
|
|
"actionSave": {
|
|
icon: '<i class="fas fa-user-check"></i>',
|
|
label: options.buttonLabel + "<br>et ne plus demander",
|
|
callback: () => {
|
|
ReglesOptionnelles.set(options.settingConfirmer, false);
|
|
options.onAction();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
} |