88 lines
2.2 KiB
JavaScript
88 lines
2.2 KiB
JavaScript
import {XmlImport} from "../xml-import/xml-import.mjs";
|
|
|
|
const {ApplicationV2, HandlebarsApplicationMixin} = foundry.applications.api
|
|
|
|
export class XmlImportDialog extends HandlebarsApplicationMixin(ApplicationV2) {
|
|
|
|
static DEFAULT_OPTIONS = {
|
|
classes: ['dsa41', 'dialog', 'xmlimport'],
|
|
tag: "form",
|
|
position: {
|
|
width: 320,
|
|
height: 478
|
|
},
|
|
window: {
|
|
resizable: false,
|
|
},
|
|
form: {
|
|
submitOnChange: false,
|
|
closeOnSubmit: true,
|
|
handler: XmlImportDialog.#onSubmitForm
|
|
},
|
|
}
|
|
|
|
static PARTS = {
|
|
form: {
|
|
template: 'systems/DSA_4-1/templates/dialog/xml-import.hbs',
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @type {Actor}
|
|
* @private
|
|
*/
|
|
_actor = null
|
|
/**
|
|
* @type {XmlImport}
|
|
* @private
|
|
*/
|
|
_xmlImport = null
|
|
|
|
constructor(actor) {
|
|
super();
|
|
this._actor = actor
|
|
this._xmlImport = new XmlImport()
|
|
}
|
|
|
|
static async #onSubmitForm(event, form, formData) {
|
|
event.preventDefault()
|
|
console.debug("Importing XML with following options", formData.object)
|
|
|
|
const options = {}
|
|
|
|
formData.object.importOption.forEach(p => {
|
|
options[p] = true
|
|
})
|
|
|
|
const file = form.querySelector('input[type="file"]').files[0]
|
|
|
|
try {
|
|
form.querySelector('button[type="submit"]').setAttribute("disabled", true)
|
|
await this._xmlImport.importCharacter(this._actor._id, file, options)
|
|
form.querySelector('button[type="submit"]').setAttribute("disabled", false)
|
|
return true
|
|
} catch (e) {
|
|
console.error(e)
|
|
form.querySelector('button[type="submit"]').setAttribute("disabled", false)
|
|
return false
|
|
}
|
|
}
|
|
|
|
_configureRenderOptions(options) {
|
|
super._configureRenderOptions(options)
|
|
options.window.title = `${this._actor.name} importieren`
|
|
return options
|
|
}
|
|
|
|
async _prepareContext(options) {
|
|
const context = await super._prepareContext(options)
|
|
context.options = XmlImport.getOptions()
|
|
return context
|
|
}
|
|
|
|
_onRender(context, options) {
|
|
|
|
}
|
|
|
|
|
|
} |