switch user saved data to localstorage
This commit is contained in:
+23
-55
@@ -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");
|
||||||
window.location = window.location.pathname;
|
localStorage.removeItem("cid.passcode");
|
||||||
return;
|
window.location = window.location.pathname;
|
||||||
});
|
|
||||||
})
|
})
|
||||||
|
|
||||||
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");
|
||||||
window.location = URLS.logout_url;
|
localStorage.removeItem("cid.passcode");
|
||||||
return;
|
window.location = URLS.logout_url;
|
||||||
});
|
|
||||||
})
|
})
|
||||||
$("#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,
|
location.reload();
|
||||||
passcode: global_passcode
|
|
||||||
})
|
|
||||||
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;
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user