From 8d39a0526f7c81c0b4614b35ecacd8615ca17f9f Mon Sep 17 00:00:00 2001 From: LeRatierBretonnien Date: Wed, 16 Jul 2025 23:37:44 +0200 Subject: [PATCH] Export scriptarium OK agfain --- less/foundryvtt-reve-de-dragon.less | 4 +-- .../export-scriptarium/export-scriptarium.js | 28 +++++++++++++------ 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/less/foundryvtt-reve-de-dragon.less b/less/foundryvtt-reve-de-dragon.less index 8a4d524d..b86792b4 100644 --- a/less/foundryvtt-reve-de-dragon.less +++ b/less/foundryvtt-reve-de-dragon.less @@ -1484,11 +1484,11 @@ background: rgba(220,220,210,0.75); border: 2px solid #545469; } - + .chat-message hr { margin: 0.2rem 0; } - + .chat-icon { border: 0; padding: 2px 6px 2px 2px; diff --git a/module/actor/export-scriptarium/export-scriptarium.js b/module/actor/export-scriptarium/export-scriptarium.js index 89d7a231..7d01b326 100644 --- a/module/actor/export-scriptarium/export-scriptarium.js +++ b/module/actor/export-scriptarium/export-scriptarium.js @@ -12,14 +12,18 @@ export class ExportScriptarium { } constructor() { - Hooks.on("getActorDirectoryFolderContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) }) - Hooks.on("getActorDirectoryEntryContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) }) + //Hooks.on("getActorDirectoryFolderContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) }) + Hooks.on("getFolderContextOptions", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) }) + //Hooks.on("getActorDirectoryEntryContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) }) + Hooks.on("getActorContextOptions", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) }) + } onActorDirectoryMenu(actorDirectory, menus) { + // DEBUG console.log("ExportScriptarium.onActorDirectoryMenu", actorDirectory, menus) menus.push({ - name: 'Export Personnages ', - icon: IMG_SCRIPTARIUM, + name: 'Export Personnages', + icon: '', //IMG_SCRIPTARIUM, condition: (target) => game.user.isGM && OptionsAvancees.isUsing(EXPORT_CSV_SCRIPTARIUM) && this.$getActors(actorDirectory, target).length > 0, @@ -28,22 +32,28 @@ export class ExportScriptarium { } $getTargetName(actorDirectory, target) { + target = $(target) const li = target.closest(".directory-item") const folderId = li.data("folderId") - const actorId = li.data("documentId") + const actorId = li.data("entryId") return actorId ? game.actors.get(actorId).name - : actorDirectory.folders.find(it => it.id == folderId).name + : actorDirectory.collection.filter(it => it.folder.id == folderId).name } $getActors(actorDirectory, target) { + if (actorDirectory.id != "actors") { + return [] + } + // DEBUG console.log("ExportScriptarium.$getActors", actorDirectory, target) + target = $(target) const li = target.closest(".directory-item") const folderId = li.data("folderId") - const actorId = li.data("documentId") + const actorId = li.data("entryId") const actors = actorId ? [game.actors.get(actorId)] : folderId - ? actorDirectory.folders.find(it => it.id == folderId).contents + ? actorDirectory.collection.filter(it => it.folder.id == folderId) : [] return actors.filter(it => it.type == ACTOR_TYPES.personnage) } @@ -54,7 +64,7 @@ export class ExportScriptarium { const actorLines = actors.map(actor => Misc.join(this.getActorLine(actor), ';')) const data = Misc.join([header, ...actorLines], eol) const filename = `scriptarium-${targetName?.slugify()}.csv`; - saveDataToFile(data, "text/csv;charset=windows-1252", `${filename}`); + foundry.utils.saveDataToFile(data, "text/csv;charset=windows-1252", `${filename}`); } getHeaderLine() {