Files
hermes/WebApp/wwwroot/js/eventView.js
2025-06-02 00:17:43 +02:00

164 lines
6.8 KiB
JavaScript
Raw Permalink Blame History

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());
});
};
import { getEvent, getMyAccount, unhideElementById, getMyRegisteredEventIds } from './generalUseHelpers.js';
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const eventId = urlParams.get('event');
document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, void 0, function* () {
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();
if (user) {
if (user.isOrganisation) {
org_id = user.organisationId;
}
unhideElementById(document, "logout-btn");
}
}
catch (_a) {
unhideElementById(document, "joinnow-btn");
unhideElementById(document, "signin-btn");
}
var thisEvent = null;
try {
if (eventId)
thisEvent = yield getEvent(eventId);
}
catch (err) {
if (container !== null)
container.innerHTML = `<p class="text-danger">To wydarzenie nie istnieje! <a href="/" style="color:#2898BD;">Powr<77>t -></a></p>`;
}
if (thisEvent == null) {
if (container !== null)
container.innerHTML = `<p class="text-danger">Błąd we wczytywaniu wydarzenia. <a href="/" style="color:#2898BD;">Powrót -></a></p>`;
}
else {
const titleText = document.getElementById("titleText");
const locationText = document.getElementById("locationText");
const descText = document.getElementById("descText");
const dateText = document.getElementById("dateText");
const organizerText = document.getElementById("organizerText");
const newdateText = new Date(thisEvent.eventDate).toLocaleDateString('pl-PL');
const newtimeText = new Date(thisEvent.eventDate).toLocaleTimeString('pl-PL');
titleText.innerHTML = thisEvent.title + ` (#${eventId})`;
locationText.innerHTML = "Place: " + thisEvent.location;
descText.innerHTML = thisEvent.description;
dateText.innerHTML = "When: " + newdateText + " " + newtimeText; //thisEvent.eventDate;
organizerText.innerHTML = "Organized by: " + thisEvent.organisationName;
if (org_id == thisEvent.organisationId) {
// Użytkownik jest organizacją, która
// stworzyła to wydarzenie
unhideElementById(document, "editBtn");
unhideElementById(document, "removeBtn");
}
else if (org_id == -1) {
// Użytkownik jest wolontariuszem
try {
const registeredIds = yield getMyRegisteredEventIds();
const isRegistered = registeredIds.includes(Number(eventId));
if (isRegistered) {
unhideElementById(document, "leaveBtn");
}
else {
unhideElementById(document, "applyBtn");
}
}
catch (_b) {
unhideElementById(document, "applyBtn");
applyBtn.textContent = "log in to apply";
applyBtn.disabled = true;
}
}
unhideElementById(document, "mainContainer");
}
if (modifyBtn) {
modifyBtn.addEventListener("click", (e) => {
window.location.href = "/modify.html?event=" + eventId;
});
}
if (removeBtn) {
removeBtn.addEventListener("click", (e) => __awaiter(void 0, void 0, void 0, function* () {
const confirmed = confirm("Really delete?");
if (!confirmed)
return;
try {
// Wysyła żądanie DELETE do API
const response = yield fetch(`/api/events/${eventId}`, {
method: "DELETE"
});
if (response.ok) {
alert("Event deleted.");
window.location.href = "/";
}
else {
alert("Couldn't delete event.");
}
}
catch (err) {
alert("Couldn't connect.");
console.error(err);
}
}));
}
if (applyBtn) {
applyBtn.addEventListener("click", (e) => __awaiter(void 0, void 0, void 0, function* () {
var _c;
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: ${(_c = result.error_msg) !== null && _c !== void 0 ? _c : "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 _d;
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: ${(_d = result.error_msg) !== null && _d !== void 0 ? _d : "Unknown error occurred."}`);
}
}
catch (error) {
console.error("Failed to leave:", error);
alert("Failed to leave.");
}
}));
}
}));