Show relock info when results close
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { api, adminApi } from "./api.js";
|
import { api, adminApi } from "./api.js";
|
||||||
import { handleAuthError, renderAllSuggestions, renderCounts, renderMySuggestions, renderPhasePill, renderPhaseTitles, renderResults, renderVotes, renderWelcome, setAuthUI, syncVoteScores, updatePhaseNav } from "./ui.js";
|
import { handleAuthError, renderAllSuggestions, renderCounts, renderMySuggestions, renderPhasePill, renderPhaseTitles, renderResults, renderVotes, renderWelcome, setAuthUI, syncVoteScores, updatePhaseNav, openResultsRelockModal } from "./ui.js";
|
||||||
import { state, clearUserState } from "./state.js";
|
import { state, clearUserState } from "./state.js";
|
||||||
|
|
||||||
export async function loadState() {
|
export async function loadState() {
|
||||||
@@ -63,6 +63,8 @@ export async function loadResults() {
|
|||||||
|
|
||||||
export async function refreshPhaseData() {
|
export async function refreshPhaseData() {
|
||||||
try {
|
try {
|
||||||
|
const prevPhase = state.phase;
|
||||||
|
const prevResultsOpen = state.resultsOpen;
|
||||||
await loadState();
|
await loadState();
|
||||||
await Promise.all([loadSuggestData(), loadRevealData(), loadResults()]);
|
await Promise.all([loadSuggestData(), loadRevealData(), loadResults()]);
|
||||||
if (state.phase === "Vote") {
|
if (state.phase === "Vote") {
|
||||||
@@ -74,6 +76,14 @@ export async function refreshPhaseData() {
|
|||||||
if (state.me?.isAdmin) {
|
if (state.me?.isAdmin) {
|
||||||
state.adminVoteStatus = await adminApi.voteStatus();
|
state.adminVoteStatus = await adminApi.voteStatus();
|
||||||
}
|
}
|
||||||
|
if (
|
||||||
|
prevPhase === "Results" &&
|
||||||
|
state.phase === "Vote" &&
|
||||||
|
prevResultsOpen &&
|
||||||
|
!state.resultsOpen
|
||||||
|
) {
|
||||||
|
openResultsRelockModal();
|
||||||
|
}
|
||||||
updatePhaseNav();
|
updatePhaseNav();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (handleAuthError(err, clearUserState)) return;
|
if (handleAuthError(err, clearUserState)) return;
|
||||||
|
|||||||
@@ -105,6 +105,9 @@ const translations = {
|
|||||||
"results.links": "Links",
|
"results.links": "Links",
|
||||||
"results.link.site": "Site ↗",
|
"results.link.site": "Site ↗",
|
||||||
"results.link.youtube": "YouTube ↗",
|
"results.link.youtube": "YouTube ↗",
|
||||||
|
"results.relockedTitle": "Results closed",
|
||||||
|
"results.relockedBody": "Results have been locked again. You’re back in the voting phase and your finalized status was cleared. Adjust scores and re-finalize when ready.",
|
||||||
|
"results.relockedConfirm": "Got it",
|
||||||
|
|
||||||
"admin.title": "Admin",
|
"admin.title": "Admin",
|
||||||
"admin.tools": "Admin tools",
|
"admin.tools": "Admin tools",
|
||||||
@@ -274,6 +277,9 @@ const translations = {
|
|||||||
"results.links": "Links",
|
"results.links": "Links",
|
||||||
"results.link.site": "Webseite ↗",
|
"results.link.site": "Webseite ↗",
|
||||||
"results.link.youtube": "YouTube ↗",
|
"results.link.youtube": "YouTube ↗",
|
||||||
|
"results.relockedTitle": "Ergebnisse geschlossen",
|
||||||
|
"results.relockedBody": "Die Ergebnisse wurden wieder gesperrt. Du bist zurück in der Bewertungsphase und deine Finalisierung wurde zurückgesetzt. Passe deine Bewertungen an und schließe erneut ab, wenn du bereit bist.",
|
||||||
|
"results.relockedConfirm": "Verstanden",
|
||||||
|
|
||||||
"admin.title": "Admin",
|
"admin.title": "Admin",
|
||||||
"admin.tools": "Admin-Werkzeuge",
|
"admin.tools": "Admin-Werkzeuge",
|
||||||
|
|||||||
@@ -724,6 +724,16 @@ export function openLightbox(url, title) {
|
|||||||
document.body.appendChild(overlay);
|
document.body.appendChild(overlay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function openResultsRelockModal() {
|
||||||
|
openConfirmModal({
|
||||||
|
title: t("results.relockedTitle"),
|
||||||
|
body: t("results.relockedBody"),
|
||||||
|
confirmLabel: t("results.relockedConfirm"),
|
||||||
|
cancelLabel: t("modal.close"),
|
||||||
|
onConfirm: (close) => close(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export function openConfirmModal({ title, body, confirmLabel, cancelLabel = t("modal.cancel"), onConfirm }) {
|
export function openConfirmModal({ title, body, confirmLabel, cancelLabel = t("modal.cancel"), onConfirm }) {
|
||||||
const overlay = document.createElement("div");
|
const overlay = document.createElement("div");
|
||||||
overlay.className = "edit-modal";
|
overlay.className = "edit-modal";
|
||||||
|
|||||||
Reference in New Issue
Block a user