mirror of
https://github.com/GCMatters/hermes.git
synced 2026-02-04 05:30:13 +01:00
Add applying to event
This commit is contained in:
@@ -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,7 @@ 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");
|
||||
var org_id = -1;
|
||||
try {
|
||||
var user = yield getMyAccount();
|
||||
@@ -63,7 +64,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 +104,29 @@ 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) {
|
||||
applyBtn.disabled = true;
|
||||
applyBtn.textContent = "Applied Succesfully";
|
||||
}
|
||||
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 due to a network or server error.");
|
||||
}
|
||||
}));
|
||||
}
|
||||
}));
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user