mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
const { logger } = require("./filesystem");
|
|
const ejs = require('ejs')
|
|
|
|
class ManagerPage {
|
|
manager;
|
|
ejsFile;
|
|
element;
|
|
options = {};
|
|
previousPage;
|
|
|
|
constructor(manager, ejsFile) {
|
|
this.manager = manager;
|
|
this.element = document.createElement('div');
|
|
this.element.classList.add("manager-page", "hide");
|
|
this.ejsFile = ejsFile;
|
|
document.body.appendChild(this.element);
|
|
}
|
|
|
|
getElement() {
|
|
return this.element;
|
|
}
|
|
|
|
show(ignorePreviousPage) {
|
|
ejs.renderFile(this.ejsFile, {...this.options, ...this.manager.options}, {}, (err, str) => {
|
|
if (!err) {
|
|
this.render(str);
|
|
} else {
|
|
logger.error(err);
|
|
}
|
|
});
|
|
|
|
this.element.classList.remove("hide");
|
|
|
|
this.previousPage = ignorePreviousPage ? this.previousPage : this.manager.activePage;
|
|
this.manager.activePage = this;
|
|
}
|
|
|
|
hide() {
|
|
this.element.classList.add("hide");
|
|
}
|
|
|
|
render(str) {
|
|
this.element.innerHTML = str;
|
|
|
|
/* Connect all the collapsable buttons */
|
|
let buttons = document.querySelectorAll(".button.collapse");
|
|
for (let i = 0; i < buttons.length; i++) {
|
|
buttons[i].addEventListener("click", () => {
|
|
buttons[i].classList.toggle("open");
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = ManagerPage; |