Commit Graph

71 Commits

Author SHA1 Message Date
Matt 503d68cd2d Replace date-fns with native date formatting and remove unused code
Build And Push Image / docker (push) Successful in 1m34s Details
Remove date-fns dependency in favor of native Intl.DateTimeFormat APIs, clean up obsolete admin endpoints, utility files, and archived documentation. Consolidate docs structure and remove unused plugins.
2025-08-14 15:08:40 +02:00
Matt 676bbc04f6 fixes
Build And Push Image / docker (push) Successful in 1m29s Details
2025-08-14 10:56:55 +02:00
Matt 983361114c fixes
Build And Push Image / docker (push) Successful in 1m35s Details
2025-08-14 10:46:12 +02:00
Matt 503d10f0ab fixes
Build And Push Image / docker (push) Failing after 1m9s Details
2025-08-14 10:43:21 +02:00
Matt 2ff0c31bbd Add profile image system with MinIO storage
Build And Push Image / docker (push) Failing after 1m5s Details
- Implement ProfileAvatar component for user avatars
- Integrate MinIO for profile image storage and management
- Add profile image fields to Member type definition
- Create server utilities and API endpoints for image handling
- Replace basic avatar icon with new ProfileAvatar in dashboard
- Update sharp dependency to v0.34.3
2025-08-14 10:28:40 +02:00
Matt 0952d6c381 fixes
Build And Push Image / docker (push) Successful in 1m42s Details
2025-08-14 09:36:17 +02:00
Matt 1ab45cf503 fixes
Build And Push Image / docker (push) Successful in 1m25s Details
2025-08-13 23:15:29 +02:00
Matt 198fbf3187 fixes
Build And Push Image / docker (push) Successful in 1m26s Details
2025-08-13 23:09:33 +02:00
Matt 3d565e8185 fixes
Build And Push Image / docker (push) Successful in 1m24s Details
2025-08-13 22:53:14 +02:00
Matt fc1d691950 fixes
Build And Push Image / docker (push) Successful in 1m26s Details
2025-08-13 22:43:40 +02:00
Matt 44aee8f2f9 Refactor event form to use separate date/time inputs with validation
Build And Push Image / docker (push) Successful in 1m26s Details
- Split combined datetime pickers into separate date and time fields
- Add validation for past dates and time consistency
- Implement error message display with dismissible alerts
- Add watchers to combine date/time values into ISO strings
- Set minimum date constraints to prevent past date selection
- Add delete endpoint for events
2025-08-13 22:23:06 +02:00
Matt 9ee0b2f14e Clean up codebase and reorganize plugin architecture
Build And Push Image / docker (push) Successful in 1m30s Details
- Archive documentation files to docs-archive/
- Remove numbered prefixes from plugin files for cleaner organization
- Remove unused dependencies (@nuxt/ui, @vuepic/vue-datepicker)
- Update event components and API endpoints
- Simplify plugin structure with descriptive names
2025-08-13 22:10:00 +02:00
Matt b49148cf95 fixes
Build And Push Image / docker (push) Has been cancelled Details
2025-08-13 18:55:49 +02:00
Matt b833826a1e fixes
Build And Push Image / docker (push) Successful in 3m54s Details
2025-08-13 16:47:53 +02:00
Matt 4b1a77de90 Add Keycloak group management for member portal access control
Build And Push Image / docker (push) Successful in 3m53s Details
- Add portal access control section to EditMemberDialog for admins
- Implement API endpoints for managing member Keycloak groups
- Add group selection UI with user/board/admin access levels
- Enhance admin config with reload functionality
- Support real-time group synchronization and status feedback
2025-08-13 16:31:54 +02:00
Matt 5371ad4fa2 fixes
Build And Push Image / docker (push) Successful in 4m16s Details
2025-08-13 15:57:34 +02:00
Matt db19eb2708 fixes
Build And Push Image / docker (push) Successful in 3m41s Details
2025-08-13 15:35:53 +02:00
Matt 62fb84d25e Add guest support for events and RSVP system
Build And Push Image / docker (push) Successful in 3m52s Details
- Add guest settings to event creation with configurable max guests per person
- Implement guest selection in RSVP form when guests are permitted
- Update API endpoints to handle guest count in RSVP requests
- Extend event and RSVP types to support guest-related fields
2025-08-13 15:14:43 +02:00
Matt 7205de22c9 fixes
Build And Push Image / docker (push) Successful in 3m45s Details
2025-08-13 14:14:58 +02:00
Matt 3620bd8b53 Fix RSVP API calls and compact MemberCard UI design
Build And Push Image / docker (push) Successful in 4m2s Details
2025-08-13 14:02:29 +02:00
Matt d215dfedc7 db updates and fixes
Build And Push Image / docker (push) Successful in 3m59s Details
2025-08-13 13:51:27 +02:00
Matt a0153a76a4 fixes
Build And Push Image / docker (push) Successful in 3m59s Details
2025-08-13 13:18:07 +02:00
Matt 5473555977 Add rich text editor and enhanced date picker to event dialogs
Build And Push Image / docker (push) Failing after 3m11s Details
Replace basic textarea with VuetifyTiptap rich text editor for event descriptions, supporting formatting options like bold, italic, headings, and lists. Replace native datetime inputs with VueDatePicker components featuring timezone support (Monaco/UTC) and improved UX. Update dependencies and add necessary plugins to support the new components.
2025-08-13 13:02:12 +02:00
Matt 1553a39fa8 fixes
Build And Push Image / docker (push) Successful in 3m23s Details
2025-08-13 12:27:21 +02:00
Matt ef01d2f22e fixes
Build And Push Image / docker (push) Successful in 3m5s Details
2025-08-12 17:31:03 +02:00
Matt 072acf95eb Fix type safety and data consistency in events system
Build And Push Image / docker (push) Successful in 3m25s Details
- Add proper TypeScript type annotations and assertions
- Handle string/number conversion for attendee counts consistently
- Improve null/undefined checks for events array
- Make event handlers async for better error handling
- Fix data type inconsistencies between components and API
2025-08-12 17:23:42 +02:00
Matt 22dbbae150 fixes
Build And Push Image / docker (push) Successful in 3m12s Details
2025-08-12 12:43:54 +02:00
Matt 67d4d5236b Add NocoDB events/RSVPs table config and improve session handling
Build And Push Image / docker (push) Successful in 3m24s Details
- Add events and rsvps table ID fields to NocoDB settings dialog
- Replace mock getUserSession with proper SessionManager integration
- Improve type safety with explicit type casting and error handling
- Add comprehensive events system bug analysis documentation
2025-08-12 12:24:16 +02:00
Matt f096897129 Add event management system with calendar and CRUD operations
Build And Push Image / docker (push) Failing after 2m37s Details
- Add EventCalendar component with FullCalendar integration
- Create event CRUD dialogs and upcoming event banner
- Implement server-side events API and database utilities
- Add events dashboard page and navigation
- Improve dues calculation with better overdue day logic
- Install FullCalendar and date-fns dependencies
2025-08-12 04:25:35 +02:00
Matt f1a462094a Add payment date selection for dues payments and improve member viewing
Build And Push Image / docker (push) Successful in 3m23s Details
- Add payment date dialog when marking dues as paid with date validation
- Replace direct member view emission with dedicated ViewMemberDialog component
- Add backend support for custom payment dates in mark-dues-paid endpoint
- Prevent future date selection for payment records
- Improve user workflow for viewing and editing member details
2025-08-11 15:41:33 +02:00
Matt abf6ade8cd Add comprehensive dues tracking with overdue calculations and enhanced UI
Build And Push Image / docker (push) Successful in 3m17s Details
2025-08-11 15:29:42 +02:00
Matt 7a8c88c341 Implement grace period system for member dues management
Build And Push Image / docker (push) Successful in 2m55s Details
- Add grace period logic for new members (1 month from join date)
- Enhance dues status computation with actual payment date validation
- Update member card to show grace period status with warning indicators
- Remove overdue dues banner from member list
- Add payment due date calculation in registration process
- Update email templates for improved member communication
2025-08-11 15:03:44 +02:00
Matt d9ef5bbdeb feat: Enhanced dues overdue system with detailed time tracking
Build And Push Image / docker (push) Successful in 2m42s Details
- Enhanced update-overdue-statuses API to calculate and return specific overdue durations (years/months)
- Updated overdue-count API to provide detailed member information with overdue durations
- Enhanced DuesOverdueBanner component to display expandable list of overdue members with their specific overdue time
- Added automatic marking of members as inactive when dues are over 1 year overdue
- Improved UI to show 'Dues Overdue - X Members Affected' with detailed breakdown
- Members with overdue dues now display exact time overdue (e.g., '2 years 3 months overdue')
- Added proper TypeScript interfaces for overdue member data
- Enhanced banner shows inactive status and overdue duration for each affected member
2025-08-10 23:42:17 +02:00
Matt ff85d1c722 Add overdue dues management system with notifications and status updates
Build And Push Image / docker (push) Successful in 2m55s Details
- Create DuesOverdueBanner component for displaying overdue member counts
- Add API endpoints for overdue count retrieval and status updates
- Integrate overdue dues banner into admin and member list dashboards
- Implement handlers for viewing overdue members and updating statuses
- Add dues management section to admin dashboard
2025-08-10 23:29:48 +02:00
Matt d3c3a865ba Add dues management system with UI improvements
Build And Push Image / docker (push) Successful in 3m3s Details
- Add BoardDuesManagement and DuesActionCard components
- Create API endpoints for dues status tracking and payment marking
- Integrate dues management section into board dashboard
- Move create portal account button to member card action buttons
- Add edit button to member view dialog
- Implement member update handlers and navigation between views
2025-08-10 23:19:48 +02:00
Matt ecae3795ee Add global branding and implement member ID system
Build And Push Image / docker (push) Successful in 3m2s Details
- Add MonacoUSA logo component with global header placement
- Implement member ID generation and migration system
- Create profile page and improve dashboard navigation
- Add member ID as payment reference in dues banner
- Enable support contact functionality with pre-filled email
2025-08-10 16:49:23 +02:00
Matt 9572291299 fixes
Build And Push Image / docker (push) Has been cancelled Details
2025-08-10 15:21:43 +02:00
Matt 4e53e7ea10 fixes
Build And Push Image / docker (push) Successful in 3m7s Details
2025-08-10 14:54:37 +02:00
Matt 524ecc6941 fixes
Build And Push Image / docker (push) Failing after 2m33s Details
2025-08-10 14:47:40 +02:00
Matt 006d4cf1ff Improve mobile keyboard handling and viewport detection
Build And Push Image / docker (push) Successful in 3m3s Details
- Disable transitions and make menu persistent on mobile devices
- Add keyboard open/close detection to prevent unwanted viewport updates
- Differentiate between keyboard events and actual viewport changes
- Improve resize debouncing with longer delays for mobile
- Handle orientation changes separately from keyboard events
2025-08-09 19:49:12 +02:00
Matt 2b2cd5891f Refactor mobile detection to use unified composable
Build And Push Image / docker (push) Successful in 2m52s Details
- Add useMobileDetection composable to centralize device detection logic
- Replace direct utility imports with composable usage across components
- Update MultipleNationalityInput, PhoneInputWrapper, and auth pages
- Simplify mobile-specific styling and behavior handling
- Improve code maintainability by consolidating detection logic
2025-08-09 19:27:15 +02:00
Matt 09773f9571 Looking at the changes, this commit primarily focuses on fixing a critical mobile Safari issue with the country dropdown selector. Here's my suggested commit message:
Build And Push Image / docker (push) Successful in 3m0s Details
```
Fix mobile Safari country dropdown with touch-optimized dialog interface

- Replace broken v-select with mobile-friendly dialog for Safari
- Add device detection to switch between desktop and mobile interfaces
- Implement full-screen country selection with search functionality
- Add touch-optimized UI with larger targets and smooth scrolling
- Update documentation with fix details and implementation notes
```

The main change is addressing a completely broken country selection dropdown on mobile Safari by implementing a mobile-specific dialog interface while maintaining the original desktop experience.
2025-08-09 18:53:26 +02:00
Matt 8d872f9a04 Refactor admin dashboard and fix mobile phone input dropdown
Build And Push Image / docker (push) Successful in 2m54s Details
- Simplify admin dashboard by consolidating configuration sections
- Fix mobile dropdown display issues in PhoneInputWrapper component
- Add proper flex layout and minimum height for mobile country list
- Update email configuration and testing functionality
- Remove redundant configuration cards in favor of unified portal settings
2025-08-09 16:05:00 +02:00
Matt dcb7840825 Make email service initialization asynchronous
Build And Push Image / docker (push) Successful in 3m10s Details
Convert getEmailService() to async function and update all callers to use await.
Replace synchronous require() with dynamic import() for admin-config module.
Add SMTP config loading to admin configuration dialog.
2025-08-09 15:50:54 +02:00
Matt 4ec05e29dc Add email verification system for user registration
Build And Push Image / docker (push) Successful in 3m1s Details
- Add SMTP configuration UI in admin panel with test functionality
- Implement email verification workflow with tokens and templates
- Add verification success/expired pages for user feedback
- Include nodemailer, handlebars, and JWT dependencies
- Create API endpoints for email config, testing, and verification
2025-08-08 22:51:14 +02:00
Matt 15dd090d44 fixes
Build And Push Image / docker (push) Successful in 3m7s Details
2025-08-08 21:52:21 +02:00
Matt 3894295569 fixes
Build And Push Image / docker (push) Successful in 2m55s Details
2025-08-08 20:41:39 +02:00
Matt 5535b7905d #### __1. Role-Based Security Architecture__
Build And Push Image / docker (push) Successful in 2m58s Details
- Replaces group-based tiers with proper Keycloak realm roles
- `monaco-user`, `monaco-board`, `monaco-admin` roles
- Backward compatibility with existing group system

#### __2. Advanced User Management__

- Comprehensive user profile synchronization
- Membership data stored in Keycloak user attributes
- Bidirectional sync between NocoDB and Keycloak

#### __3. Session Security & Monitoring__

- Real-time session tracking and management
- Administrative session control capabilities
- Enhanced security analytics foundation

#### __4. Email Workflow System__

- Multiple email types: DUES_REMINDER, MEMBERSHIP_RENEWAL, WELCOME, VERIFICATION
- Customizable email parameters and lifespans
- Advanced email template support

#### __5. Seamless Migration Path__

- All existing functionality continues to work
- New users automatically get realm roles
- Gradual migration from groups to roles
- Zero breaking changes

### 🔧 __What You Can Do Now__

#### __For New Users:__

- Public registrations automatically assign `monaco-user` role
- Portal account creation syncs member data to Keycloak attributes
- Enhanced email verification and welcome workflows

#### __For Administrators:__

- Session management and monitoring capabilities
- Advanced user profile management with member data sync
- Comprehensive role assignment and management
- Enhanced email communication workflows

#### __For Developers:__

- Use `hasRole('monaco-admin')` for role-based checks
- Access `getAllRoles()` for debugging and analytics
- Enhanced `useAuth()` composable with backward compatibility
- Comprehensive TypeScript support throughout

### 🛡️ __Security & Reliability__

- __Backward Compatibility__: Existing users continue to work seamlessly
- __Enhanced Security__: Proper realm role-based authorization
- __Error Handling__: Comprehensive error handling and fallbacks
- __Type Safety__: Full TypeScript support throughout the system
2025-08-08 19:40:13 +02:00
Matt b308b8272c updates to database schema
Build And Push Image / docker (push) Successful in 2m50s Details
2025-08-08 18:32:46 +02:00
Matt 28fa779dae fixes and cleanup
Build And Push Image / docker (push) Successful in 3m1s Details
2025-08-08 13:50:01 +02:00