From 61baa9661115a87e89e38d4b19684c98c087e318 Mon Sep 17 00:00:00 2001 From: chark1es Date: Thu, 13 Feb 2025 02:55:25 -0800 Subject: [PATCH] add filtering --- .../dashboard/Officer_EventManagement.astro | 3126 +++++++++-------- 1 file changed, 1735 insertions(+), 1391 deletions(-) diff --git a/src/components/dashboard/Officer_EventManagement.astro b/src/components/dashboard/Officer_EventManagement.astro index 4ff7e9d..7b650eb 100644 --- a/src/components/dashboard/Officer_EventManagement.astro +++ b/src/components/dashboard/Officer_EventManagement.astro @@ -15,6 +15,587 @@ const sendLog = SendLog.getInstance(); // Interface for Event type interface Event { + id: string; + event_name: string; + event_description: string; + event_code: string; + location: string; + files: string[]; + points_to_reward: number; + start_date: string; + end_date: string; + published: boolean; + has_food: boolean; + attendees: AttendeeEntry[]; +} + +interface AttendeeEntry { + user_id: string; + time_checked_in: string; + food: string; +} + +interface ListResponse { + page: number; + perPage: number; + totalItems: number; + totalPages: number; + items: T[]; +} + +// Initialize variables +let eventResponse: ListResponse = { + page: 1, + perPage: 5, + totalItems: 0, + totalPages: 0, + items: [], +}; +let upcomingEvents: Event[] = []; + +// Fetch events +try { + if (auth.isAuthenticated()) { + eventResponse = await get.getList("events", 1, 5, "", "-start_date"); + upcomingEvents = eventResponse.items; + } +} catch (error) { + console.error("Failed to fetch events:", error); +} + +const totalEvents = eventResponse.totalItems; +const totalPages = eventResponse.totalPages; +const currentPage = eventResponse.page; + +// Add type declaration for window +declare global { + interface Window { + [key: string]: any; + openEditModal: (event?: any) => void; + deleteFile: (eventId: string, filename: string) => void; + previewFile: (url: string, filename: string) => void; + openDetailsModal: (event: Event) => void; + showFilePreview: (file: { + url: string; + type: string; + name: string; + }) => void; + backToFileList: () => void; + handlePreviewError: () => void; + showLoading: () => void; + hideLoading: () => void; + deleteEvent: (eventId: string, eventName: string) => Promise; + resetAndCloseModal: () => void; + } +} +--- + + + + + + + + + + + + + + + +