From 172c56e0234f4da91ed80b1a6c1b6e238d4d0752 Mon Sep 17 00:00:00 2001 From: chark1es Date: Sun, 2 Feb 2025 16:54:28 -0800 Subject: [PATCH] fixed manual refresh --- src/components/profile/EventManagement.astro | 111 ++++-- src/components/profile/MemberManagement.astro | 321 ++++++++++++++++-- 2 files changed, 379 insertions(+), 53 deletions(-) diff --git a/src/components/profile/EventManagement.astro b/src/components/profile/EventManagement.astro index dcacbf3..a421122 100644 --- a/src/components/profile/EventManagement.astro +++ b/src/components/profile/EventManagement.astro @@ -232,21 +232,40 @@ const { title, columns } = config.ui.tables.events; ${formatDate(event.start_date)} ${formatDate(event.end_date)} ${event.points_to_reward || "0"} + ${event.location || "N/A"} -
- - -
+ ${ + event.files && event.files.length > 0 + ? event.files + .map( + (file: string) => ` + + ` + ) + .join("") + : "No files" + } + + + + + + `; @@ -260,9 +279,9 @@ const { title, columns } = config.ui.tables.events; // Show loading state eventsList.innerHTML = ` - + - Loading events... +
Loading events...
`; @@ -281,7 +300,7 @@ const { title, columns } = config.ui.tables.events; if (events.items.length === 0) { eventsList.innerHTML = ` - + No events found @@ -294,7 +313,7 @@ const { title, columns } = config.ui.tables.events; console.error("Failed to load events:", error); eventsList.innerHTML = ` - + Failed to load events. Please try again. @@ -319,18 +338,6 @@ const { title, columns } = config.ui.tables.events; refreshButton.addEventListener("click", () => { if (searchInput) searchInput.value = ""; loadEvents(); - - // Turn off officer view toggle - const officerViewToggle = - document.getElementById("officerViewToggle"); - const officerViewCheckbox = officerViewToggle?.querySelector( - 'input[type="checkbox"]' - ) as HTMLInputElement; - if (officerViewCheckbox) { - officerViewCheckbox.checked = false; - // Trigger the change event to update the views - officerViewCheckbox.dispatchEvent(new Event("change")); - } }); } @@ -407,4 +414,48 @@ const { title, columns } = config.ui.tables.events; document.addEventListener("showFilePreview", ((e: CustomEvent) => { showFilePreview(e.detail.url, e.detail.fileName); }) as EventListener); + + // Add event listeners for dynamic elements + document.addEventListener("click", (e) => { + const target = e.target as HTMLElement; + + // Handle file view buttons + const fileButton = target.closest("button[data-file-url]"); + if (fileButton) { + const url = fileButton.getAttribute("data-file-url"); + const fileName = fileButton.getAttribute("data-file-name"); + if (url && fileName) { + showFilePreview(url, fileName); + } + } + + // Handle view attendees button + const attendeesButton = target.closest(".view-attendees"); + if (attendeesButton) { + const eventId = attendeesButton.getAttribute("data-event-id"); + if (eventId) { + document.dispatchEvent( + new CustomEvent("viewAttendees", { detail: eventId }) + ); + } + } + + // Handle edit event button + const editButton = target.closest(".edit-event"); + if (editButton) { + const eventData = editButton.getAttribute("data-event"); + if (eventData) { + const event = JSON.parse(decodeURIComponent(eventData)); + const eventEditor = document.getElementById( + "eventEditor" + ) as HTMLDialogElement; + if (eventEditor) { + eventEditor.showModal(); + document.dispatchEvent( + new CustomEvent("editEvent", { detail: event }) + ); + } + } + } + }); diff --git a/src/components/profile/MemberManagement.astro b/src/components/profile/MemberManagement.astro index 5f291a1..a723f58 100644 --- a/src/components/profile/MemberManagement.astro +++ b/src/components/profile/MemberManagement.astro @@ -1,3 +1,12 @@ +--- +// Import the majors list +import allMajors from "../../data/allUCSDMajors.txt?raw"; +const majorsList: string[] = allMajors + .split("\n") + .filter((major: string) => major.trim()) + .sort((a, b) => a.localeCompare(b)); // Sort alphabetically +--- +
@@ -57,6 +66,8 @@ Name Email Member ID + Major + Grad Year Points Resume Actions @@ -68,11 +79,139 @@
+ + + + + + + + +