Files
hermes/WebApp/wwwroot/js/eventModify.js
eee4 9de5c85120 feat: image support
also translated some strings back into english
2025-06-02 04:37:54 +02:00

102 lines
4.2 KiB
JavaScript

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 } from './generalUseHelpers.js';
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const eventId = urlParams.get('event');
function modifyEvent() {
return __awaiter(this, void 0, void 0, function* () {
// Pobieranie danych z formularza
const title = document.getElementById('title').value;
const location = document.getElementById('location').value;
const description = document.getElementById('description').value;
const imageURL = document.getElementById('imageURL').value;
const eventDateRaw = document.getElementById('eventDate').value;
// Walidacja prostych pól
if (!title || !location || !eventDateRaw) {
alert("Please fill out all of the required fields!");
return;
}
const eventDate = new Date(eventDateRaw).toISOString();
const payload = {
title,
location,
imageURL,
description,
eventDate,
};
try {
const response = yield fetch('/api/events/' + eventId, {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
});
if (!response.ok) {
const errorText = yield response.text();
throw new Error(errorText);
}
alert("Event modified!");
window.location.href = "/"; // Przekierowanie do strony głównej
}
catch (error) {
console.error("Error occurred while trying to modify event:", error);
alert("Couldn't modify event, an error occurred: " + error);
}
});
}
document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, void 0, function* () {
var container = document.getElementById("mainContainer");
const saveBtn = document.getElementById("saveBtn");
try {
var user = yield getMyAccount();
if (user) {
if (user.isOrganisation) {
unhideElementById(document, "mainContainer");
}
unhideElementById(document, "logout-btn");
}
}
catch (_a) {
unhideElementById(document, "joinnow-btn");
unhideElementById(document, "signin-btn");
}
if (saveBtn) {
saveBtn.addEventListener("click", (e) => {
e.preventDefault();
modifyEvent();
});
}
if (eventId !== null && container !== null) {
try {
const titleInput = document.getElementById('title');
const locationInput = document.getElementById('location');
const descriptionInput = document.getElementById('description');
const dateInput = document.getElementById('eventDate');
const imageInput = document.getElementById('imageURL');
var ev = yield getEvent(eventId);
if (ev === null) {
container.innerHTML = "<p class='text-muted'>Failed to load event data.</p>";
return;
}
else {
titleInput.value = ev.title || '';
locationInput.value = ev.location || '';
descriptionInput.value = ev.description || '';
dateInput.value = ev.eventDate.slice(0, 16) || '';
imageInput.value = ev.imageURL || '';
}
}
catch (err) {
console.log(err);
container.innerHTML = `<p class="text-danger">` + err + `</p>`;
}
}
}));