- Removed all notification bell buttons from admin, board, and member layouts
- Removed notification menu items from profile dropdowns across all layouts
- Removed terminal/console button and command palette from admin dashboard
- Removed non-existent admin navigation links that were causing 404 errors:
- Roles & Permissions, Import/Export Members, Stripe Dashboard
- Financial Reports, Email/Security Settings, System Logs
- Backup & Restore, Analytics & Insights, Admin Profile
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Sort dues management cards alphabetically by last name
- Change 'Invalid Date' display to 'N/A' in formatDate functions
- Add new refined member management view with modern UI design
- Glassmorphism effects and gradient accents
- Enhanced stat cards with progress indicators
- Improved search and filter interface
- Better card and table layouts
- Smooth animations and transitions
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Added background-color: #fafafa to v-app element in both layouts
- Added solid background-color fallback to .glass-main class before gradients
- Ensures Edge and other browsers show light background even without gradient support
- Fixes transparent rgba gradient rendering issues in Edge
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added background-color fallback for browsers without gradient support
- Split background property for better cross-browser compatibility
- Ensures Edge and other browsers display light background correctly
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added board-dashboard class wrapper to Board pages (Governance, Meetings, Members)
- Added member-dashboard class wrapper to Member pages (Events, Profile, Resources)
- All pages now properly display the light gradient background matching admin dashboard
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed to display actual member_id field value
- Show 'Pending' when member_id is not set instead of generating MUSA-ID format
- Ensures consistency with actual database member IDs
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Added proper background color (#f5f5f5) to admin dashboard
- Set min-height to ensure full viewport coverage
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Added profile picture between welcome message and title
- Removed Events and Members boxes from dashboard
- Added distinct borders and icon to Dues Management card
- Moved hamburger menu to the right side of app bar
- Removed notification bell icon from app bar
- Enhanced profile card appearance in sidebar with gradient background
- Fixed Mark as Paid button alignment to be inline with other action buttons
- Added support for displaying multiple nationality flags in dues cards
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Create MultipleCountryFlags component to display multiple country flags
- Support comma-separated nationality values (e.g., 'FR,MC,US')
- Update admin members page to use MultipleCountryFlags in both list and grid views
- Update board members page to display nationalities with flags
- Add nationality column to board members table
- Update member forms to support multiple nationality selection
- Display flags with slight overlap for space efficiency, expand on hover
- Maintain backward compatibility with single nationality values
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>
The ViewMemberDialog component was importing 'countries' (lowercase) but the file only exported 'COUNTRIES' (uppercase). Added an export alias to maintain backward compatibility.
- Add dual view modes (list and grid) with toggle functionality
- Enhance list view with profile avatars, nationality flags, and dues status
- Implement responsive grid view with member cards
- Add inline 'Mark as Paid' functionality in both views
- Redesign ViewMemberDialog with modern hero header and tabbed interface
- Add payment history, activity timeline, and notes management tabs
- Integrate profile avatars throughout the application
- Make all member entries clickable to open detailed modal
- Clean up console.log statements and remove unused code
- Improve overall design consistency with glass morphism effects
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated imports to use new design-system-v2.scss
- Fixed build error caused by deleted design-mockups directory
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Created new design-system-v2.scss with modern design tokens
- Enhanced Vuetify theme configuration with refined colors
- Added professional dashboard styles component
- Improved typography, spacing, and visual hierarchy
- Implemented glass morphism effects with better contrast
- Added smooth animations and micro-interactions
- Improved responsive design for mobile devices
- Enhanced stat cards, data tables, and navigation
- Fixed color contrast issues identified in audit
- Added professional gradients and shadows
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed board dashboard from 'dashboard' layout to 'board' layout
- This fixes the missing hamburger menu and sidebar toggle functionality
- Removed debug console.log statements from board layout
- Board dashboard now has same sidebar behavior as admin and member dashboards
The issue was that board/dashboard/index.vue was using the old 'dashboard'
layout instead of the proper 'board' layout that has rail mode support.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added debug logging to track toggleDrawer function calls
- Added explicit CSS to ensure hamburger button is visible
- Added mounted hook logging to verify initial state
- Ensured button has proper z-index and display properties
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Removed CSS that was hiding all hamburger menu buttons
- This was preventing the sidebar toggle button from appearing
- Now all dashboards (admin, board, member) have working toggle buttons
- Board dashboard now has same functionality as admin and member views
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Increased collapsed sidebar width from 80px to 100px for better icon visibility
- Updated rail-width prop to 100 in all three layouts (admin, board, member)
- Fixed profile section avatar sizing - now uses size 32 in collapsed mode
- Simplified menu button to always show vertical dots icon
- Improved spacing and alignment in profile section for both states
- Removed conditional button variants for cleaner, consistent design
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added collapsed mode icons for Members and Events sections
- Members and Events groups now show as single icons with tooltips when sidebar is collapsed
- Maintains badge for pending applications in collapsed mode
- Ensures consistent navigation experience across all dashboard layouts
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Increased rail mode width from 56px to 80px to properly fit icons
- Updated rail-width prop in all three layout files (admin, board, member)
- Redesigned profile section with improved layout and positioning
- Added horizontal layout in expanded mode with avatar, info, and menu button
- Implemented responsive design that switches to vertical layout in collapsed mode
- Enhanced menu with colorful icons and hover effects
- Added role badges (Admin, Board, Member) for better visual identification
- Improved glass morphism effects on profile card and menu
- Added smooth transitions and hover animations
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Modified main.scss to respect Vuetify 3 rail mode
- Removed !important width overrides that blocked collapse
- Added conditional CSS: 280px when expanded, 56px when in rail mode
- Sidebar now properly collapses/expands when toggle button is clicked
- Preserves glass morphism effects and smooth transitions
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed from fixed width to dynamic width based on miniVariant state
- Replaced v-show with v-if for list groups to properly hide when collapsed
- Added proper template conditionals for logo section
- Added tooltips for all single navigation items when in rail mode
- Fixed badge display to use dot when collapsed
- Ensured proper title binding with undefined when collapsed
This fixes the sidebar collapse issue across admin, board, and member layouts.
- Removed 'app' prop from v-navigation-drawer in all layouts
- Removed 'app' prop from v-app-bar in all layouts
- The 'app' prop is deprecated in Vuetify 3 and was preventing rail mode
- This was the root cause of sidebar not collapsing
Vuetify 3 automatically handles layout participation without the app prop.
The presence of this deprecated prop was causing Vuetify to ignore the
rail prop entirely, preventing the sidebar from collapsing.
- Remove manual width control that was conflicting with rail prop
- Use fixed width and rail-width props for proper Vuetify 3 behavior
- Simplify toggleDrawer function to just toggle miniVariant
- Add v-show directive to hide list groups in rail mode
- Applied fixes to admin.vue, member.vue, and board.vue layouts
The sidebar now properly collapses to 56px rail mode showing only icons,
and expands to 280px full width showing complete navigation items.
- Replace deprecated createUserWithRoleRegistration with createUserWithGroupAssignment
- Update comments to reflect group-based system instead of role-based
- Resolves registration error when creating new users
- Change from :mini-variant to :rail for Vue 3/Vuetify 3 compatibility
- Fix width prop to use numbers instead of strings
- Add missing loading ref in board members page
- Ensure consistent collapse behavior across admin, member, and board layouts
- Updated member-list.vue to sort by last name with new sort options
- Changed default sort to lastname-asc
- Added Last Name and First Name sort options in dropdown
- Updated board/members/index.vue to include name field and sort by last name
- Updated admin/members/index.vue to include name field and sort by last name
- All member lists now consistently sort alphabetically by last name
- Added three-state sidebar (closed, mini, full) across all layouts
- Positioned collapse toggle button in app bar
- Made logo and text responsive to collapsed state
- Added proper tooltips for mini mode navigation
- Consistent implementation across board, admin, and member portals
- 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>
- 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>
- Replace all hardcoded avatars with ProfileAvatar component
- Update admin and board layouts to use ProfileAvatar
- Update DuesActionCard and DuesOverdueBanner components
- Update admin users list to use ProfileAvatar
- Ensure consistent display of profile pictures with initials fallback
- All avatars now show either user's profile picture or initials
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added browser compatibility fallbacks with @supports for backdrop-filter
- Fixed SCSS syntax errors with mixins and !important
- Added global production overrides for glass morphism effects
- Enhanced Bento grid implementation with proper specificity
- Improved mobile responsiveness for small screens
- Added fallback colors for browsers without backdrop-filter support
- Fixed inset property for wider browser compatibility
- Ensured sidebar fixed width and removed hamburger menus globally
- Added animation classes and keyframes globally
- Removed rotate(5deg) from icon buttons hover state
- Removed rotate(5deg) from FAB buttons hover state
- Removed icon-hover-rotate mixin from nav items
- Keep scale animations but remove tilt/rotation effects
Buttons now scale without rotating for cleaner interaction
- Fixed v-col and v-row closing tag mismatches in board dashboard
- Added missing SCSS import for enhanced-glass mixin in admin dashboard
- Verified build passes successfully with all changes
- Comprehensive audit completed to prevent future syntax errors
All Vue templates now properly structured with correct closing tags
Build tested locally and passes without errors
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Enhanced member dashboard with glass morphism effects (30px blur)
- Implemented Bento grid layout on member dashboard
- Added comprehensive animation system:
- Shimmer animations for logos and badges
- Pulse animations for notifications
- Float animations for dashboard elements
- Modal enter/leave transitions
- Applied glass effects to all form inputs with floating labels
- Created glass morphism styles for dialogs and modals
- Standardized all buttons with Monaco gradient styles
- Added hover effects and animations throughout
- Established consistent design patterns across all dashboards
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implemented enhanced glass morphism effects with 30px blur
- Added Bento grid layout system (12-column grid)
- Created gradient text effects for dashboard titles
- Added animated entrance effects for all cards
- Implemented stat cards with gradient values
- Added responsive breakpoints for mobile/tablet
- Unified button styles with hover animations
- Removed basic elevation cards in favor of glass cards
- Removed hamburger menu buttons from all layouts (member, admin, board, dashboard)
- Updated all sidebars to fixed 280px width (non-collapsible)
- Enhanced glass morphism effects with 30px blur
- Implemented vertical profile card with small avatar
- Added consistent animations and hover effects
- Updated design documentation with new specifications
- Reduced avatar size from 'large' to 'small' for better proportions
- Made menu button extra small and moved it inside profile-content
- Positioned menu button absolutely in top-right of content area
- Reduced online indicator size to match smaller avatar
- Added subtle opacity to menu button (visible on hover)
- Improved overall visual balance of profile card
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Made profile card taller with min-height of 180px
- Stacked profile image above name and email vertically
- Centered profile content for better visual balance
- Increased profile avatar size to 'large' for better visibility
- Moved menu button to absolute position in top-right corner
- Adjusted font sizes slightly for better readability
- Fixed text overflow with proper ellipsis
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Removed all collapse/expand functionality from sidebar
- Removed collapse button and chevron icons
- Removed isCollapsed state and toggle logic
- Removed all CSS related to collapsed states
- Simplified navigation items without tooltips
- Fixed sidebar at 280px width permanently
- Cleaned up profile footer without conditional rendering
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>