Commit Graph

91 Commits

Author SHA1 Message Date
d34d16fda1 Fix critical member management issues: dues tracking, member IDs, and profile display
All checks were successful
Build And Push Image / docker (push) Successful in 2m20s
- 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
abd71445ab Fix registration API to use new group-based user creation method
All checks were successful
Build And Push Image / docker (push) Successful in 1m56s
- 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
70e79d2618 Replace all mock data in admin and board pages with real data
All checks were successful
Build And Push Image / docker (push) Successful in 1m56s
- 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
1aef356d78 Replace all mock/placeholder data with real data systems
All checks were successful
Build And Push Image / docker (push) Successful in 2m13s
- 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
4b78080f53 fixes
All checks were successful
Build And Push Image / docker (push) Successful in 1m34s
2025-08-15 15:53:13 +02:00
17b78b3514 fixes
All checks were successful
Build And Push Image / docker (push) Successful in 1m36s
2025-08-15 15:22:24 +02:00
df6d549573 fixes
All checks were successful
Build And Push Image / docker (push) Successful in 1m31s
2025-08-15 14:52:18 +02:00
a8022d8fb3 fixes
Some checks failed
Build And Push Image / docker (push) Failing after 1m6s
2025-08-15 14:48:19 +02:00
888059a612 Implement dues reminder system with monthly payment cycle
Some checks failed
Build And Push Image / docker (push) Failing after 1m10s
- 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
3da5a64dbb fixes
All checks were successful
Build And Push Image / docker (push) Successful in 1m39s
2025-08-14 15:39:30 +02:00
503d68cd2d Replace date-fns with native date formatting and remove unused code
All checks were successful
Build And Push Image / docker (push) Successful in 1m34s
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
503d10f0ab fixes
Some checks failed
Build And Push Image / docker (push) Failing after 1m9s
2025-08-14 10:43:21 +02:00
2ff0c31bbd Add profile image system with MinIO storage
Some checks failed
Build And Push Image / docker (push) Failing after 1m5s
- 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
400f9cdd52 Add board-specific welcome email template and logic
All checks were successful
Build And Push Image / docker (push) Successful in 1m43s
- 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
44aee8f2f9 Refactor event form to use separate date/time inputs with validation
All checks were successful
Build And Push Image / docker (push) Successful in 1m26s
- 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
9ee0b2f14e Clean up codebase and reorganize plugin architecture
All checks were successful
Build And Push Image / docker (push) Successful in 1m30s
- 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
34fdf820fe fixes
All checks were successful
Build And Push Image / docker (push) Successful in 4m21s
2025-08-13 18:58:43 +02:00
b49148cf95 fixes
Some checks failed
Build And Push Image / docker (push) Has been cancelled
2025-08-13 18:55:49 +02:00
9b183b48cc fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m27s
2025-08-13 17:24:31 +02:00
e097fb746f fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m45s
2025-08-13 17:16:22 +02:00
b833826a1e fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m54s
2025-08-13 16:47:53 +02:00
4b1a77de90 Add Keycloak group management for member portal access control
All checks were successful
Build And Push Image / docker (push) Successful in 3m53s
- 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
5371ad4fa2 fixes
All checks were successful
Build And Push Image / docker (push) Successful in 4m16s
2025-08-13 15:57:34 +02:00
db19eb2708 fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m41s
2025-08-13 15:35:53 +02:00
62fb84d25e Add guest support for events and RSVP system
All checks were successful
Build And Push Image / docker (push) Successful in 3m52s
- 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
234c939dcd fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m47s
2025-08-13 14:30:26 +02:00
d215dfedc7 db updates and fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m59s
2025-08-13 13:51:27 +02:00
70b77fbe9f Resolve merge conflicts in events system
All checks were successful
Build And Push Image / docker (push) Successful in 3m13s
- 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
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
287af29f6c feat(board): Add real data integration for board dashboard
All checks were successful
Build And Push Image / docker (push) Successful in 3m22s
- 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
e75579e3e4 fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m6s
2025-08-12 12:53:05 +02:00
67d4d5236b Add NocoDB events/RSVPs table config and improve session handling
All checks were successful
Build And Push Image / docker (push) Successful in 3m24s
- 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
e06f639454 fixes
All checks were successful
Build And Push Image / docker (push) Successful in 2m54s
2025-08-12 04:31:21 +02:00
f096897129 Add event management system with calendar and CRUD operations
Some checks failed
Build And Push Image / docker (push) Failing after 2m37s
- 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
a555584b2c Fix user dashboard data display issue
All checks were successful
Build And Push Image / docker (push) Successful in 3m15s
- 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
6e68e42f28 Fix broken verification button URLs in emails
All checks were successful
Build And Push Image / docker (push) Successful in 3m11s
- 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
f4044c4477 Add unique member ID generation to registration process
All checks were successful
Build And Push Image / docker (push) Successful in 3m25s
- 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
f1a462094a Add payment date selection for dues payments and improve member viewing
All checks were successful
Build And Push Image / docker (push) Successful in 3m23s
- 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
abf6ade8cd Add comprehensive dues tracking with overdue calculations and enhanced UI
All checks were successful
Build And Push Image / docker (push) Successful in 3m17s
2025-08-11 15:29:42 +02:00
7a8c88c341 Implement grace period system for member dues management
All checks were successful
Build And Push Image / docker (push) Successful in 2m55s
- 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
d9ef5bbdeb feat: Enhanced dues overdue system with detailed time tracking
All checks were successful
Build And Push Image / docker (push) Successful in 2m42s
- 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
ff85d1c722 Add overdue dues management system with notifications and status updates
All checks were successful
Build And Push Image / docker (push) Successful in 2m55s
- 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
d3c3a865ba Add dues management system with UI improvements
All checks were successful
Build And Push Image / docker (push) Successful in 3m3s
- 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
ecae3795ee Add global branding and implement member ID system
All checks were successful
Build And Push Image / docker (push) Successful in 3m2s
- 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
62be77ec34 Add circuit breaker pattern to email verification system
All checks were successful
Build And Push Image / docker (push) Successful in 2m53s
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
623ad9c3fd Refactor email verification to use JSON responses instead of redirects
All checks were successful
Build And Push Image / docker (push) Successful in 2m54s
- 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
d14008efd4 Add password setup flow with server-side validation
All checks were successful
Build And Push Image / docker (push) Successful in 3m2s
- 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
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:
All checks were successful
Build And Push Image / docker (push) Successful in 3m0s
```
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
358e9c0ad1 Add Keycloak integration support
All checks were successful
Build And Push Image / docker (push) Successful in 2m59s
- 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
794b6a09f0 Fix email verification domain and membership fee amount
All checks were successful
Build And Push Image / docker (push) Successful in 3m7s
- 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