Initial public commit (clean history)

This commit is contained in:
2025-08-19 12:27:53 +02:00
commit 6629350c75
46 changed files with 10880 additions and 0 deletions

7
js/bootstrap.bundle.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
js/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

151
js/wishlist.js Normal file
View File

@@ -0,0 +1,151 @@
// js/wishlist.js
(function () {
"use strict";
// Sort direkt submitten
const sortSel = document.getElementById("sortby");
if (sortSel && sortSel.form) {
sortSel.addEventListener("change", function () {
this.form.submit();
});
}
// Reservation Modal
const reservationModal = document.getElementById("reservationModal");
if (reservationModal) {
reservationModal.addEventListener("show.bs.modal", function (ev) {
const btn = ev.relatedTarget;
if (!btn) return;
const wishid = btn.getAttribute("data-wishid");
const reserved = btn.getAttribute("data-reserved");
reservationModal.querySelector("#modal-wishid").value = wishid || "";
reservationModal.querySelector("#modal-reservedstat").value =
reserved || "";
const submitBtn = reservationModal.querySelector("#reservation-submit");
const titleEl = reservationModal.querySelector("#reservationModalLabel");
const infoEl = reservationModal.querySelector("#ReservationInfoText");
if (reserved === "1") {
submitBtn.textContent = "Reservierung aufheben";
titleEl.textContent = "Reservierung aufheben";
if (infoEl) infoEl.style.display = "none";
} else {
submitBtn.textContent = "Reservieren";
titleEl.textContent = "Wunsch reservieren";
if (infoEl) infoEl.style.display = "";
}
});
}
// Delete Modal
const deleteModal = document.getElementById("deleteModal");
if (deleteModal) {
deleteModal.addEventListener("show.bs.modal", function (ev) {
const btn = ev.relatedTarget;
if (!btn) return;
const card = btn.closest(".card");
const title = card
? card.querySelector(".card-title")?.textContent?.trim() || ""
: "";
const wishid = btn.getAttribute("data-wishid") || "";
// robust: suche entweder #DelWhishID ODER #WhishID
const idInput = deleteModal.querySelector(
'#DelWhishID, #WhishID, input[name="WhishID"]'
);
const titleEl = deleteModal.querySelector(
"#del-whish-title, #whish-title"
);
if (idInput) idInput.value = wishid;
if (titleEl) titleEl.textContent = title || "Wunsch";
});
}
// Push Prio Modal
const prioModal = document.getElementById("pushprioModal");
if (prioModal) {
prioModal.addEventListener("show.bs.modal", function (ev) {
const btn = ev.relatedTarget;
if (!btn) return;
const card = btn.closest(".card");
const title = card
? card.querySelector(".card-title")?.textContent?.trim() || ""
: "";
const wishid = btn.getAttribute("data-wishid") || "";
const idInput = prioModal.querySelector(
'#PrioWhishID, #WhishID, input[name="WhishID"]'
);
const titleEl = prioModal.querySelector(
"#prio-whish-title, #whish-title"
);
if (idInput) idInput.value = wishid;
if (titleEl) titleEl.textContent = title || "Wunsch";
});
}
// Add/Edit Item Modal
const itemModal = document.getElementById("itemModal");
if (itemModal) {
itemModal.addEventListener("show.bs.modal", function (ev) {
const btn = ev.relatedTarget;
if (!btn) return;
const mode = btn.getAttribute("data-mode") || "add";
const titleEl = itemModal.querySelector("#itemModalTitle");
const actionEl = itemModal.querySelector("#ItemAction");
const submitEl = itemModal.querySelector("#ItemSubmitBtn");
const removeWrap = itemModal.querySelector("#RemoveImageWrap");
const removeChk = itemModal.querySelector("#RemoveImage");
// Felder
const fTitle = itemModal.querySelector("#ItemTitle");
const fDesc = itemModal.querySelector("#ItemDescription");
const fPrice = itemModal.querySelector("#ItemPrice");
const fLink = itemModal.querySelector("#ItemLink");
const fImg = itemModal.querySelector("#ItemImage");
const fId = itemModal.querySelector("#WhishID");
const fQty = itemModal.querySelector("#ItemQty"); // <-- NEU
if (mode === "edit") {
titleEl.textContent = "Wunsch bearbeiten";
actionEl.value = "edit";
submitEl.textContent = "Speichern";
if (removeWrap) removeWrap.style.display = "";
if (removeChk) removeChk.checked = false;
const wishid = btn.getAttribute("data-wishid") || "-1";
const dTitle = btn.getAttribute("data-title") || "";
const dDesc = btn.getAttribute("data-description") || "";
const dPrice = btn.getAttribute("data-price") || "";
const dLink = btn.getAttribute("data-link") || "";
const dQty = btn.getAttribute("data-qty") || "1"; // <-- NEU
if (fId) fId.value = wishid;
if (fTitle) fTitle.value = dTitle;
if (fDesc) fDesc.value = dDesc;
if (fPrice) fPrice.value = dPrice;
if (fLink) fLink.value = dLink;
if (fImg) fImg.value = "";
if (fQty) fQty.value = dQty; // <-- NEU
} else {
titleEl.textContent = "Wunsch hinzufügen";
actionEl.value = "add";
submitEl.textContent = "Hinzufügen";
if (fId) fId.value = "-1";
if (fTitle) fTitle.value = "";
if (fDesc) fDesc.value = "";
if (fPrice) fPrice.value = "";
if (fLink) fLink.value = "";
if (fImg) fImg.value = "";
if (fQty) fQty.value = "1"; // <-- NEU
if (removeWrap) removeWrap.style.display = "none";
if (removeChk) removeChk.checked = false;
}
});
}
})();