Commit Graph

227 Commits

Author SHA1 Message Date
c2a236b406 Merge dev into preprod: WAVE accessibility fixes 2025-12-06 00:29:07 +01:00
866911cbd4 fix(a11y): correct WAVE accessibility audit issues
- Footer: add label for newsletter email input, improve text contrast (beige-600 -> beige-700)
- Contact: add aria-label to map marker link, improve red asterisk contrast (red-500 -> red-600)
- Historique: add label for search input field
- Profil: improve label contrast (gray-600 -> gray-700), use semantic dl/dt/dd structure

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 00:20:37 +01:00
96622b9c4c fix: use BRANCH_NAME env var for proper branch detection in Jenkins
git rev-parse --abbrev-ref HEAD returns 'HEAD' in detached HEAD mode (Jenkins checkout).
Use BRANCH_NAME (Multibranch Pipeline) or GIT_BRANCH as fallback.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 16:27:42 +01:00
d4333ee300 chore: trigger preprod build 2025-12-05 15:48:53 +01:00
a99a48e32c Merge dev into preprod: GTM/GA4, security fixes, mobile improvements 2025-12-05 15:38:04 +01:00
a80d42271d fix: replace vulnerable email regex with safe helper function
- Use isValidEmail from helpers instead of inline regex
- Fixes SonarQube Security Hotspot for DoS via backtracking

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 14:44:51 +01:00
d192dad7e6 chore: trigger deployment
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 14:20:38 +01:00
33b9b05e2f fix: simplify mobile navigation
- Remove Inscription/Connexion buttons from hero on mobile
- Simplify Participer button on mobile menu (direct link instead of dropdown)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 14:08:17 +01:00
923334a92c chore: trigger pipeline after disk cleanup
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 13:52:39 +01:00
340aa93c4e fix: use beforeInteractive strategy for GTM and GA4
- Changed GTM script from afterInteractive to beforeInteractive
- Changed GA4 scripts to beforeInteractive for earlier loading
- Hardcoded IDs to avoid template literal issues

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 13:46:28 +01:00
8fc3851cf7 chore: trigger pipeline rebuild
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 13:42:03 +01:00
4dcc091b53 feat: add GTM + improve mobile hero section
- Added Google Tag Manager (GTM-WN8H6RTC) script and noscript
- Added padding-top on mobile hero to avoid header overlap
- Reduced subtitle text size on mobile for better readability
- Added Inscription/Connexion buttons on mobile for non-authenticated users

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 13:30:26 +01:00
e64de7c41a fix: improve hero section responsive design for mobile
- Reduced title sizes on mobile (text-3xl to text-7xl progressive)
- Reduced subtitle sizes on mobile (text-2xl to text-6xl progressive)
- Adjusted description text size for better mobile readability
- Reduced button padding and font size on mobile

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 13:07:41 +01:00
c5f0d6b14c fix: change Total Participations stat card to blue color
- Client page: Total Participations now uses blue-600/blue-100
- History page: Total stat card now uses blue-600/blue-100

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 12:32:42 +01:00
211355f6a4 fix: update stat cards to use primary colors instead of green/blue
- Changed Réclamés stat card on history page from green to primary
- Changed Réclamés filter button from green to primary
- Unified Gains réclamés on client page to use primary-600

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 12:15:33 +01:00
0efd921bbf feat: update client dashboard page with new color palette
- Replace hex colors with primary/secondary/beige Tailwind classes
- Update background gradient to use beige colors
- Update buttons to use primary green theme
- Update statistics cards with primary/secondary colors
- Update table headers and borders

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 11:59:08 +01:00
98b23fe12e feat: add active/inactive clients statistics to admin dashboard
- Add activeClients and inactiveClients to AdminStatistics type
- Add pie chart showing client status (active/inactive)
- Add detailed stats rows for active/inactive clients

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 11:49:06 +01:00
41313a2477 fix: update tests to match new color palette
- Update theme.test.ts to expect primary/secondary colors instead of blue/yellow/green
- Update PrizeCard.test.tsx to expect beige-300 and primary-500 border classes

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 11:27:40 +01:00
81a3e0bfae feat: update color palette to WCAG AA compliant green theme
- Update primary colors to forest green (#0B6029)
- Update all page titles to use primary-300/500 colors
- Update components (Header, Footer, Button, etc.)
- Fix email to thetiptopgr3@gmail.com
- Adjust hero section spacing

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 11:18:19 +01:00
646b3ecc02 refactor: extract SharedSidebar component to reduce code duplication
- Create SharedSidebar component in components/shared/
- Refactor admin Sidebar to use SharedSidebar
- Refactor employe layout to use SharedSidebar
- Reduces duplicated lines from 59.4% to ~0%

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 17:18:23 +01:00
d4c2252121 fix: secure email regex against ReDoS vulnerability
- Replace vulnerable regex with bounded quantifiers
- Add email length check (max 254 chars per RFC 5321)
- Fixes SonarQube security hotspot S5852

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 16:35:03 +01:00
47059a5129 chore: trigger preprod build 2025-12-04 01:43:30 +01:00
87022ae49b chore: trigger preprod pipeline 2025-12-04 01:09:10 +01:00
d0a765d7eb chore: trigger preprod build 2025-12-03 21:53:46 +01:00
bca26ec5e8 fix: redirect admin/employee from home page to dashboard 2025-12-03 21:31:39 +01:00
76e49559e0 perf: use cached user data for faster login redirect 2025-12-03 21:20:43 +01:00
29b4e27baa feat: update employee pages with admin-style design 2025-12-03 21:07:58 +01:00
e7fef17831 feat: redesign employee panel with blanc cassé theme
- Update employee layout with off-white sidebar and logo
- Add mobile responsive menu
- Simplify header with UserDropdown only
- Redesign verification page with admin-style design
- Change employee avatar to blue color
- Remove unused stats cards

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 20:44:44 +01:00
8d2012bb2c chore: trigger CI/CD build 2025-12-03 19:46:44 +01:00
f20cf40fff feat: redesign admin panel with blanc cassé theme
- Update sidebar and header with off-white (#faf8f5) background
- Add ticket stats endpoint integration for global counts
- Redesign tirages page with animation and improved layout
- Add red accent color for admin avatar
- Update various button styles and remove unnecessary elements

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 19:43:14 +01:00
aa1d8b1d66 feat: update admin dashboard - remove auto-refresh and export buttons
- Remove Auto-refresh toggle from header
- Remove Export CSV button
- Keep only Rafraîchir button

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 17:05:35 +01:00
04119b69cc feat: redesign admin dashboard with modern UI
- Add gradient header with dark blue theme
- Improve stat cards with gradient backgrounds and decorative circles
- Update period filter with modern button styling
- Improve city cards with gradient rank badges
- Better hover effects and transitions

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:57:10 +01:00
ea67bf4137 fix: convert string values to numbers in prize stats calculation
- Use Number() to ensure proper addition instead of string concatenation
- Fix stockRemaining calculation for individual prize cards

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:47:35 +01:00
13ee6b8831 fix: format numbers with locale separators in Lots & Prix
- Add toLocaleString('fr-FR') for all stats numbers
- Fix stock display formatting in prize cards

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:44:59 +01:00
055db16529 feat: improve design of Lots, Marketing & Tirages pages
PrizeManagement (Lots & Prix):
- Add stats cards (Total, Stock, Distribués, Taux)
- Modern card design with gradient headers per prize type
- Stock progress bars and better layout

Marketing Data:
- Improved stat cards with gradient backgrounds
- Modern chart containers with icon badges
- Enhanced export section with gradient header

Tirages:
- Improved existing draw alert with grid layout
- Modern participants table with avatars
- Enhanced draw result display with cards

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:41:28 +01:00
8823967782 feat: improve UserManagement and TicketManagement design
UserManagement:
- Add gradient search section with filters
- Add stats cards (Total, Clients, Employés, Admins)
- Improve table with avatars and better styling
- Modernize create/edit employee modals

TicketManagement:
- Add gradient filter section
- Add stats cards (Total, En attente, Réclamés, Rejetés)
- Improve table with ticket icons and user avatars
- Modernize ticket details modal

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:00:30 +01:00
b7b08b1961 feat: improve admin dashboard design and add new charts
- Add gradient backgrounds and modern styling to all admin pages
- Add Statut des Tickets donut chart
- Add Types d'Utilisateurs donut chart
- Update headers and card containers with consistent design

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 14:34:29 +01:00
c578b81645 feat: improve employee dashboard UI design
- Reorder sidebar: Dashboard first, then Validation des Tickets
- Add gradient backgrounds and modern card designs
- Replace emojis with SVG icons in statistics cards
- Add avatars with initials for client display
- Improve action cards with colored gradients (green, purple, slate)
- Style search sections with gradient backgrounds
- Add hover effects and transitions
- Remove value display from prize details (already in name)
- Improve filter buttons with gradient when active
- Add zebra striping and better table styling

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 14:13:08 +01:00
d60c03cb0e feat: add real-time email validation on registration
- Add CHECK_EMAIL endpoint to constants
- Check email availability on blur
- Show validation status (loading, valid, exists)
- Block submission if email already exists
- Display DNS MX validation result

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 21:16:34 +01:00
391fa7b8c2 chore: trigger build 2025-12-02 17:05:21 +01:00
ddffdbd0c6 fix: send confirmPassword in reset-password API call 2025-12-02 17:00:47 +01:00
c88bb7e8e8 config: add reCAPTCHA keys 2025-12-02 16:51:55 +01:00
9013551659 feat: add reCAPTCHA, reset-password, sort tickets, update dates
- Add reCAPTCHA v2 to registration form
- Add reset-password page for password recovery
- Fix forgot-password to call real API
- Sort employee pending tickets (most recent first)
- Update contest dates (validation: Dec 1-31, recovery: Dec 1 - Jan 31)
- Update draw date to Feb 1, 2026
- Improve GamePeriod and GrandPrize components design

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 16:35:19 +01:00
e0330d4f28 feat: add reset-password page and update contest dates
- Add reset-password page to handle password reset flow
- Fix forgot-password to call real API
- Update contest dates (validation: Dec 1-31, recovery: Dec 1 - Jan 31)
- Update draw date to Feb 1, 2026
- Improve GamePeriod and GrandPrize components design
- Remove "livré chez vous" text

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 16:15:30 +01:00
cc0c2e23ff fix: reorder stages - SonarQube (quality) before Tests
- SonarQube analysis runs first for code quality
- Tests run after for code validation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 00:58:35 +01:00
27965e4cc2 fix: run tests before SonarQube to share coverage report
- Tests now run sequentially before SonarQube (not in parallel)
- Coverage report is stashed and passed to SonarQube stage
- SonarQube will now see actual test coverage

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 00:50:05 +01:00
2e0beec338 feat: update homepage and login page UI
- Homepage: new title styling, centered hero section, animated button
- Homepage: removed countdown timer, added white background to sections
- Login page: moved social buttons below forgot password link

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 00:38:06 +01:00
e0d851eb67 revert: use same Jenkinsfile structure as backend
Align frontend pipeline structure with backend:
- Parallel execution of Lint & Tests and SonarQube
- Same stage naming and organization

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:41:34 +01:00
72bdd21743 fix: run SonarQube after tests to include coverage report
The tests and SonarQube were running in parallel in separate
Docker containers. This meant SonarQube never had access to
the coverage/lcov.info file generated by Jest.

Changes:
- Run Lint & Tests stage first
- Stash coverage report after tests
- Run SonarQube stage after, unstashing coverage
- Update pipeline documentation

This fix ensures SonarQube receives the actual test coverage data.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:30:44 +01:00
068b47ebe3 fix: add hooks, contexts, lib to jest coverage collection
The jest.config.js was missing hooks/, contexts/, and lib/
directories from collectCoverageFrom, causing 0% coverage
to be reported for these files in SonarQube.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:05:52 +01:00