158 lines
4.4 KiB
JavaScript
158 lines
4.4 KiB
JavaScript
|
import request from "../../shared/request";
|
||
|
import getFormData from "../../shared/formdata";
|
||
|
Handlebars.registerHelper("humangender", function (value, options) {
|
||
|
switch (value) {
|
||
|
case 1:
|
||
|
return "male";
|
||
|
case 2:
|
||
|
return "female";
|
||
|
case 3:
|
||
|
return "other";
|
||
|
default:
|
||
|
case 0:
|
||
|
return "none";
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Deprecated since version 0.8.0
|
||
|
Handlebars.registerHelper("formatDate", function (datetime, format) {
|
||
|
return new Date(datetime).toLocaleString();
|
||
|
});
|
||
|
|
||
|
(() => {
|
||
|
const tableb = document.getElementById("table-body");
|
||
|
|
||
|
function setTitle(title) {
|
||
|
document.getElementById("sitename").innerText = title;
|
||
|
}
|
||
|
|
||
|
|
||
|
const cc = document.getElementById("custom_data")
|
||
|
const ccc = document.getElementById("custom_data_cont")
|
||
|
|
||
|
function setCustomCard(content) {
|
||
|
if (!content) {
|
||
|
cc.innerHTML = "";
|
||
|
ccc.style.display = "none";
|
||
|
} else {
|
||
|
cc.innerHTML = content;
|
||
|
ccc.style.display = "";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const error_cont = document.getElementById("error_cont")
|
||
|
const error_msg = document.getElementById("error_msg")
|
||
|
|
||
|
function catchError(error) {
|
||
|
error_cont.style.display = "";
|
||
|
error_msg.innerText = error.message;
|
||
|
console.log(error);
|
||
|
}
|
||
|
|
||
|
async function renderUser() {
|
||
|
console.log("Rendering User")
|
||
|
setTitle("User")
|
||
|
const listt = Handlebars.compile(document.getElementById("template-user-list").innerText)
|
||
|
|
||
|
async function loadList() {
|
||
|
let data = await request("/api/admin/user", "GET");
|
||
|
tableb.innerHTML = listt({
|
||
|
users: data
|
||
|
})
|
||
|
}
|
||
|
|
||
|
window.userOnChangeType = (id) => {
|
||
|
request("/api/admin/user?id=" + id, "PUT").then(() => loadList()).catch(catchError)
|
||
|
}
|
||
|
|
||
|
window.deleteUser = (id) => {
|
||
|
request("/api/admin/user?id=" + id, "DELETE").then(() => loadList()).catch(catchError)
|
||
|
}
|
||
|
|
||
|
await loadList();
|
||
|
}
|
||
|
|
||
|
async function renderClient() {
|
||
|
console.log("Rendering Client")
|
||
|
setTitle("Client")
|
||
|
|
||
|
const listt = Handlebars.compile(document.getElementById("template-client-list").innerText)
|
||
|
const formt = Handlebars.compile(document.getElementById("template-client-form").innerText)
|
||
|
|
||
|
let clients = [];
|
||
|
async function loadList() {
|
||
|
let data = await request("/api/admin/client", "GET");
|
||
|
clients = data;
|
||
|
tableb.innerHTML = listt({
|
||
|
clients: data
|
||
|
})
|
||
|
}
|
||
|
|
||
|
window.deleteClient = (id) => {
|
||
|
request("/api/admin/client?id=" + id, "DELETE").then(() => loadList()).catch(catchError)
|
||
|
}
|
||
|
|
||
|
window.createClientSubmit = (elm) => {
|
||
|
console.log(elm);
|
||
|
let data = getFormData(elm);
|
||
|
console.log(data);
|
||
|
let id = data.id;
|
||
|
delete data.id;
|
||
|
if (id !== "") {
|
||
|
request("/api/admin/client?id=" + id, "PUT", data).then(() => setCustomCard()).then(() => loadList()).catch(catchError)
|
||
|
} else {
|
||
|
request("/api/admin/client", "POST", data).then(() => setCustomCard()).then(() => loadList()).catch(catchError)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
window.createClient = () => {
|
||
|
setCustomCard(formt());
|
||
|
}
|
||
|
|
||
|
window.editClient = (id) => {
|
||
|
let client = clients.find(e => e._id === id);
|
||
|
if (!client) return catchError(new Error("Client does not exist!!"))
|
||
|
setCustomCard(formt(client));
|
||
|
}
|
||
|
|
||
|
await loadList();
|
||
|
}
|
||
|
|
||
|
async function renderRegCode() {
|
||
|
console.log("Rendering RegCode")
|
||
|
setTitle("RegCode")
|
||
|
|
||
|
const listt = Handlebars.compile(document.getElementById("template-regcode-list").innerText)
|
||
|
|
||
|
async function loadList() {
|
||
|
let data = await request("/api/admin/regcode", "GET");
|
||
|
tableb.innerHTML = listt({
|
||
|
regcodes: data
|
||
|
})
|
||
|
}
|
||
|
|
||
|
window.deleteRegcode = (id) => {
|
||
|
request("/api/admin/regcode?id=" + id, "DELETE").then(() => loadList()).catch(catchError)
|
||
|
}
|
||
|
|
||
|
window.createRegcode = () => {
|
||
|
request("/api/admin/regcode", "POST").then(() => loadList()).catch(catchError);
|
||
|
}
|
||
|
|
||
|
await loadList();
|
||
|
}
|
||
|
|
||
|
const type = new URL(window.location.href).searchParams.get("type");
|
||
|
switch (type) {
|
||
|
case "client":
|
||
|
renderClient().catch(catchError)
|
||
|
break
|
||
|
case "regcode":
|
||
|
renderRegCode().catch(catchError)
|
||
|
break;
|
||
|
case "user":
|
||
|
default:
|
||
|
renderUser().catch(catchError);
|
||
|
break;
|
||
|
}
|
||
|
})()
|