diff --git a/SPEC.md b/SPEC.md index ad22cc9..2ca5be1 100644 --- a/SPEC.md +++ b/SPEC.md @@ -26,6 +26,7 @@ Help a small Discord group (4–8 players) pick a co-op game via phased flow: - Players see only their own votes; can finalize/unfinalize their ballot - **Linked games**: admins can link duplicates; linked games share a vote group. Moving a slider on one updates all linked siblings. - Linking or unlinking games clears votes for the linked group and unfinalizes **all** players so ballots can be reviewed again +- The “new/linked games” vote popup appears only when the vote list changes after the player has already seen that vote list ## Results Phase - Visible only after admin enables results; players auto-advance when opened diff --git a/wwwroot/data/i18n/faq/de.md b/wwwroot/data/i18n/faq/de.md index f83af2e..842e8a0 100644 --- a/wwwroot/data/i18n/faq/de.md +++ b/wwwroot/data/i18n/faq/de.md @@ -116,6 +116,7 @@ Mit **„Finalisieren"** werden deine Bewertungen gesperrt. Deaktiviere es, um e Wenn neue Spiele hinzugefügt oder Verknüpfungen geändert werden: - Betroffene Stimmen werden gelöscht - Deine Abstimmung wird automatisch zurückgesetzt + - Das Update-Popup erscheint nur, wenn sich deine bereits sichtbare Abstimmungsliste verändert Überprüfe deine Liste und bewerte erneut, bevor du wieder finalisierst. diff --git a/wwwroot/data/i18n/faq/en.md b/wwwroot/data/i18n/faq/en.md index 9affefb..85ded74 100644 --- a/wwwroot/data/i18n/faq/en.md +++ b/wwwroot/data/i18n/faq/en.md @@ -134,6 +134,7 @@ Finalize is only available during the Vote phase and will automatically reset if If new games are added or links are modified: - Affected votes are cleared - You are automatically unfinalized + - The update popup appears only when your already-visible Vote list changes Review your list and rescore before finalizing again. diff --git a/wwwroot/js/data.js b/wwwroot/js/data.js index 60fe5d7..c9d4db8 100644 --- a/wwwroot/js/data.js +++ b/wwwroot/js/data.js @@ -34,7 +34,12 @@ export async function loadSuggestionsData() { const latest = await api.allSuggestions(); const latestSig = signatureSuggestions(latest); const changed = latestSig !== state.allSuggestionsSig; - if (changed && state.phase === "Vote" && state.allSuggestionsSig) { + if ( + changed && + state.phase === "Vote" && + state.votesRendered && + state.allSuggestionsSig + ) { const added = latest .filter((s) => !prevById[s.id]) .map((s) => s.name); diff --git a/wwwroot/js/state.js b/wwwroot/js/state.js index 98d7ded..1317e42 100644 --- a/wwwroot/js/state.js +++ b/wwwroot/js/state.js @@ -27,6 +27,7 @@ export function clearUserState() { state.counts = null; state.mySuggestions = []; state.allSuggestions = []; + state.allSuggestionsSig = null; state.myVotes = []; state.results = []; state.votesRendered = false;