Wersja probna

powinno cos dzialac
This commit is contained in:
Witkopawel
2025-04-30 12:40:59 +02:00
parent 74b69f045d
commit 470ce72b6a
12 changed files with 332 additions and 141 deletions

View File

@@ -9,26 +9,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
document.addEventListener("DOMContentLoaded", () => {
const deleteButtons = document.querySelectorAll(".delete-btn");
deleteButtons.forEach(button => {
button.addEventListener("click", () => __awaiter(void 0, void 0, void 0, function* () {
const id = button.dataset.id;
if (!id)
return;
const confirmed = confirm("Na pewno chcesz usunąć to wydarzenie?");
if (!confirmed)
return;
const response = yield fetch(`/api/events/${id}`, {
method: "DELETE"
});
if (response.ok) {
const row = button.closest("tr");
if (row)
row.remove();
}
else {
alert("Nie udało się usunąć wydarzenia.");
}
}));
});
document.body.addEventListener("click", (e) => __awaiter(void 0, void 0, void 0, function* () {
const target = e.target;
if (!target.matches(".delete-btn"))
return;
const id = target.getAttribute("data-id");
if (!id)
return;
const confirmed = confirm("Na pewno chcesz usunąć to wydarzenie?");
if (!confirmed)
return;
const response = yield fetch(`/api/events/${id}`, {
method: "DELETE"
});
if (response.ok) {
const card = target.closest(".col");
if (card)
card.remove();
}
else {
alert("Nie udało się usunąć wydarzenia.");
}
}));
});

View File

@@ -0,0 +1,49 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, void 0, function* () {
const container = document.getElementById("eventList");
if (!container)
return;
try {
const res = yield fetch("/api/events");
if (!res.ok)
throw new Error("Błąd pobierania wydarzeń");
const events = yield res.json();
if (events.length === 0) {
container.innerHTML = "<p class='text-muted'>Brak wydarzeń do wyświetlenia.</p>";
return;
}
for (const ev of events) {
const card = document.createElement("div");
card.className = "col";
card.innerHTML = `
<div class="card shadow-sm h-100">
<div class="card-body">
<h5 class="card-title">${ev.title}</h5>
<p class="card-text">
<strong>Miejsce:</strong> ${ev.location}<br/>
<strong>Data:</strong> ${new Date(ev.eventDate).toLocaleString()}<br/>
<strong>Organizacja ID:</strong> ${ev.organisationId}
</p>
<button class="btn btn-outline-danger delete-btn" data-id="${ev.eventId}">
🗑️ Usuń
</button>
</div>
</div>
`;
container.appendChild(card);
}
}
catch (err) {
container.innerHTML = `<p class="text-danger">Błąd ładowania danych.</p>`;
console.error(err);
}
}));