Export scriptarium OK agfain
All checks were successful
Release Creation / build (release) Successful in 2m29s

This commit is contained in:
2025-07-16 23:37:44 +02:00
parent f83548b91e
commit 8d39a0526f
2 changed files with 21 additions and 11 deletions

View File

@@ -1484,11 +1484,11 @@
background: rgba(220,220,210,0.75); background: rgba(220,220,210,0.75);
border: 2px solid #545469; border: 2px solid #545469;
} }
.chat-message hr { .chat-message hr {
margin: 0.2rem 0; margin: 0.2rem 0;
} }
.chat-icon { .chat-icon {
border: 0; border: 0;
padding: 2px 6px 2px 2px; padding: 2px 6px 2px 2px;

View File

@@ -12,14 +12,18 @@ export class ExportScriptarium {
} }
constructor() { constructor() {
Hooks.on("getActorDirectoryFolderContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) }) //Hooks.on("getActorDirectoryFolderContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) })
Hooks.on("getActorDirectoryEntryContext", (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) { onActorDirectoryMenu(actorDirectory, menus) {
// DEBUG console.log("ExportScriptarium.onActorDirectoryMenu", actorDirectory, menus)
menus.push({ menus.push({
name: 'Export Personnages <i class="fa-regular fa-file-csv"></i>', name: 'Export Personnages',
icon: IMG_SCRIPTARIUM, icon: '<i class="fa-solid fa-download"></i>', //IMG_SCRIPTARIUM,
condition: (target) => game.user.isGM && condition: (target) => game.user.isGM &&
OptionsAvancees.isUsing(EXPORT_CSV_SCRIPTARIUM) && OptionsAvancees.isUsing(EXPORT_CSV_SCRIPTARIUM) &&
this.$getActors(actorDirectory, target).length > 0, this.$getActors(actorDirectory, target).length > 0,
@@ -28,22 +32,28 @@ export class ExportScriptarium {
} }
$getTargetName(actorDirectory, target) { $getTargetName(actorDirectory, target) {
target = $(target)
const li = target.closest(".directory-item") const li = target.closest(".directory-item")
const folderId = li.data("folderId") const folderId = li.data("folderId")
const actorId = li.data("documentId") const actorId = li.data("entryId")
return actorId return actorId
? game.actors.get(actorId).name ? 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) { $getActors(actorDirectory, target) {
if (actorDirectory.id != "actors") {
return []
}
// DEBUG console.log("ExportScriptarium.$getActors", actorDirectory, target)
target = $(target)
const li = target.closest(".directory-item") const li = target.closest(".directory-item")
const folderId = li.data("folderId") const folderId = li.data("folderId")
const actorId = li.data("documentId") const actorId = li.data("entryId")
const actors = actorId const actors = actorId
? [game.actors.get(actorId)] ? [game.actors.get(actorId)]
: folderId : 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) 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 actorLines = actors.map(actor => Misc.join(this.getActorLine(actor), ';'))
const data = Misc.join([header, ...actorLines], eol) const data = Misc.join([header, ...actorLines], eol)
const filename = `scriptarium-${targetName?.slugify()}.csv`; 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() { getHeaderLine() {