const base_url = "https://oss110metz.rezo-rm.fr/" var page = ['#main-page', '#admin-page', '#login-page', '#demande-page']; window.onpopstate = history.onpushstate = function(e) { if (e.state) { show_page(e.state, true); } else { history.back(); } }; history.pushState("#main-page", "", "") function show_page(id, historyPush) { for(i in page) { $(page[i]).hide(); } $(id).show(); if (!historyPush) { history.pushState(id, "", "") } } $("#login-button").click(function (e) { var data = JSON.stringify({ user: $("#login").val(), password: $("#password").val() }); $("#password").val(''); $.ajax({ type: "POST", url: base_url + "login", data: data, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { if(data.success) { localStorage.setItem("token", data.token); localStorage.setItem("user", data.user.uid); localStorage.setItem("isAdmin", data.user.isAdmin); if (data.user.isAdmin) { show_page('#admin-page'); get_admin("prank"); } else { show_page('#demande-page'); } } else { alert(data.why); } } }); }); $("#prank-button").click(function () { if (localStorage.getItem('token')) { show_page('#demande-page'); } else { show_page('#login-page'); } }); $("#logo").click(function () { if (localStorage.getItem('token')) { if (localStorage.getItem('isAdmin')) { show_page('#admin-page'); // Load prank by default get_admin("prank"); } else { show_page('#demande-page'); } } else { show_page('#login-page'); } }); $("#admin-prank").click(() => { get_admin("prank"); }) $("#admin-treasure").click(() => { get_admin("treasure"); }) $("#admin-activity").click(() => { get_admin("activity"); }) function get_admin(type) { $("#admin-content").empty(); $.ajax({ type: "POST", url: base_url + "get", data: JSON.stringify({ uid: localStorage.getItem('user'), token: localStorage.getItem('token'), type: type, }), contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { if(data.success) { switch (type) { case "prank": let doneCnt = 0; let prankData = []; for (prankUid in data.prankData) { data.prankData[prankUid].prankUid = prankUid; prankData.push(data.prankData[prankUid]); } prankData.sort((a, b) => Date(a.date) - Date(b.date)); for (entry in prankData) { switch (prankData[entry].type) { case "crêpe": if (prankData[entry].state == "pending" || prankData[entry].state == "accepted") { $("#admin-content").append(`
Demande de crêpe par ${prankData[entry].creator}
Quantité: ${prankData[entry].amount}
Garniture: ${prankData[entry].supplement}
Livraison: ${prankData[entry].where}
Livraison: ${prankData[entry].note}
UID: ${prankData[entry].prankUid}
UID: ${prankData[entry].date}
${(prankData[entry].state == "pending") ? "Accepter" : "Récupérer (accepté par: "+prankData[entry].manageBy+")"}
Refuser
Done
`) } else if(prankData[entry].state == "done") { doneCnt++; } break; case "kidnap": // Not Handle break; } } $("#admin-content").append(`
Nombre totale de mission achevées: ${doneCnt}
`); break; case "treasure": let treasureData = []; for (treasureUid in data.treasureData) { data.treasureData[treasureUid].treasureUid = treasureUid; treasureData.push(data.treasureData[treasureUid]); } treasureData.sort((a, b) => Date(a.date) - Date(b.date)); for (entry in treasureData) { if (treasureData[entry].state == "pending") { $("#admin-content").append(`
Demande de vérification par ${treasureData[entry].creator}
Activité: ${treasureData[entry].activity.title}
Description: ${treasureData[entry].desc}
Image: lien
UID: ${treasureData[entry].treasureUid}
UID: ${treasureData[entry].date}
Accepter
Refuser
`) } } break; case "activity": $("#admin-content").append(`
Titre: