77 lines
2.3 KiB
JavaScript
77 lines
2.3 KiB
JavaScript
// Namensauswahl: lädt Namen aus appsettings.json, Kartenauswahl + Abschluss
|
||
|
||
(function () {
|
||
const nameList = document.getElementById("nameList");
|
||
const summary = document.getElementById("summary");
|
||
const continueBtn = document.getElementById("continueBtn");
|
||
|
||
const selectedActivity = localStorage.getItem("selectedActivity");
|
||
const selectedDate = localStorage.getItem("selectedDate");
|
||
|
||
// Ohne Aktivität und Datum ergibt diese Seite keinen Sinn.
|
||
if (!selectedActivity) {
|
||
window.location.href = "activity.html";
|
||
return;
|
||
}
|
||
if (!selectedDate) {
|
||
window.location.href = "datetime.html";
|
||
return;
|
||
}
|
||
|
||
const dateLabel = new Date(`${selectedDate}T00:00:00`).toLocaleDateString("de-DE", {
|
||
weekday: "long",
|
||
day: "numeric",
|
||
month: "long",
|
||
year: "numeric",
|
||
});
|
||
summary.textContent = `${selectedActivity} am ${dateLabel} – verrate mir, wer du bist.`;
|
||
|
||
let selectedName = null;
|
||
|
||
fetch("appsettings.json")
|
||
.then((response) => response.json())
|
||
.then((settings) => renderNames(settings.names || []))
|
||
.catch(() => {
|
||
nameList.textContent = "Namen konnten nicht geladen werden.";
|
||
});
|
||
|
||
function renderNames(names) {
|
||
const options = names.length > 0 ? names : ["Mein name ist Amor 😽"];
|
||
|
||
options.forEach((name) => {
|
||
const card = document.createElement("button");
|
||
card.type = "button";
|
||
card.className = "name-card";
|
||
card.dataset.name = name;
|
||
|
||
const icon = document.createElement("span");
|
||
icon.className = "icon";
|
||
icon.setAttribute("aria-hidden", "true");
|
||
icon.textContent = "💖";
|
||
|
||
const label = document.createElement("span");
|
||
label.className = "label";
|
||
label.textContent = name;
|
||
|
||
card.append(icon, label);
|
||
card.addEventListener("click", () => {
|
||
nameList.querySelectorAll(".name-card").forEach((c) => c.classList.remove("selected"));
|
||
card.classList.add("selected");
|
||
selectedName = name;
|
||
continueBtn.disabled = false;
|
||
});
|
||
|
||
nameList.appendChild(card);
|
||
});
|
||
}
|
||
|
||
continueBtn.addEventListener("click", () => {
|
||
if (!selectedName) {
|
||
return;
|
||
}
|
||
// Ablage für die spätere Anbindung an Datenbank/Storage
|
||
localStorage.setItem("selectedName", selectedName);
|
||
window.location.href = "checkout.html";
|
||
});
|
||
})();
|