FIx pour Babele 2.8.X
This commit is contained in:
@@ -399,6 +399,15 @@ export default class InnRoller {
|
||||
message += `</div>`;
|
||||
}
|
||||
message += `</div>`;
|
||||
|
||||
// Bouton pour enregistrer dans le journal "Menus"
|
||||
message += `<div class="inn-journal-action" style="margin-top:8px;text-align:right">`;
|
||||
message += `<button type="button" class="inn-journal-btn" data-action="saveMenuToJournal"`;
|
||||
message += ` data-menu-name="${menuName}">`;
|
||||
message += `<i class="fas fa-book"></i> Enregistrer dans le journal "Menus"`;
|
||||
message += `</button>`;
|
||||
message += `</div>`;
|
||||
|
||||
message += `</div>`;
|
||||
|
||||
await ChatMessage.create({
|
||||
@@ -407,4 +416,46 @@ export default class InnRoller {
|
||||
whisper: ChatMessage.getWhisperRecipients("GM")
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Enregistre le contenu d'un menu dans le journal FoundryVTT "Menus"
|
||||
* @param {String} menuName - Nom du menu (ex: "Menu Commun")
|
||||
* @param {String} content - HTML complet du message de tchat
|
||||
*/
|
||||
static async saveMenuToJournal(menuName, content) {
|
||||
if (!game.user.isGM) {
|
||||
ui.notifications.warn("Seul le MJ peut enregistrer dans le journal.");
|
||||
return;
|
||||
}
|
||||
|
||||
const journalName = "Menus";
|
||||
let journal = game.journal.find(j => j.name === journalName);
|
||||
if (!journal) {
|
||||
journal = await JournalEntry.create({ name: journalName });
|
||||
}
|
||||
|
||||
// Supprimer le bouton du contenu avant de l'enregistrer
|
||||
const parser = new DOMParser();
|
||||
const doc = parser.parseFromString(content, 'text/html');
|
||||
doc.querySelectorAll('.inn-journal-action').forEach(el => el.remove());
|
||||
const cleanContent = doc.body.innerHTML;
|
||||
|
||||
const now = new Date();
|
||||
const dateStr = now.toLocaleDateString('fr-FR');
|
||||
const pageName = `${menuName} (${dateStr})`;
|
||||
|
||||
await journal.createEmbeddedDocuments("JournalEntryPage", [{
|
||||
name: pageName,
|
||||
type: "text",
|
||||
text: {
|
||||
content: cleanContent,
|
||||
format: CONST.JOURNAL_ENTRY_PAGE_FORMATS.HTML
|
||||
}
|
||||
}]);
|
||||
|
||||
// Ouvrir le journal sur la nouvelle page
|
||||
const page = journal.pages.find(p => p.name === pageName);
|
||||
journal.sheet.render(true, { pageId: page?.id });
|
||||
ui.notifications.info(`Menu "${menuName}" enregistré dans le journal.`);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user