diff --git a/src/components/dashboard/Officer_EventManagement.astro b/src/components/dashboard/Officer_EventManagement.astro index 6049f8d..426d3a9 100644 --- a/src/components/dashboard/Officer_EventManagement.astro +++ b/src/components/dashboard/Officer_EventManagement.astro @@ -2122,7 +2122,6 @@ declare global { e.preventDefault(); const form = e.target as HTMLFormElement; - // Get the submit and cancel buttons from the modal-action div const modalAction = document.querySelector(".modal-action"); const submitButton = modalAction?.querySelector( ".btn-primary" @@ -2136,8 +2135,17 @@ declare global { return; } + // Store original button content const originalText = submitButton.innerHTML; + // Immediately disable buttons and show loading state + submitButton.disabled = true; + cancelButton.disabled = true; + submitButton.innerHTML = ` + + Saving... + `; + try { const formData = new FormData(form); const eventId = ( @@ -2147,15 +2155,6 @@ declare global { // Get files from storage const selectedFiles = Array.from(selectedFileStorage.values()); - // Disable buttons and show loading state - submitButton.disabled = true; - cancelButton.disabled = true; - submitButton.innerHTML = ` -
- - Saving... -
- `; window.showLoading?.(); // Prepare event data @@ -2181,10 +2180,8 @@ declare global { if (eventId) { // Update existing event submitButton.innerHTML = ` -
- - Updating event... -
+ + Updating event... `; updatedEvent = await update.updateFields( "events", @@ -2195,10 +2192,8 @@ declare global { // Handle file uploads if any if (selectedFiles.length > 0) { submitButton.innerHTML = ` -
- - Uploading files (0/${selectedFiles.length})... -
+ + Uploading files (0/${selectedFiles.length})... `; await fileManager.appendFiles( "events", @@ -2216,10 +2211,8 @@ declare global { } else { // Create new event submitButton.innerHTML = ` -
- - Creating event... -
+ + Creating event... `; const pb = auth.getPocketBase(); const newEvent = await pb @@ -2229,10 +2222,8 @@ declare global { // Handle file uploads if any if (selectedFiles.length > 0) { submitButton.innerHTML = ` -
- - Uploading files (0/${selectedFiles.length})... -
+ + Uploading files (0/${selectedFiles.length})... `; await fileManager.uploadFiles( "events", @@ -2291,10 +2282,10 @@ declare global {
- - Failed -
- `; + + Failed + + `; await new Promise((resolve) => setTimeout(resolve, 2000)); // Show detailed error to user alert("Failed to save event. Please try again.");