Basic login functionality

This commit is contained in:
Tristan Schneider 2024-02-19 23:01:04 +01:00
parent 83231a085d
commit 865c5433a9

23
owe.js
View File

@ -72,6 +72,11 @@ function getUsernameFromCookie() {
return null;
}
function deleteUsernameCookie() {
// Set the 'owe_user' cookie to expire by setting its expiration date to a time in the past
document.cookie = 'owe_user=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=.;';
}
function onReloadClicked() {
loadSentences();
@ -246,16 +251,34 @@ async function getLastTimeFromArchive(archiveFileUrl) {
}
}
function logoutUser() {
deleteUsernameCookie();
initializeLoginArea(); // Reload everything in the login area
}
async function initializeLoginArea() {
var loginArea = document.getElementById('login_area');
var sendButton = document.getElementById('sendbut');
sendButton.style.display = "unset"
var wordInput = document.getElementById('wordinput');
wordInput.disabled = false;
// Use async/await to wait for the result of getNextPlayer
try {
var loggedInPlayer = getUsernameFromCookie();
var nextPlayer = await getNextPlayer();
var relative_time = await getTimeSinceLast();
// Clear the login area
loginArea.innerHTML = "";
if (loggedInPlayer != null) {
loginArea.innerHTML += "Du bist angemeldet als " + loggedInPlayer + "."
loginArea.innerHTML += " <button onclick='logoutUser()'>abmelden</button><br>\n";
if (loggedInPlayer != nextPlayer) {
sendButton.style.display = "none";
wordInput.disabled = true;
}
}
loginArea.innerHTML += nextPlayer + " ist dran!<br>\n";
var days = Math.floor(relative_time / (3600 * 24));