fipamo/src/com/Base.js

135 lines
3.8 KiB
JavaScript

import FipamoApi from "../libraries/FipamoAPI";
import FipamoAdminAPI from "../libraries/FipamoAdminAPI";
import DataUitls from "./utils/DataUtils";
import * as DataEvent from "./events/DataEvent";
import DashManager from "./controllers/DashManager";
import Notfications from "./ui/Notifications";
const data = new DataUitls();
const notify = new Notfications();
export default class Base {
//--------------------------
// constructor
//--------------------------
constructor() {
this.start();
}
//--------------------------
// methods
//--------------------------
start() {
if (
document.getElementById("dash-form") ||
document.getElementById("dash-init")
) {
var options = document.getElementsByClassName("init-option");
for (let index = 0; index < options.length; index++) {
options[index].addEventListener("click", (e) => this.handleOptions(e));
}
if (document.getElementById("dash-form")) {
document
.getElementById("login-btn")
.addEventListener("click", (e) => this.handleLogin(e));
} else {
document
.getElementById("init-blog")
.addEventListener("click", (e) => this.handleSetup(e));
document
.getElementById("blog-restore")
.addEventListener("click", (e) => this.handleRestore(e));
}
} else {
new DashManager();
}
}
//--------------------------
// event handlers
//--------------------------
handleLogin(e) {
e.stopPropagation();
e.preventDefault();
let authForm = data.formDataToJSON(document.getElementById("login"));
notify.alert("Looking, hold up", null);
let api = new FipamoApi();
api
.login(authForm)
.then((response) => {
if (response.type === DataEvent.REQUEST_LAME) {
notify.alert(response.message, false);
} else {
notify.alert(response.message, true);
e.target.innerHTML = response.message;
setTimeout(() => {
window.location = "/dashboard";
}, 500);
}
})
.catch((err) => {
notify.alert(err, false);
});
}
handleSetup(e) {
e.stopPropagation();
e.preventDefault();
let setUpForm = data.formDataToJSON(document.getElementById("init-form"));
let api = new FipamoApi();
api
.init(setUpForm)
.then((response) => {
if (response.type === DataEvent.API_INIT_LAME) {
notify.alert(response.message, false);
} else {
notify.alert(response.message, true);
setTimeout(() => {
window.location = "/dashboard";
}, 700);
}
})
.catch((err) => {
notify.alert(err, false);
});
}
handleRestore(e) {
e.stopPropagation();
e.preventDefault();
let admin = new FipamoAdminAPI();
var form = document.getElementById("init-restore");
admin
.handleInitRestore(form)
.then((response) => {
if (response.type === DataEvent.REQUEST_LAME) {
notify.alert(response.message, false);
} else {
notify.alert(response.message, true);
setTimeout(() => {
//window.location = '/@/dashboard';
}, 700);
}
})
.catch((err) => {
notify.alert(err, false);
});
}
handleOptions(e) {
e.stopPropagation();
e.preventDefault();
let init = document.getElementById("dash-init");
let restore = document.getElementById("dash-restore");
if (e.target.id === "init-switch-restore") {
init.style.display = "none";
init.style.visibility = "hidden";
restore.style.display = "block";
restore.style.visibility = "visible";
} else {
init.style.display = "block";
init.style.visibility = "visible";
restore.style.display = "none";
restore.style.visibility = "hidden";
}
}
}