More work on versioning for Events

This commit is contained in:
Scott Idem
2025-10-15 13:17:32 -04:00
parent 6b8f4d54ed
commit 1f79ae4e19
2 changed files with 58 additions and 2 deletions

View File

@@ -5,8 +5,8 @@ import type { Writable } from 'svelte/store';
import type { key_val } from '$lib/ae_stores';
// Set the version for the app data. Changing this should force a notification and ask the user to clear and reload the page.
let ver = '2024-08-21_1646';
let ver_idb = '2024-08-21_1645';
let ver = '2025-10-15_1259';
let ver_idb = '2025-10-15_1259';
/* *** BEGIN *** Initialize events_local_data_struct */
// Longer-term app data. This should be stored to *local* storage.

View File

@@ -94,6 +94,40 @@ if (log_lvl > 1) {
// *** Functions and Logic
function clear_idb() {
indexedDB.deleteDatabase('ae_archives_db'); // Archives module
indexedDB.deleteDatabase('ae_core_db');
indexedDB.deleteDatabase('ae_events_db'); // Events module
indexedDB.deleteDatabase('ae_journals_db'); // Journals module
indexedDB.deleteDatabase('ae_posts_db'); // Posts module
indexedDB.deleteDatabase('ae_sponsorships_db'); // Sponsorships module
}
function clear_local() {
// localStorage.removeItem('ae_loc');
// localStorage.removeItem('ae_idaa_loc');
// localStorage.removeItem('ae_journals_loc');
// localStorage.removeItem('ae_events_loc');
$ae_loc.allow_access = false;
$ae_loc.authenticated_access = false;
$ae_loc.edit_mode = false;
localStorage.clear();
window.localStorage.clear();
}
function clear_sess() {
// sessionStorage.removeItem('ae_sess');
// sessionStorage.removeItem('ae_idaa_sess');
// sessionStorage.removeItem('ae_journals_sess');
// sessionStorage.removeItem('ae_events_sess');
sessionStorage.clear();
}
// Event
let lq__event_obj = $derived(liveQuery(async () => {
if (log_lvl) {
@@ -1341,3 +1375,25 @@ $effect(() => {
/>
<!-- on:ws_recv={handle_ws_recv} -->
{/if}
{#if ($events_loc?.ver !== $events_sess?.ver)}
<button
class="fixed top-16 left-68 z-50 p-3 btn btn-lg preset-tonal-warning preset-outlined-warning hover:preset-filled-warning-500 transition-all"
onclick={() => {
// Clear the IndexedDB
clear_idb();
// Clear localStorage and sessionStorage
clear_local();
// clear_sess();
location.reload();
}}
title="A new version of the launcher is available. Click to reload the page and get the latest version."
>
<span class="fas fa-sync-alt fa-spin m-1"></span>
<span class="hidden sm:inline">New Events Module Version Available<br>Click to Reload</span>
</button>
$events_loc.ver=${$events_loc?.ver} $events_sess.ver=${$events_sess?.ver}
{/if}