Lekkie zmiany

Trzeba dodać logowanie tak jak reszte(nie wiem gdzie było logowanie ale zaraz się znajdzie)
This commit is contained in:
Witkopawel
2025-04-30 16:21:51 +02:00
parent 071626366e
commit 0e14821cec
9 changed files with 131 additions and 161 deletions

View File

@@ -0,0 +1,28 @@
body {
font-family: 'Segoe UI', sans-serif;
}
#eventList .event-card {
background-color: white;
border: 2px dashed #17a2b8;
border-radius: 10px;
padding: 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
#eventList .event-card.filled {
border-style: solid;
}
#eventList .event-card .remove-btn {
background-color: #ff4d4d;
border: none;
border-radius: 50%;
color: white;
font-size: 1.2rem;
width: 36px;
height: 36px;
line-height: 1;
}

View File

@@ -1,25 +1,58 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>Lista wydarzeń</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="/css/style.css" />
<meta charset="UTF-8" />
<title>Events Panel</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/panel.css" rel="stylesheet" />
</head>
<body class="bg-light">
<div class="container mt-5">
<div class="d-flex justify-content-between align-items-center mb-4">
<h1 class="text-primary">📅 Wydarzenia</h1>
<a href="/create.html" class="btn btn-success">+ Dodaj nowe</a>
</div>
<div class="d-flex">
<!-- Sidebar -->
<div class="bg-white border-end p-3 vh-100" style="width: 80px;">
<div class="text-center mb-4">
<img src="/img/logo.svg" alt="Logo" style="width: 40px;">
</div>
<nav class="nav flex-column text-center">
<a href="#" class="nav-link text-info mb-3">🏠</a>
<a href="#" class="nav-link text-info mb-3">💬</a>
<a href="#" class="nav-link text-info mb-3">📅</a>
<a href="#" class="nav-link text-info mt-auto">⚙️</a>
</nav>
</div>
<div id="eventList" class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4">
</div>
</div>
<!-- Main content -->
<div class="flex-grow-1 p-4">
<div class="d-flex justify-content-between align-items-center mb-3">
<h2 class="text-primary">Events</h2>
<div>
<button class="btn btn-outline-info me-2">Join now</button>
<button class="btn btn-outline-secondary">Sign In</button>
</div>
</div>
<script type="module" src="/js/eventList.js"></script>
<script type="module" src="/js/eventDelete.js"></script>
<div class="input-group mb-4">
<input type="text" class="form-control rounded-start" placeholder="Search events..." />
<span class="input-group-text bg-white"><i class="bi bi-search"></i></span>
</div>
<div id="eventList" class="d-grid gap-3">
<!-- Karty wydarzeń będą ładowane tutaj -->
<div class="event-card filled">
<span>Event Title</span>
<button class="remove-btn delete-btn" data-id="5"></button> <!-- Przyciski usuwania z ID -->
</div>
</div>
<!-- Dodaj nowe -->
<a href="/create.html" class="btn btn-success">+ Dodaj nowe</a>
</div>
</div>
<script type="module" src="/js/eventList.js"></script>
<script type="module" src="/js/eventDelete.js"></script>
</body>
</html>
</html>

View File

@@ -9,26 +9,35 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
document.addEventListener("DOMContentLoaded", () => {
// Obsługuje kliknięcie na przycisk "Usuń"
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");
return; // Sprawdza, czy kliknięto przycisk "Usuń"
const id = target.getAttribute("data-id"); // Pobiera ID wydarzenia
if (!id)
return;
const confirmed = confirm("Na pewno chcesz usunąć to wydarzenie?");
const confirmed = confirm("Na pewno chcesz usunąć to wydarzenie?"); // Potwierdzenie usunięcia
if (!confirmed)
return;
const response = yield fetch(`/api/events/${id}`, {
method: "DELETE"
});
if (response.ok) {
const card = target.closest(".col");
if (card)
card.remove();
try {
// Wysyła żądanie DELETE do API
const response = yield fetch(`/api/events/${id}`, {
method: "DELETE"
});
if (response.ok) {
// Usuwa kartę z DOM (bez przeładowania strony)
const card = target.closest(".event-card");
if (card)
card.remove();
}
else {
alert("Błąd podczas usuwania wydarzenia.");
}
}
else {
alert("Nie udało się usunąć wydarzenia.");
catch (err) {
alert("Błąd połączenia z serwerem.");
console.error(err);
}
}));
});

View File

@@ -21,24 +21,15 @@ document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, vo
container.innerHTML = "<p class='text-muted'>Brak wydarzeń do wyświetlenia.</p>";
return;
}
// Wyczyść kontener przed dodaniem nowych
container.innerHTML = '';
for (const ev of events) {
const card = document.createElement("div");
card.className = "col";
card.className = "event-card filled";
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>
`;
<span>${ev.title}</span>
<button class="remove-btn delete-btn" data-id="${ev.eventId}"></button>
`;
container.appendChild(card);
}
}