Commit Graph

91 Commits

Author SHA1 Message Date
Matt d34d16fda1 Fix critical member management issues: dues tracking, member IDs, and profile display
Build And Push Image / docker (push) Successful in 2m20s Details
- Fix dues payment logic to automatically calculate payment_due_date as 1 year from payment date
- Remove redundant dues_paid_until field and replace with payment_due_date throughout
- Implement member ID generation system with format MUSA-YYYY-XXXX
- Create migration endpoints for generating member IDs and fixing payment dates
- Update admin members page to display actual member_id from database
- Ensure ProfileAvatar components use correct member_id field
- Add support for profile images in list and grid views with initials fallback
- Fix countries export alias for backward compatibility

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 18:45:47 +02:00
Matt abd71445ab Fix registration API to use new group-based user creation method
Build And Push Image / docker (push) Successful in 1m56s Details
- Replace deprecated createUserWithRoleRegistration with createUserWithGroupAssignment
- Update comments to reflect group-based system instead of role-based
- Resolves registration error when creating new users
2025-08-31 19:13:09 +02:00
Matt 70e79d2618 Replace all mock data in admin and board pages with real data
Build And Push Image / docker (push) Successful in 1m56s Details
- Admin members page now loads real member data from NocoDB API
- Admin users page fetches actual users from Keycloak with tier determination
- Board members page uses real member data with proper transformations
- Admin payments page generates payment records from dues tracking data
- Created new /api/admin/users endpoint for Keycloak user management
- All stats cards now calculate from real data instead of hardcoded values
- Removed all mock/placeholder data arrays from production pages

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 18:43:04 +02:00
Matt 1aef356d78 Replace all mock/placeholder data with real data systems
Build And Push Image / docker (push) Successful in 2m13s Details
- Added getUserCount() method to Keycloak admin for real user statistics
- Replaced hardcoded userCount (25) with live Keycloak data in admin stats
- Fixed board meeting API to query real events, removed Jan 15 2025 fallback
- Updated board stats to count real events instead of hardcoded 3
- Created member-tiers service for proper tier determination
- Created dues-calculator service for accurate dues tracking
- Updated auth callback to use member-tiers service
- Updated overdue-count API to use dues-calculator
- Added data quality tracking with confidence levels
- Added proper error handling - returns null/0 instead of fake data
- Included source tracking for all data (live/calculated/fallback)

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 18:28:38 +02:00
Matt 4b78080f53 fixes
Build And Push Image / docker (push) Successful in 1m34s Details
2025-08-15 15:53:13 +02:00
Matt 17b78b3514 fixes
Build And Push Image / docker (push) Successful in 1m36s Details
2025-08-15 15:22:24 +02:00
Matt df6d549573 fixes
Build And Push Image / docker (push) Successful in 1m31s Details
2025-08-15 14:52:18 +02:00
Matt a8022d8fb3 fixes
Build And Push Image / docker (push) Failing after 1m6s Details
2025-08-15 14:48:19 +02:00
Matt 888059a612 Implement dues reminder system with monthly payment cycle
Build And Push Image / docker (push) Failing after 1m10s Details
- Add API endpoint and email templates for dues reminders
- Change due date calculation from yearly to monthly billing
- Add visual status indicators for overdue and due-soon members
- Enhance member cards with status stripes and styling
2025-08-15 14:39:22 +02:00
Matt 3da5a64dbb fixes
Build And Push Image / docker (push) Successful in 1m39s Details
2025-08-14 15:39:30 +02:00
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 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 400f9cdd52 Add board-specific welcome email template and logic
Build And Push Image / docker (push) Successful in 1m43s Details
- Create separate welcome email template for board members
- Add conditional logic to use board template based on membership tier
- Update email service to support sendWelcomeBoardEmail method
- Include board-specific subject line and template preloading
2025-08-14 09:25:56 +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 34fdf820fe fixes
Build And Push Image / docker (push) Successful in 4m21s Details
2025-08-13 18:58:43 +02:00
Matt b49148cf95 fixes
Build And Push Image / docker (push) Has been cancelled Details
2025-08-13 18:55:49 +02:00
Matt 9b183b48cc fixes
Build And Push Image / docker (push) Successful in 3m27s Details
2025-08-13 17:24:31 +02:00
Matt e097fb746f fixes
Build And Push Image / docker (push) Successful in 3m45s Details
2025-08-13 17:16:22 +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 234c939dcd fixes
Build And Push Image / docker (push) Successful in 3m47s Details
2025-08-13 14:30:26 +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 70b77fbe9f Resolve merge conflicts in events system
Build And Push Image / docker (push) Successful in 3m13s Details
- Fixed conflicts in server/api/events/index.get.ts with improved logging and session management
- Fixed conflicts in server/api/events/index.post.ts with better validation and error handling
- Fixed conflicts in server/utils/nocodb-events.ts incorporating admin config integration and token validation
- Events system now uses proper session management and NocoDB v2 API patterns
- Maintains compatibility with existing admin configuration system
2025-08-12 17:05:33 +02:00
Matt 7d55468a21 Add comprehensive debug logging and refactor events API session handling
- Add extensive console logging throughout events GET/POST endpoints
- Replace getUserSession with createSessionManager for better session handling
- Temporarily disable complex filtering/sorting logic to isolate issues
- Enhance error handling with proper statusCode checking
2025-08-12 16:58:31 +02:00
Matt 287af29f6c feat(board): Add real data integration for board dashboard
Build And Push Image / docker (push) Successful in 3m22s Details
- Create /api/board/stats endpoint for member statistics and overview data
- Create /api/board/next-meeting endpoint for upcoming meeting information
- Update board.vue to fetch real data instead of using mock data
- Add loading states and error handling with graceful fallbacks
- Board Overview now shows actual member counts and pending actions
- Next Meeting section displays real event data when available

The board dashboard now displays live data from the database while maintaining
fallback functionality if any data sources are unavailable.
2025-08-12 14:18:55 +02:00
Matt e75579e3e4 fixes
Build And Push Image / docker (push) Successful in 3m6s Details
2025-08-12 12:53:05 +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 e06f639454 fixes
Build And Push Image / docker (push) Successful in 2m54s Details
2025-08-12 04:31:21 +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 a555584b2c Fix user dashboard data display issue
Build And Push Image / docker (push) Successful in 3m15s Details
- Enhanced session endpoint to fetch complete member data from database
- Added getMemberByKeycloakId function to nocodb utils for member lookup by Keycloak ID
- Session endpoint now returns both user authentication data and complete member profile
- User dashboard will now display proper member information instead of 'Not provided'
- Handles cases where member record might not exist gracefully
2025-08-11 16:54:14 +02:00
Matt 6e68e42f28 Fix broken verification button URLs in emails
Build And Push Image / docker (push) Successful in 3m11s Details
- Fix malformed verification links caused by config.public.domain
- Use absolute HTTPS URLs for verification links in both registration and verification emails
- Ensures verification buttons work correctly in all email clients
- Fixes the 'app://renderer/' URL prefix issue seen in email clients
2025-08-11 16:44:35 +02:00
Matt f4044c4477 Add unique member ID generation to registration process
Build And Push Image / docker (push) Successful in 3m25s Details
- Generate and store unique member IDs during user registration
- Update email templates to include formatted member ID and registration date
- Add member_id field mapping in NocoDB utility functions
- Enhance email service with better logging and template data handling
2025-08-11 16:05:24 +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 62be77ec34 Add circuit breaker pattern to email verification system
Build And Push Image / docker (push) Successful in 2m53s Details
Implement rate limiting and attempt tracking to prevent verification abuse and infinite reload loops. Add temporary blocking with clear user feedback, enhanced error states, and retry logic. Includes new verification state utilities and improved UI components for better user experience during blocked states.
2025-08-10 15:48:11 +02:00
Matt 623ad9c3fd Refactor email verification to use JSON responses instead of redirects
Build And Push Image / docker (push) Successful in 2m54s Details
- Replace server-side redirects with JSON API responses for better error handling
- Add support for partial success when Keycloak update fails but token is valid
- Improve error messages with specific status codes (410 for expired, 409 for already used)
- Extract email from API response instead of URL query parameters
- Enable client-side navigation with proper error state management
2025-08-09 19:40:04 +02:00
Matt d14008efd4 Add password setup flow with server-side validation
Build And Push Image / docker (push) Successful in 3m2s Details
- Replace external password setup link with internal navigation
- Add comprehensive password validation utility with strength requirements
- Create dedicated password setup page and API endpoint
- Streamline user flow from email verification to password creation
2025-08-09 19:11:54 +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 358e9c0ad1 Add Keycloak integration support
Build And Push Image / docker (push) Successful in 2m59s Details
- Update domain configuration to portal subdomain with HTTPS
- Add keycloak_id field to member creation and update operations
- Add API endpoint for linking Keycloak accounts to existing members
2025-08-09 18:22:34 +02:00
Matt 794b6a09f0 Fix email verification domain and membership fee amount
Build And Push Image / docker (push) Successful in 3m7s Details
- Update domain config to use portal.monacousa.org for verification links
- Correct membership fee from €50 to €150/year in welcome emails
- Add password setup link to verification success page
- Include registration date in welcome email template
2025-08-09 18:10:33 +02:00