|
|
|
@@ -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 <i class="fa-regular fa-file-csv"></i>',
|
|
|
|
|
icon: IMG_SCRIPTARIUM,
|
|
|
|
|
name: 'Export Personnages',
|
|
|
|
|
icon: '<i class="fa-solid fa-download"></i>', //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() {
|
|
|
|
|