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