From a6d491d3c245d4191e0b2b8ff920a69ed0240750 Mon Sep 17 00:00:00 2001 From: Arnaud_Cayrol Date: Sat, 31 Jan 2026 09:42:24 +0100 Subject: [PATCH] Added settigns validation, made skip reason more expansible --- frontend/src/App.svelte | 32 +++++ .../src/lib/components/PeopleSelector.svelte | 18 ++- .../src/lib/components/ProgressDisplay.svelte | 50 ++++---- src/config.rs | 61 +++++++++ src/job/mod.rs | 69 ++-------- src/web/handlers/config.rs | 120 +++++++++++++++++- src/web/state.rs | 59 +++++++++ 7 files changed, 321 insertions(+), 88 deletions(-) diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index b9de5fb..1d414ba 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -9,8 +9,38 @@ import ResultsView from './lib/components/ResultsView.svelte'; import SettingsPanel from './lib/components/SettingsPanel.svelte'; + // LocalStorage keys + const STORAGE_KEY_PERSON = 'immich-timelapse-selected-person'; + + // Load persisted state from localStorage + function loadPersistedPersonId() { + try { + const stored = localStorage.getItem(STORAGE_KEY_PERSON); + if (stored) { + const parsed = JSON.parse(stored); + return parsed?.id || null; + } + } catch (e) { + console.warn('Failed to load persisted person:', e); + } + return null; + } + + function persistSelectedPerson(person) { + try { + if (person) { + localStorage.setItem(STORAGE_KEY_PERSON, JSON.stringify({ id: person.id, name: person.name })); + } else { + localStorage.removeItem(STORAGE_KEY_PERSON); + } + } catch (e) { + console.warn('Failed to persist person:', e); + } + } + let connectionOk = $state(false); let selectedPerson = $state(null); + let initialSelectedPersonId = $state(loadPersistedPersonId()); let jobStatus = $state('idle'); let progress = $state({ completed: 0, total: 0, message: '' }); let pollInterval = $state(null); @@ -93,6 +123,7 @@ function handlePersonSelect(person) { selectedPerson = person; + persistSelectedPerson(person); } function handleJobUpdate(data) { @@ -194,6 +225,7 @@ {#if selectedPerson && !isJobRunning} diff --git a/frontend/src/lib/components/PeopleSelector.svelte b/frontend/src/lib/components/PeopleSelector.svelte index bbc2bd5..92b4966 100644 --- a/frontend/src/lib/components/PeopleSelector.svelte +++ b/frontend/src/lib/components/PeopleSelector.svelte @@ -1,13 +1,13 @@