Export csv pour Scriptarium
Activable dans les options avancées du système Un menu contextuel permet d'écrire dans les logs
This commit is contained in:
91
module/settings/options-avancees.js
Normal file
91
module/settings/options-avancees.js
Normal file
@ -0,0 +1,91 @@
|
||||
import { SYSTEM_RDD } from "../constants.js"
|
||||
import { Misc } from "../misc.js"
|
||||
|
||||
export const EXPORT_CSV_SCRIPTARIUM = 'export-csv-scriptarium'
|
||||
|
||||
const OPTIONS_AVANCEES = [
|
||||
{ group: 'Menus', name: EXPORT_CSV_SCRIPTARIUM, descr: "Proposer le menu d'export csv Scriptarium (raffraichissement requis)" },
|
||||
]
|
||||
|
||||
export class OptionsAvancees extends FormApplication {
|
||||
static init() {
|
||||
for (const regle of OPTIONS_AVANCEES) {
|
||||
const name = regle.name
|
||||
const id = OptionsAvancees._getId(name)
|
||||
game.settings.register(SYSTEM_RDD, id, { name: id, scope: regle.scope ?? "world", config: false, default: regle.default == undefined ? true : regle.default, type: Boolean })
|
||||
}
|
||||
|
||||
game.settings.registerMenu(SYSTEM_RDD, "rdd-options-avancees", {
|
||||
name: "Configurer les options avancées",
|
||||
label: "Options avancées",
|
||||
hint: "Ouvre la fenêtre de configuration des options avancées",
|
||||
icon: "fas fa-bars",
|
||||
type: OptionsAvancees
|
||||
})
|
||||
}
|
||||
|
||||
constructor(...args) {
|
||||
super(...args)
|
||||
}
|
||||
|
||||
static _getId(name) {
|
||||
return `rdd-advanced-${name}`
|
||||
}
|
||||
|
||||
static get defaultOptions() {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
id: "options-avancees",
|
||||
template: "systems/foundryvtt-reve-de-dragon/templates/settings/options-avancees.hbs",
|
||||
height: 650,
|
||||
width: 550,
|
||||
minimizable: false,
|
||||
closeOnSubmit: true,
|
||||
title: "Options avancées"
|
||||
}, { inplace: false })
|
||||
}
|
||||
|
||||
getData() {
|
||||
let formData = super.getData()
|
||||
const regles = OPTIONS_AVANCEES.filter(it => game.user.isGM || it.scope == "client")
|
||||
.map(it => {
|
||||
it = foundry.utils.duplicate(it)
|
||||
it.id = OptionsAvancees._getId(it.name)
|
||||
it.active = OptionsAvancees.isSet(it.name)
|
||||
return it
|
||||
})
|
||||
formData.regles = regles
|
||||
formData.groups = Misc.classify(regles, it => it.group)
|
||||
return formData
|
||||
}
|
||||
|
||||
static getSettingKey(name){
|
||||
return `${SYSTEM_RDD}.${this._getId(name)}`
|
||||
}
|
||||
|
||||
static isUsing(name) {
|
||||
return OptionsAvancees.isSet(name)
|
||||
}
|
||||
|
||||
static isSet(name) {
|
||||
return game.settings.get(SYSTEM_RDD, OptionsAvancees._getId(name))
|
||||
}
|
||||
|
||||
static set(name, value) {
|
||||
return game.settings.set(SYSTEM_RDD, OptionsAvancees._getId(name), value ? true : false)
|
||||
}
|
||||
|
||||
activateListeners(html) {
|
||||
html.find(".select-option").click((event) => {
|
||||
if (event.currentTarget.attributes.name) {
|
||||
let id = event.currentTarget.attributes.name.value
|
||||
let isChecked = event.currentTarget.checked
|
||||
game.settings.set(SYSTEM_RDD, id, isChecked)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
async _updateObject(event, formData) {
|
||||
this.close()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user