53 lines
1.7 KiB
JavaScript
53 lines
1.7 KiB
JavaScript
// Aktivitäts-Auswahl: lädt Aktivitäten aus appsettings.json, Kartenauswahl + Weiter-Button
|
|
|
|
(function () {
|
|
const activityGrid = document.getElementById("activityGrid");
|
|
const continueBtn = document.getElementById("continueBtn");
|
|
|
|
let selectedActivity = null;
|
|
|
|
fetch("appsettings.json")
|
|
.then((response) => response.json())
|
|
.then((settings) => renderActivities(settings.activities || []))
|
|
.catch(() => {
|
|
activityGrid.textContent = "Aktivitäten konnten nicht geladen werden.";
|
|
});
|
|
|
|
function renderActivities(activities) {
|
|
activities.forEach((activity) => {
|
|
const card = document.createElement("button");
|
|
card.type = "button";
|
|
card.className = "activity-card";
|
|
card.dataset.activity = activity.name;
|
|
|
|
const icon = document.createElement("span");
|
|
icon.className = "icon";
|
|
icon.setAttribute("aria-hidden", "true");
|
|
icon.textContent = activity.icon;
|
|
|
|
const label = document.createElement("span");
|
|
label.className = "label";
|
|
label.textContent = activity.name;
|
|
|
|
card.append(icon, label);
|
|
card.addEventListener("click", () => {
|
|
activityGrid.querySelectorAll(".activity-card").forEach((c) => c.classList.remove("selected"));
|
|
card.classList.add("selected");
|
|
selectedActivity = activity.name;
|
|
continueBtn.disabled = false;
|
|
});
|
|
|
|
activityGrid.appendChild(card);
|
|
});
|
|
}
|
|
|
|
continueBtn.addEventListener("click", () => {
|
|
if (!selectedActivity) {
|
|
return;
|
|
}
|
|
// Ablage für die spätere Anbindung an Datenbank/Storage
|
|
localStorage.setItem("selectedActivity", selectedActivity);
|
|
window.location.href = "datetime.html";
|
|
});
|
|
})();
|