fix: front-end improvements

makes some fields visible and other hidden depending on the result of
some API calls, e.g. visitor is logged in -> show "Log out" button
This commit is contained in:
2025-05-19 00:43:15 +02:00
parent e0e6fa0573
commit 5536a9ad7f
15 changed files with 465 additions and 22 deletions

View File

@@ -1,19 +1,26 @@
var isAscending: boolean = false;
import { getEvent, getMyAccount, unhideElementById } from './generalUseHelpers.js';
var isAscending: boolean = false;
function toggleListSortOrder() {
isAscending = !isAscending;
loadEvents();
}
async function getEvents() {
const res = await fetch("/api/events" + (isAscending ? "?sort=asc" : ""));
if (!res.ok) throw new Error("Błąd pobierania wydarzeń");
const events = await res.json();
return events;
}
async function loadEvents() {
const container = document.getElementById("eventList");
if (!container) return;
try {
const res = await fetch("/api/events" + (isAscending ? "?sort=asc" : ""));
if (!res.ok) throw new Error("Błąd pobierania wydarzeń");
const events = await res.json();
var events = await getEvents();
if (events.length === 0) {
container.innerHTML = "<p class='text-muted'>Brak wydarzeń do wyświetlenia.</p>";
@@ -41,6 +48,20 @@ async function loadEvents() {
}
document.addEventListener("DOMContentLoaded", async () => {
var user = await getMyAccount();
if (user) {
if (user.isOrganisation) {
unhideElementById(document, "mainContainer");
unhideElementById(document, "addnewevent-btn");
}
unhideElementById(document, "logout-btn");
} else {
unhideElementById(document, "joinnow-btn");
unhideElementById(document, "signin-btn");
}
loadEvents();
// listen for clicks
const listSortToggleButton = document.getElementById("list-sort-btn");