52 lines
1.4 KiB
JavaScript

const ManagerPage = require("./managerpage");
const ejs = require('ejs')
const { logger } = require("./filesystem")
const fs = require("fs");
const { showErrorPopup } = require("./popup");
class WelcomePage extends ManagerPage {
constructor(manager, options) {
super(manager, options);
}
render(str) {
const element = this.getElement();
element.innerHTML = str;
element.querySelector(".basic").addEventListener("click", (e) => this.onbasicClicked(e));
element.querySelector(".advanced").addEventListener("click", (e) => this.onAdvancedClicked(e));
super.render();
}
show(previousPage) {
ejs.renderFile("./ejs/welcome.ejs", {...this.options, ...this.manager.options}, {}, (err, str) => {
if (!err) {
this.render(str);
} else {
logger.error(err);
}
});
super.show(previousPage);
}
onbasicClicked(e) {
this.createOptionsFile("basic");
}
onAdvancedClicked(e) {
this.createOptionsFile("advanced");
}
createOptionsFile(mode) {
try {
fs.writeFileSync("options.json", JSON.stringify({mode: mode}));
location.reload();
} catch (e) {
showErrorPopup(`A critical error occurred, check ${this.manager.options.logLocation} for more info.`)
}
}
}
module.exports = WelcomePage;