switch user saved data to localstorage

This commit is contained in:
Ross
2023-04-24 13:17:17 +01:00
parent fe6f398424
commit 8c3fb74a25
+20 -52
View File
@@ -18,8 +18,8 @@ if (config.base_url != "" && config.base_url != undefined) {
URLS.exam_results_url = config.base_url + "cid/"; URLS.exam_results_url = config.base_url + "cid/";
URLS.question_feedback_url = config.base_url + "feedback/"; URLS.question_feedback_url = config.base_url + "feedback/";
URLS.question_answer_submit_url = config.base_url + "feedback/answer"; URLS.question_answer_submit_url = config.base_url + "feedback/answer";
URLS.login_url = config.base_url + "/accounts/login/?next=/rts"; URLS.login_url = config.base_url + "accounts/login/?next=/rts";
URLS.logout_url = config.base_url + "/accounts/logout/?next=/rts"; URLS.logout_url = config.base_url + "accounts/logout/?next=/rts";
} }
// Override individual urls // Override individual urls
@@ -111,12 +111,6 @@ question_db.version(1).stores({
saved_exams: "&eid, type, exam_mode, name, order, time, exam_json_id", saved_exams: "&eid, type, exam_mode, name, order, time, exam_json_id",
}); });
// Would possible be better with local storage (only want 1 user active at once)
const user_db = new Dexie("user_database");
user_db.version(1).stores({
user: "cid, passcode",
});
retrievePacketList(); retrievePacketList();
try { try {
@@ -137,19 +131,20 @@ async function retrievePacketList() {
let url = "packets/packets.json"; let url = "packets/packets.json";
log.debug(`Load users from database...`) log.debug(`Load users from database...`)
let users = await user_db.user.toArray(); //let users = await user_db.user.toArray();
log.debug(`available users "${users}"`) //log.debug(`available users "${users}"`)
let cid = localStorage.getItem("cid.cid")
let passcode = localStorage.getItem("cid.passcode")
if (users.length > 0) { if (cid != null && passcode != null) {
global_cid = users[0].cid; global_cid = cid;
global_passcode = users[0].passcode; global_passcode = passcode;
let logout = $("<span>[x]</span>") let logout = $("<span>[x]</span>")
logout.click(() => { logout.click(() => {
user_db.user.clear().then(() => { localStorage.removeItem("cid.cid");
localStorage.removeItem("cid.passcode");
window.location = window.location.pathname; window.location = window.location.pathname;
return;
});
}) })
if (URLS.exam_results_url != "" && URLS.exam_results_url != undefined) { if (URLS.exam_results_url != "" && URLS.exam_results_url != undefined) {
@@ -171,8 +166,6 @@ async function retrievePacketList() {
log.debug("Try and set CID / Passcode from current URL") log.debug("Try and set CID / Passcode from current URL")
let items = window.location.search.substr(1).split("&"); let items = window.location.search.substr(1).split("&");
if (items.length == 2) { if (items.length == 2) {
let cid = "";
let passcode = "";
for (let index = 0; index < items.length; index++) { for (let index = 0; index < items.length; index++) {
const item = items[index]; const item = items[index];
let s = item.split("="); let s = item.split("=");
@@ -187,10 +180,8 @@ async function retrievePacketList() {
}; };
log.debug("CID and passcode extracted from URL", cid, passcode) log.debug("CID and passcode extracted from URL", cid, passcode)
log.debug("adding to local db") log.debug("adding to local db")
user_db.user.add({ localStorage.setItem("cid.cid", cid)
cid: cid, localStorage.setItem("cid.passcode", passcode)
passcode: passcode
})
log.debug("reload page") log.debug("reload page")
location.reload(); location.reload();
} }
@@ -287,10 +278,9 @@ async function loadExamList(data) {
let logout = $("<span>[x]</span>") let logout = $("<span>[x]</span>")
logout.click(() => { logout.click(() => {
user_db.user.clear().then(() => { localStorage.removeItem("cid.cid");
localStorage.removeItem("cid.passcode");
window.location = URLS.logout_url; window.location = URLS.logout_url;
return;
});
}) })
$("#user").append(logout); $("#user").append(logout);
} }
@@ -2514,13 +2504,9 @@ $("#btn-login").click(function(evt) {
global_cid = parseInt($("#candidate-number").val()); global_cid = parseInt($("#candidate-number").val());
global_passcode = $("#passcode").val(); global_passcode = $("#passcode").val();
user_db.user.clear().then(() => { localStorage.setItem("cid.cid", global_cid)
user_db.user.add({ localStorage.setItem("cid.passcode", global_passcode)
cid: global_cid,
passcode: global_passcode
})
location.reload(); location.reload();
});
$.modal.close(); $.modal.close();
}); });
@@ -2641,26 +2627,6 @@ function delete_question_db() {
}); });
} }
function delete_user_db() {
user_db
.delete()
.then(() => {
$.notify("User successfully deleted", "success");
$.notify("The page will now reload", "warn");
setTimeout(() => {
location.reload();
}, 2000);
console.debug("Database successfully deleted");
})
.catch((err) => {
$.notify("Error deleting databases", "error");
console.error("Could not delete database");
})
.finally(() => {
// Do what should be done next...
});
}
$("#btn-delete-answer-databases").click(function(evt) { $("#btn-delete-answer-databases").click(function(evt) {
var r = confirm( var r = confirm(
"This will delete ALL saved answers (including saved correct answers)!" "This will delete ALL saved answers (including saved correct answers)!"
@@ -2680,7 +2646,8 @@ $("#btn-reset-local").click(function(evt) {
if (r == true) { if (r == true) {
delete_answer_db(); delete_answer_db();
delete_question_db(); delete_question_db();
delete_user_db(); localStorage.removeItem("cid.cid")
localStorage.removeItem("cid.passcode")
} else {} } else {}
}); });
@@ -2806,6 +2773,7 @@ $(document).on("saveSessionEvent", {}, (evt, review) => {
saveSession(review); saveSession(review);
}); });
// Disable right click
$(document).contextmenu(() => { $(document).contextmenu(() => {
return false; return false;
}) })