feat: add Go microservice, Dockerfile, docker-compose, and API submission endpoint
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
// 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 : ["Du weißt, wer ich bin"];
|
||||
|
||||
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";
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user