Implement EventID to scope ClientIDs and Entry IDs

Implement an EventID saved in settings. Currently this is used to scope
clientIDs and entryIDs to an event. The client checks the event currently going on on
the server, and discards its localstorage (containing the clientID) if
it has changed
This commit is contained in:
2023-04-26 18:08:03 +02:00
parent adebf35d08
commit 865df5d588
5 changed files with 96 additions and 6 deletions

View File

@ -108,7 +108,7 @@
{% block extrajs %}{% endblock %}
<script>
$(document).ready(function () {
loadOrGenerateClientId()
checkEventID()
// get current URL path and assign 'active' class
var pathname = window.location.pathname;
$('.navbar-nav > li > a[href="' + pathname + '"]').parent().addClass('active');
@ -130,6 +130,23 @@
localStorage.setItem("clientId", create_UUID())
}
}
function getClientId() {
return localStorage.getItem("clientId")
}
async function checkEventID() {
const localEventID = localStorage.getItem("eventID")
const resp = await fetch("/api/events/current")
const respJson = await resp.json()
const remoteEventID = respJson.event
if (localEventID == null || localEventID != remoteEventID) {
localStorage.clear()
localStorage.setItem("eventID", remoteEventID)
loadOrGenerateClientId()
}
}
</script>
</body>