Merge branch 'master' into DtoBuilders

This commit is contained in:
2025-06-01 20:39:24 +02:00
11 changed files with 321 additions and 17 deletions

View File

@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { getEvent, getMyAccount, unhideElementById } from './generalUseHelpers.js';
import { getEvent, getMyAccount, unhideElementById, getMyRegisteredEventIds } from './generalUseHelpers.js';
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const eventId = urlParams.get('event');
@@ -15,6 +15,8 @@ document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, vo
var container = document.getElementById("mainContainer");
const modifyBtn = document.getElementById("editBtn");
const removeBtn = document.getElementById("removeBtn");
const applyBtn = document.getElementById("applyBtn");
const leaveBtn = document.getElementById("leaveBtn");
var org_id = -1;
try {
var user = yield getMyAccount();
@@ -36,7 +38,7 @@ document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, vo
}
catch (err) {
if (container !== null)
container.innerHTML = `<p class="text-danger">To wydarzenie nie istnieje! <a href="/" style="color:#2898BD;">Powrót -></a></p>`;
container.innerHTML = `<p class="text-danger">To wydarzenie nie istnieje! <a href="/" style="color:#2898BD;">Powr<EFBFBD>t -></a></p>`;
}
if (thisEvent == null) {
if (container !== null)
@@ -63,7 +65,14 @@ document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, vo
}
else if (org_id == -1) {
// Użytkownik jest wolontariuszem
unhideElementById(document, "applyBtn");
const registeredIds = yield getMyRegisteredEventIds();
const isRegistered = registeredIds.includes(Number(eventId));
if (isRegistered) {
unhideElementById(document, "leaveBtn");
}
else {
unhideElementById(document, "applyBtn");
}
}
unhideElementById(document, "mainContainer");
}
@@ -96,4 +105,52 @@ document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, vo
}
}));
}
if (applyBtn) {
applyBtn.addEventListener("click", (e) => __awaiter(void 0, void 0, void 0, function* () {
var _b;
try {
const response = yield fetch(`/api/events/join/${eventId}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
});
const result = yield response.json();
if (result.success) {
window.location.href = `/view.html?event=${eventId}`;
}
else {
alert(`Error: ${(_b = result.error_msg) !== null && _b !== void 0 ? _b : "Unknown error occurred."}`);
}
}
catch (error) {
console.error("Failed to apply:", error);
alert("Failed to apply.");
}
}));
}
if (leaveBtn) {
leaveBtn.addEventListener("click", (e) => __awaiter(void 0, void 0, void 0, function* () {
var _c;
try {
const response = yield fetch(`/api/events/leave/${eventId}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
});
const result = yield response.json();
if (result.success) {
window.location.href = `/view.html?event=${eventId}`;
}
else {
alert(`Error: ${(_c = result.error_msg) !== null && _c !== void 0 ? _c : "Unknown error occurred."}`);
}
}
catch (error) {
console.error("Failed to leave:", error);
alert("Failed to leave.");
}
}));
}
}));

View File

@@ -35,3 +35,13 @@ export function getMyAccount() {
return data;
});
}
export function getMyRegisteredEventIds() {
return __awaiter(this, void 0, void 0, function* () {
const res = yield fetch("/api/auth/my_events");
if (!res.ok) {
throw Error("Użytkownik niezalogowany!");
}
const events = yield res.json();
return events.map((event) => event.eventId);
});
}

View File

@@ -80,6 +80,7 @@
<script type="module" src="/js/eventModify.js"></script>
<script type="module" src="/js/generalUseHelpers.js"></script>
<script type="module" src="/js/auth.js"></script>
</body>

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
@@ -64,6 +64,7 @@
<h4 id="descText"></h4><br />
<button id="applyBtn" class="button hidden-before-load"><span>Apply</span><span>&#11166;</span></button>
<button id="leaveBtn" class="button hidden-before-load"><span>Leave</span><span>&#11166;</span></button>
<button id="editBtn" class="button hidden-before-load"><span>Modify</span><span>&#11166;</span></button>
<button id="removeBtn" class="button hidden-before-load" style="background-color: red;"><span>Remove permanently</span><span>&#11166;</span></button>