131 Commits

Author SHA1 Message Date
355affb6b2 feat: update RSVP deadlines to reflect hard close on Feb 7, 2026 2026-01-30 00:12:28 +02:00
1be7c78b51 feat: add CSRF token handling for guest deletion and enhance guest update subscription in realtime hooks 2026-01-29 23:39:59 +02:00
c49683376a feat: enhance RSVP email handling with CSRF token and improved error notifications 2026-01-29 23:32:47 +02:00
ac92979ab3 feat: update guest ID validation to require non-empty strings in RSVP and related schemas 2026-01-29 23:25:45 +02:00
68c6318292 feat: enhance guest management with search and status filtering capabilities 2026-01-29 19:34:35 +02:00
b51bdf07c3 feat: enhance photo approval and deletion process with CSRF token handling and error notifications 2026-01-29 18:37:26 +02:00
9664c1eb9c feat: implement table reset functionality and default seating layout 2026-01-29 17:43:18 +02:00
80d94bedd0 feat: implement safe query handling for report data and add partial data warning in ReportsExports 2026-01-29 17:18:29 +02:00
be36c949e1 feat: update Toaster component to adjust position based on admin route 2026-01-29 16:59:22 +02:00
7d36913afc feat: enhance Admin components with sidebar collapse functionality and improved navigation 2026-01-29 16:06:38 +02:00
07b0c92cd4 feat: enhance AdminNavbar with smooth scrolling and dynamic tab handling 2026-01-29 15:01:22 +02:00
e70979409c feat: remove 'Add Guest' button from AdminHeader for a cleaner interface 2026-01-29 14:31:40 +02:00
bba7a7405a feat: enhance hover and active states across admin components for improved user interaction 2026-01-29 14:29:12 +02:00
39632d3c1e feat: simplify AdminQuickStats component by reducing unnecessary user icons 2026-01-29 14:09:15 +02:00
3fda62eb47 feat: implement system status API with service health checks and timeout handling 2026-01-29 14:06:23 +02:00
b0b54e2e60 feat: enhance RSVP and stats fetching logic to include detailed device and user information 2026-01-29 13:57:19 +02:00
d1162a5f9d feat: add system status monitoring with real-time updates and error handling 2026-01-29 13:39:17 +02:00
51d5272aa8 feat: enhance admin dashboard with real-time updates, improved activity mapping, and loading states 2026-01-29 13:33:08 +02:00
6ecdcfdbeb feat: update RSVP and stats fetching logic to include maxPax and plusOnesCount for accurate attendance calculations 2026-01-29 13:16:02 +02:00
3c96828bb8 feat: enhance guest management and export functionality
- Added CSRF token handling for magic link generation in MagicLinkDialog.
- Improved photo normalization and bulk update/delete functionality in GalleryModeration.
- Updated analytics export endpoint in GuestAnalyticsEnhanced.
- Refactored music request manager to streamline data fetching and export processes.
- Introduced guest selection and export capabilities in GuestsTab with a new GuestExportDialog.
- Adjusted security gate verification endpoint in SecurityGateTab.
- Enhanced CSV and XLSX import utilities to support new guest data structure and header normalization.
- Created a new GuestExportDialog component for flexible guest list exports in various formats.
2026-01-29 13:05:26 +02:00
527f643a51 feat: Implement guest import functionality with a new API route and an admin dashboard dialog. 2026-01-29 10:31:41 +02:00
5f22444332 refactor: remove enhanced seating chart component and initialize admin data loading states to false. 2026-01-29 09:22:01 +02:00
641bef46cb feat: Refine admin guest counting logic, increase stats refresh rate, and add guest count utility scripts. 2026-01-29 08:40:30 +02:00
8cb95f3ddf feat: Enhance RSVP system by adding rsvpStatus and plusOne fields, and update admin APIs, dashboard, and statistics to reflect these changes. 2026-01-27 23:05:52 +02:00
8e5e42912b style: Add hover effects to the admin dashboard navigation tabs. 2026-01-27 12:56:40 +02:00
4e8d195532 feat: implement a comprehensive admin dashboard with dedicated tabs for various event management features. 2026-01-27 08:15:28 +02:00
5e6799677b refactor: memoize real-time RSVP update handler for improved stability and performance. 2026-01-27 02:19:57 +02:00
59a57f0f6f feat: Integrate pagination and error handling improvements in admin dashboard and API
- Added pagination support for guest fetching in the admin dashboard, enhancing performance with large datasets.
- Updated API endpoints to handle pagination parameters and return structured responses with total counts and pagination info.
- Improved error handling for non-JSON responses and JSON parsing errors in the admin content.
- Refactored admin layout to utilize shared stats context, reducing redundant API calls and improving data consistency.
- Implemented dynamic imports for heavy components in the admin dashboard to optimize loading times.
2026-01-27 01:18:57 +02:00
0e17c61740 feat: Implement real-time event handling for guest and table management
- Added real-time event emissions for guest creation, update, and deletion across various API routes.
- Enhanced guest request submission to include real-time notifications.
- Introduced real-time updates for table creation to keep the admin dashboard synchronized.
- Improved error handling for real-time event emissions to ensure reliability during guest and table operations.
2026-01-27 00:46:10 +02:00
0e0f8433fc feat: Enhance RSVP handling and real-time updates
- Added rsvpStatus and rsvpCompletedAt fields to RSVP data for better tracking.
- Implemented real-time event emission for RSVP updates to sync admin dashboard.
- Improved error handling during RSVP submissions and updates to ensure reliability.
- Updated guest list refresh logic in the admin dashboard to include RSVP status synchronization.
2026-01-27 00:27:42 +02:00
83b7e1730a feat: Update dashboard icons for improved visual consistency
- Replaced the Heart icon with the Gift icon in the RSVPStatusCard to better represent the gift section.
- Adjusted the SECTION_ICON_MAP to reflect this change, enhancing the overall user interface and iconography.
2026-01-26 23:30:11 +02:00
68d20046df feat: Revamp Dashboard Story Page with Enhanced Narrative and Milestones
- Introduced a new narrative section detailing the love story, enhancing user engagement.
- Added a timeline feature showcasing significant milestones with rich storytelling elements.
- Improved UI components for better visual appeal, including animations and responsive design.
- Integrated new icons and images to enrich the storytelling experience.
- Updated layout for improved readability and user interaction.
2026-01-26 23:27:37 +02:00
8032a3cee7 feat: Improve mobile pull-to-refresh handling and prevent accidental triggers
- Add CSS rules to prevent native pull-to-refresh behavior on mobile browsers.
- Update pull-to-refresh hook to increase the threshold for triggering refresh from 80px to 120px.
- Enhance mobile gesture handling to only allow pull-to-refresh at the very top of scrollable areas and require more deliberate gestures to activate it.
- Implement touch-action properties to improve user experience and prevent unwanted touch behaviors.
2026-01-26 23:08:34 +02:00
7dbf4f7ad9 feat: Enhance reports summary API and UI components
- Implement dynamic caching for reports summary API to ensure up-to-date data.
- Update reports summary endpoint to include guest counts and table details.
- Improve error handling and user feedback in the ReportsExports component.
- Add retry functionality for failed data fetches and display appropriate alerts.
- Update UI to inform users when no guests are present in the database.
2026-01-26 23:05:20 +02:00
e559ecbc93 feat: Enhance admin password management and reporting features
- Update seed script to ensure admin password is hashed and can be reset easily.
- Implement emergency password reset functionality for development environments.
- Add new report types for seating posters and guest lists, with proper data formatting.
- Improve error handling and user feedback for admin authentication and password verification.
- Sanitize PDF export data to prevent corruption and ensure valid output.
- Update guestbook entry validation to allow editing without requiring guest name.
- Enhance UI components for better user experience in admin and guest features.
2026-01-24 16:29:23 +02:00
355b1a2c5b fix: Resolve dynamic route parameter conflict
- Rename /api/admin/guests/[id]/relationship to /api/admin/guests/[guestId]/relationship
- Update route parameter from 'id' to 'guestId' for consistency
- Fixes Next.js error: 'You cannot use different slug names for the same dynamic path'
- All references updated to use guestId parameter
2026-01-24 03:21:22 +02:00
666bec95bb feat: Add client-side validation for admin creation and setup guide
Admin Creation Improvements:
- Add comprehensive client-side validation before API call
- Validate username (required, max 100 chars)
- Validate email format
- Validate password (min 8 chars for new admins)
- Validate role selection
- Better error messages for users
- Trim and normalize input data

Documentation:
- Create comprehensive SETUP_GUIDE.md
- Include feature checklist
- Add testing checklist
- Add troubleshooting section
- Document API endpoints
- Include database setup instructions

This should resolve the 'validation failed' error by catching issues client-side before the API call.
2026-01-24 03:11:50 +02:00
60fd99492f feat: Implement Excel and PDF export functionality for reports
Excel Export:
- Implement server-side Excel export using exceljs
- Generate properly formatted .xlsx files with headers and styling
- Auto-fit columns based on content
- Support all report types (headcount, dietary, relationships, seating)

PDF Export:
- Implement client-side PDF generation using jsPDF and jspdf-autotable
- Generate formatted PDF reports with tables and headers
- Add page numbers and proper formatting
- Support all report types

Client Updates:
- Update export handler to properly handle different content types
- Add proper blob handling for Excel files
- Add PDF generation function for client-side rendering
- Improve error handling and user feedback

All export formats (CSV, Excel, PDF) are now fully functional.
2026-01-24 03:08:45 +02:00
d94937954f fix: Audit and fix Wedding Day Tools features
Wedding Day Tools Fixes:
- Update guest filtering to use rsvpStatus (ACCEPTED) instead of isAttending
- Add rsvpStatus to guest interface and API responses
- Fix check-in API to support both rsvpStatus and isAttending (backward compatible)
- Improve error handling in check-in/undo check-in functions
- Add emergency contacts local storage fallback when API unavailable
- Update guests API to include rsvpStatus in select query
- Fix guest status determination to prioritize rsvpStatus over isAttending

Features Working:
 Guest check-in/undo check-in
 QR code generation and printing
 Attendance tracking and progress
 Emergency contacts management (with local storage backup)
 Guest lookup and search
 Check-in list export

All wedding day tools are now functional and compatible with the new RSVP system.
2026-01-24 03:03:33 +02:00
dab81a6a60 feat: Add UI components for edit functionality and email preferences
UI Components:
- Add edit buttons and modals for guestbook messages (guest dashboard)
- Add edit buttons and modals for tributes (guest dashboard + admin)
- Add 'My Messages' and 'My Tributes' sections in guest dashboard
- Add 'edited' indicators to guestbook and tribute displays
- Add RSVP email preferences toggle in admin settings
- Add edit button to admin tributes list with edit dialog
- Add Who's Who filtering UI (relationship and opt-in filters)

API Updates:
- Update guestbook GET to include updatedAt, guestId, isEdited
- Update tribute GET to include updatedAt, guestId, isEdited
- Update admin tributes GET to include updatedAt and isEdited

TypeScript Fixes:
- Fix type annotations in activity-log, reports, and other routes
- Fix Guest type compatibility issues
- Fix inviteCode optional chaining
- Regenerate Prisma client for new schema fields

Features Completed:
 Edit guestbook messages (admin + guest)
 Edit tributes (admin + guest)
 Edit relationship (admin dashboard - already existed)
 RSVP email notifications (backend + UI preferences)
 Who's Who filtering (relationship + opt-in)
 Reports & exports (statistics + CSV exports)
 Activity feed enhancements
 'Edited' indicators on messages/tributes
2026-01-24 03:01:38 +02:00
9fc9c9c32c feat: Implement comprehensive admin and guest features
Backend API Endpoints:
- Add PUT /api/guestbook/[id] for guests to edit own messages
- Add PUT /api/tribute/[id] for guests to edit own tributes
- Add PUT /api/admin/tributes/[id] for admin to edit any tribute
- Add PUT /api/admin/guests/[id]/relationship for editing relationships
- Add GET/PUT /api/admin/settings/email-preferences for RSVP notifications
- Add GET /api/admin/reports/summary for statistics dashboard
- Add GET /api/admin/reports/export for CSV report generation
- Update /api/admin/whos-who with relationship and opt-in filtering
- Update /api/admin/activity-log with comprehensive activity tracking
- Update /api/admin/stats to use rsvpStatus instead of isAttending
- Add RSVP email notifications to admins in /api/rsvp/submit

Database Schema:
- Add receiveRsvpNotifications and role fields to Admin model
- Create migration for admin email preferences and roles
- Update seed script to include super admins (denverm, mahaliam)

Features:
- Edit guestbook messages (admin + guest)
- Edit tributes (admin + guest)
- Edit guest relationships from admin dashboard
- RSVP email notifications to admins with preferences
- Fixed statistics dashboard queries
- Fixed report generation (headcount, dietary, relationships, seating)
- Who's Who filtering by relationship and opt-in status
- Enhanced activity feed with RSVP, guestbook, tribute tracking
- Super admin seed script

Note: UI components for guest-side editing still need to be added
2026-01-24 02:56:18 +02:00
a9b27ced7f clarify: Update dress code to distinguish wedding colors from guest style suggestions
- Change header from 'Inspired Color Palette' to 'Complementary Style Suggestions'
- Add note explaining wedding's actual color scheme is sage green (matching app)
- Clarify earthly tones are optional suggestions to complement theme, not requirements
- Update narrative to emphasize guests can choose their own colors
- Update style tip to emphasize these are optional suggestions, not requirements
- Addresses guest confusion about needing to match earthly tones
2026-01-24 01:22:03 +02:00
e963dc53c6 fix: Move fetchWhosWho outside useEffect for pagination access
- Move fetchWhosWho function outside useEffect using useCallback
- Fixes TypeScript error: Cannot find name 'fetchWhosWho'
- Allows pagination buttons to call fetchWhosWho with new page number
- Maintains polling functionality with proper cleanup
2026-01-22 19:29:36 +02:00
3304e9f26f fix: Add missing Edit icon import from lucide-react
- Add Edit to lucide-react imports in admin-dashboard
- Fixes ReferenceError: Edit is not defined
- Edit icon is used in guestbook entry edit button
2026-01-22 19:27:15 +02:00
120024aa33 security: Remove plain text password from logs
- Change log message from 'Updating admin password to TSD107AS' to generic message
- Prevents password exposure in production logs
- Security best practice: never log passwords, even in development
2026-01-22 19:25:20 +02:00
20d288dcae docs: Add reminder comment about handler function definitions
- Add developer note in AdminDashboard component
- Reminds developers to define handlers before use
- References validation script for verification
2026-01-22 17:30:34 +02:00
5d8a72b0a5 feat: Add handler validation script to prevent undefined function errors
- Create validate-handlers.js script to check for undefined event handlers
- Add npm run validate:handlers command
- Add prebuild hook to run validation before builds
- Add ESLint no-undef rule to catch undefined references
- Add documentation in scripts/README-validation.md

Prevents issues like 'ReferenceError: handleSaveEditGuestbook is not defined'
by validating all onClick/onChange/onSubmit handlers are defined before use.

The script:
- Scans all React components for event handlers
- Verifies functions are defined in component scope
- Excludes props and imported functions
- Runs automatically before builds
- Can be run manually: npm run validate:handlers
2026-01-22 17:30:22 +02:00
0b6979e2d6 fix: Add missing handleEditGuestbookEntry and handleSaveEditGuestbook functions
- Define handleEditGuestbookEntry to open edit dialog with entry data
- Define handleSaveEditGuestbook to save guestbook entry changes
- Fixes ReferenceError: handleSaveEditGuestbook is not defined

These functions were referenced in the UI but not defined in the component scope
2026-01-22 17:26:05 +02:00
700bf58ca6 fix: Add ChunkLoadError handling with automatic page reload
- Detect ChunkLoadError in global error handler
- Automatically clear Next.js cache and reload page when chunk errors occur
- Add proper cache headers for Next.js static chunks (immutable caching)
- Handle ChunkLoadError in both error events and unhandled promise rejections
- Prevents users from seeing chunk load errors after deployments

Fixes production issue where admin page fails to load after new deployment due to stale chunks in browser cache
2026-01-22 15:31:38 +02:00
2e1f2f0365 feat: Add pagination to who's who, couple relationship option, and guestbook editing
- Add pagination to who's who API with page/limit query params
- Add pagination UI to who's who tab in admin dashboard (20 per page)
- Add 'Couple' option to relationship field in guest edit form
- Create PUT endpoint for editing guestbook entries (message, photo, audio, video)
- Add edit UI for guestbook entries with dialog form and media URL support
- Update guestbook entry display to show edit button alongside delete

Allows admins to:
- Navigate through large guest lists efficiently
- Correct guest relationship mistakes (e.g., change to 'Couple')
- Fix typos and punctuation in guestbook messages
- Add or update media (photos, audio, video) in guestbook entries
2026-01-22 10:07:13 +02:00