Messages de confirmations

* Confirmer pour monter dans les TMR
* les confirmations peuvent être désactivées (par utilisateur)
* plusieurs groupes différents sont gérés
This commit is contained in:
Vincent Vandemeulebrouck
2022-10-04 23:23:43 +02:00
parent ade977ed68
commit 970c8b0244
5 changed files with 156 additions and 73 deletions

View File

@ -12,6 +12,7 @@ import { RdDItem } from "./item.js";
import { Monnaie } from "./item-monnaie.js";
import { RdDPossession } from "./rdd-possession.js";
import { RdDNameGen } from "./rdd-namegen.js";
import { RdDConfirm } from "./rdd-confirm.js";
/* -------------------------------------------- */
// This table starts at 0 -> niveau -10
@ -262,7 +263,7 @@ export class RdDUtility {
Handlebars.registerHelper('caseTmr-type', coord => TMRUtility.getTMRType(coord));
Handlebars.registerHelper('typeTmr-name', coord => TMRUtility.typeTmrName(coord));
Handlebars.registerHelper('min', (...args) => Math.min(...args.slice(0, -1)));
Handlebars.registerHelper('regle-optionnelle', (option) => ReglesOptionelles.isUsing(option) );
Handlebars.registerHelper('regle-optionnelle', (option) => ReglesOptionelles.isUsing(option));
Handlebars.registerHelper('filtreTriCompetences', competences => competences.filter(it => it.system.isVisible)
.sort((a, b) => {
@ -855,36 +856,14 @@ export class RdDUtility {
return chatData;
}
/* -------------------------------------------- */
static confirmer(options) {
const d = new Dialog({
title: options.title,
content: options.content,
buttons: {
action: {
icon: '<i class="fas fa-check"></i>',
label: options.buttonLabel,
callback: () => {
options.onAction();
}
},
cancel: {
icon: '<i class="fas fa-times"></i>',
label: "Annuler"
}
},
default: "cancel"
});
d.render(true);
}
/* -------------------------------------------- */
static confirmerSuppressionSubacteur(sheet, subActor, htmlToDelete) {
RdDUtility.confirmer({
content: `<p>Etes vous certain de vouloir supprimer le lien vers le véhicule/monture/suivant : ${subActor.name} ?</p>`,
RdDConfirm.confirmer({
settingConfirmer: "confirmation-supprimer-lien-acteur",
content: `<p>Etes vous certain de vouloir supprimer le lien vers ${subActor.name} ?</p>`,
title: 'Confirmer la suppression',
buttonLabel: 'Supprimer le lien',
onAction: () => {
onAction: () => {
console.log('Delete : ', subActor.id);
sheet.actor.removeSubacteur(subActor.id);
RdDUtility.slideOnDelete(sheet, htmlToDelete);
@ -899,47 +878,41 @@ export class RdDUtility {
ui.notifications.warn("Suppression des monnaies de base impossible");
return;
}
let msgTxt = '<p>Etes vous certain de vouloir supprimer cet objet ?';
let buttons = {
delete: {
icon: '<i class="fas fa-check"></i>',
label: "Supprimer l'objet",
callback: () => {
console.log('Delete : ', itemId);
sheet.actor.deleteEmbeddedDocuments('Item', [itemId], { renderSheet: false });
RdDUtility.slideOnDelete(sheet, htmlToDelete);
}
},
cancel: {
icon: '<i class="fas fa-times"></i>',
label: "Annuler"
const confirmationSuppression = {
settingConfirmer: "confirmation-supprimer-" + item.getItemGroup(),
content: `<p>Etes vous certain de vouloir supprimer: ${item.name}?</p>`,
title: `Supprimer ${item.name}`,
buttonLabel: "Supprimer",
onAction: () => {
console.log('Delete : ', itemId);
sheet.actor.deleteEmbeddedDocuments('Item', [itemId], { renderSheet: false });
RdDUtility.slideOnDelete(sheet, htmlToDelete);
}
};
if (item.isConteneurNonVide()) {
confirmationSuppression.content += `<p>Ce conteneur n'est pas vide. Que voulez vous supprimer?</p>`;
confirmationSuppression.settingConfirmer = undefined;
RdDConfirm.confirmer(confirmationSuppression,
{
'deleteall': {
icon: '<i class="fas fa-check"></i>',
label: "Supprimer conteneur et contenu",
callback: () => {
console.log("Delete : ", itemId);
sheet.actor.deleteAllConteneur(itemId, { renderSheet: false });
RdDUtility.slideOnDelete(sheet, htmlToDelete);
}
}
});
}
if (item.type == 'conteneur' && item.system.contenu.length > 0) {
msgTxt += "<br>Ce conteneur n'est pas vide. Choisissez l'option de suppression";
buttons['deleteall'] = {
icon: '<i class="fas fa-check"></i>',
label: "Supprimer le conteneur et tout son contenu",
callback: () => {
console.log("Delete : ", itemId);
sheet.actor.deleteAllConteneur(itemId, { renderSheet: false });
RdDUtility.slideOnDelete(sheet, htmlToDelete);
}
}
else {
RdDConfirm.confirmer(confirmationSuppression)
}
msgTxt += "</p>";
let d = new Dialog({
title: "Confirmer la suppression",
content: msgTxt,
buttons: buttons,
default: "cancel"
});
d.render(true);
}
static slideOnDelete(sheet, htmlToDelete) {
return htmlToDelete.slideUp(200, () => sheet.render(false));
return htmlToDelete.slideUp(200, () => sheet.render(false));
}
/* -------------------------------------------- */