Commit Graph

47 Commits

Author SHA1 Message Date
David
de4126a657 fix document 2026-01-17 15:47:03 +01:00
David
0a8e2043cc fix documents 2026-01-17 15:46:55 +01:00
David
0d814e9a94 fix 2026-01-16 15:44:16 +01:00
David
d9868dd49f fix: prevent password fields from being pre-filled in profile page
All checks were successful
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 2m42s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 27m20s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 1s
CI/CD Pipeline / Deploy to Portainer (push) Successful in 12s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 2s
Fixed issue where password form fields (especially "New Password")
were being pre-filled with values, either from browser autocomplete
or residual form state.

Changes:
1. Added explicit empty defaultValues to password form
   - currentPassword: ''
   - newPassword: ''
   - confirmPassword: ''

2. Added autoComplete attributes to prevent browser pre-fill:
   - currentPassword: autoComplete="current-password"
   - newPassword: autoComplete="new-password"
   - confirmPassword: autoComplete="new-password"

3. Added useEffect to reset password form when switching tabs:
   - Ensures clean state when navigating to "Change Password" tab
   - Prevents stale values from persisting

4. Explicit reset values on successful password change:
   - Previously used passwordForm.reset() without values
   - Now explicitly sets all fields to empty strings

This ensures password fields are always empty and never pre-filled
by the browser or by residual form state.

Refs: apps/frontend/app/dashboard/profile/page.tsx:64-70,85-95

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 18:24:13 +01:00
David
2054e73e78 fix: resolve profile page data persistence and password change issues
Fixed critical issues with the profile page (/dashboard/profile):

1. **Form data not persisting on page refresh**:
   - Added useEffect to update form values when user data loads
   - Forms now properly populate after auth context loads user data

2. **Blank page on refresh**:
   - Added loading and error states for better UX
   - Handle case where user is not loaded yet (loading spinner)
   - Handle case where user fails to load (retry button)

3. **Password change API endpoint correction**:
   - Fixed: POST /api/v1/users/change-password (incorrect)
   - Corrected to: PATCH /api/v1/users/me/password (matches backend)
   - Updated return type to include { message: string }

The root cause was that useForm defaultValues were set once at
component mount when user was still null. The form never updated
when user data was subsequently loaded by the auth context.

Now the form properly resets with user data via useEffect, and
proper loading/error states prevent showing a blank page.

Refs: apps/frontend/app/dashboard/profile/page.tsx:68-78

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 18:18:04 +01:00
David
905a56888a fix: implement password change functionality in profile page
Fix password change feature that was previously non-functional:
- Add changePassword function in frontend API (src/lib/api/users.ts)
- Update API endpoint to match backend: PATCH /api/v1/users/me/password
- Connect profile page to real API instead of mock implementation
- Export changePassword function from API index

The backend endpoint was already implemented but frontend was using
a placeholder Promise.resolve(). Now properly calls the backend API.

Refs: apps/frontend/app/dashboard/profile/page.tsx:87-105

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 17:56:10 +01:00
David
4ce7d2ec07 fix icon
All checks were successful
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 2m16s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 26m44s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 1s
CI/CD Pipeline / Deploy to Portainer (push) Successful in 12s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 1s
2025-12-23 19:14:13 +01:00
David
13857628bb feat: add theme-adaptive favicon
- Replace full logo (1875x1699) with simplified icon (512x512) optimized for favicon display
- Implement CSS media queries for automatic theme adaptation:
  * Dark mode: white X (#FFFFFF) with cyan dot (#34CCCD)
  * Light mode: dark blue X and dot (#1D3865)
- Remove old logo files (xpeditis-icon.svg, xpeditis-logo.svg)
- Simplified design with clean X shape and accent dot for better visibility at small sizes

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 13:43:31 +01:00
David
5878b63a0a chore: update favicon to use full Xpeditis logo
Replace the icon with the full Xpeditis logo (logo-black.svg) as requested.
Updated references in:
- app/icon.svg (favicon)
- app/layout.tsx (metadata and social cards)
- public/manifest.json (PWA icon)

Note: The full logo (1875x1699px) will be scaled down in browser tabs.
Consider creating a square optimized version for better display in small sizes.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 13:34:19 +01:00
David
e1aeb9ccd7 feat: add Xpeditis logo as favicon and improve metadata
Add site favicon and enhance metadata for better SEO and social sharing:
- Added app/icon.svg from existing logo for browser tab icon
- Enhanced metadata with Open Graph and Twitter card support
- Created manifest.json for PWA support
- Added metadataBase for proper social image resolution
- Updated .env.example with NEXT_PUBLIC_APP_URL

The Xpeditis logo (blue background with cyan X) now appears in:
- Browser tabs (favicon)
- Bookmarks
- Mobile home screen (PWA)
- Social media shares (Open Graph)

Configuration for different environments:
- Dev: NEXT_PUBLIC_APP_URL=http://localhost:3000
- Preprod: NEXT_PUBLIC_APP_URL=https://app.preprod.xpeditis.com
- Prod: NEXT_PUBLIC_APP_URL=https://xpeditis.com

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 13:29:45 +01:00
David
618b3064c3 fix: use environment variable for API URL in carrier accept/reject pages
Replace hardcoded localhost:4000 URLs with NEXT_PUBLIC_API_URL environment variable
in carrier portal pages to support different environments (dev/staging/production).

Pages updated:
- app/carrier/accept/[token]/page.tsx
- app/carrier/reject/[token]/page.tsx

This fixes the issue where preprod environment (app.preprod.xpeditis.com) was calling
localhost:4000 instead of the correct API endpoint (api.preprod.xpeditis.com).

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 13:04:29 +01:00
David
a1e255e816 fix v1.0.0
Some checks failed
CI/CD Pipeline / Discord Notification (Failure) (push) Blocked by required conditions
CI/CD Pipeline / Integration Tests (push) Blocked by required conditions
CI/CD Pipeline / Deployment Summary (push) Blocked by required conditions
CI/CD Pipeline / Deploy to Portainer (push) Blocked by required conditions
CI/CD Pipeline / Discord Notification (Success) (push) Blocked by required conditions
CI/CD Pipeline / Backend - Build, Test & Push (push) Failing after 1m20s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Has been cancelled
2025-12-23 11:49:57 +01:00
David
21d7044a61 fix notifications 2025-12-22 12:32:32 +01:00
David
7748a49def fix 2025-12-18 16:56:35 +01:00
David
840ad49dcb fix bookings 2025-12-18 15:33:55 +01:00
David
bd81749c4a fix notifications 2025-12-16 14:15:06 +01:00
David
a8e6ded810 fix dasboard 2025-12-16 13:41:32 +01:00
David
eab3d6f612 feature dashboard 2025-12-16 00:26:03 +01:00
David
71541c79e7 fix pagination 2025-12-15 17:14:56 +01:00
David
49b02face6 fix booking validate 2025-12-15 15:03:59 +01:00
David
faf1207300 feature fix branch 2025-12-12 10:31:49 +01:00
David
4279cd291d feature 2025-12-11 15:04:52 +01:00
David
54e7a42601 fix email send 2025-12-05 13:55:40 +01:00
David
55e44ab21c fix carte 2025-12-03 22:24:48 +01:00
David
7fc43444a9 fix search 2025-12-03 21:39:50 +01:00
David
a27b1d6cfa fix search booking 2025-11-30 23:27:22 +01:00
David
2da0f0210d fix organisation 2025-11-30 18:58:12 +01:00
David
c76f908d5c fix error get organisation 2025-11-30 18:39:08 +01:00
David
1a92228af5 contexte user reparer 2025-11-30 17:50:05 +01:00
David
cf029b1be4 fix users deleted and actived desactived 2025-11-30 17:36:34 +01:00
David
591213aaf7 layout access admin and manager 2025-11-30 13:48:04 +01:00
David
cca6eda9d3 send invitations 2025-11-30 13:39:32 +01:00
David
a34c850e67 fix register 2025-11-29 12:50:02 +01:00
David
b2f5d9968d fix: repair user management CRUD operations (create, update, delete)
Problems Fixed:

1. **User Creation (Invite)**
   -  Missing password field (required by API)
   -  Hardcoded organizationId 'default-org-id'
   -  Wrong role format (lowercase instead of ADMIN/USER/MANAGER)
   -  Now uses currentUser.organizationId from auth context
   -  Added password field with validation (min 8 chars)
   -  Fixed role enum to match backend (ADMIN, USER, MANAGER, VIEWER)

2. **Role Change (PATCH)**
   -  Used 'as any' masking type errors
   -  Lowercase role values
   -  Proper typing with uppercase roles
   -  Added success/error feedback
   -  Disabled state during mutation

3. **Toggle Active (PATCH)**
   -  Was working but added better feedback
   -  Added disabled state during mutation

4. **Delete User (DELETE)**
   -  Was working but added better feedback
   -  Added disabled state during mutation

5. **UI Improvements**
   - Added success messages with auto-dismiss (3s)
   - Added error messages with auto-dismiss (5s)
   - Added loading states on all action buttons
   - Fixed role badge colors to use uppercase keys
   - Better form validation before API call

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 23:35:10 +01:00
David
27caca0734 feat: add CSV rates CRUD management to frontend dashboard
Some checks failed
CI/CD Pipeline / Backend - Build, Test & Push (push) Failing after 1m38s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 25m29s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
Added comprehensive CSV rates management interface to the frontend dashboard with full CRUD operations.

## Backend Changes
- Added `GET /api/v1/admin/csv-rates/files` endpoint to list all uploaded CSV files with metadata
- Added `DELETE /api/v1/admin/csv-rates/files/:filename` endpoint to delete CSV files and their configurations
- Both endpoints provide frontend-compatible responses with file info (filename, size, rowCount, uploadedAt)
- File deletion includes both filesystem cleanup and database configuration removal

## Frontend Changes
- Added "CSV Rates" navigation item to dashboard sidebar (ADMIN only)
- Moved CSV rates page from `/app/admin/csv-rates` to `/app/dashboard/admin/csv-rates` for proper dashboard integration
- Updated CsvUpload component to include required `companyEmail` field
- Component now properly validates and sends all required fields (companyName, companyEmail, file)
- Enhanced form validation with email input type

## Features
-  Upload CSV rate files with company name and email
-  List all uploaded CSV files with metadata (filename, size, row count, upload date)
-  Delete CSV files with confirmation dialog
-  Real-time file validation (format, size limit 10MB)
-  Auto-refresh after successful operations
-  ADMIN role-based access control
-  Integrated into dashboard navigation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 19:11:37 +01:00
David
e6b9b42f6c fix
Some checks failed
CI/CD Pipeline - Xpeditis PreProd / Backend - Build & Test (push) Failing after 5m51s
CI/CD Pipeline - Xpeditis PreProd / Backend - Docker Build & Push (push) Has been skipped
CI/CD Pipeline - Xpeditis PreProd / Frontend - Build & Test (push) Successful in 10m57s
CI/CD Pipeline - Xpeditis PreProd / Frontend - Docker Build & Push (push) Failing after 12m28s
CI/CD Pipeline - Xpeditis PreProd / Deploy to PreProd Server (push) Has been skipped
CI/CD Pipeline - Xpeditis PreProd / Run Smoke Tests (push) Has been skipped
2025-11-13 00:15:45 +01:00
David
890bc189ee fix v0.2
Some checks failed
CI/CD Pipeline - Xpeditis PreProd / Frontend - Build & Test (push) Failing after 5m31s
CI/CD Pipeline - Xpeditis PreProd / Frontend - Docker Build & Push (push) Has been skipped
CI/CD Pipeline - Xpeditis PreProd / Backend - Build & Test (push) Failing after 5m42s
CI/CD Pipeline - Xpeditis PreProd / Backend - Docker Build & Push (push) Has been skipped
CI/CD Pipeline - Xpeditis PreProd / Deploy to PreProd Server (push) Has been skipped
CI/CD Pipeline - Xpeditis PreProd / Run Smoke Tests (push) Has been skipped
2025-11-12 18:00:33 +01:00
David
a9bbbede4a fix auth reload 2025-11-05 22:49:25 +01:00
David
0ac5b589e8 add page organisation 2025-11-04 23:19:25 +01:00
David
b9f506cac8 fix layout 2025-11-04 23:12:37 +01:00
David
15766af3b5 feature search 2025-11-04 22:52:42 +01:00
David
2069cfb69d feature 2025-11-04 07:30:15 +01:00
David
c2df25a169 fix landing page , login , register 2025-10-31 12:38:05 +01:00
David
56dbf01a2b fix auth 2025-10-21 22:00:54 +02:00
David-Henri ARNAUD
07258e5adb feature phase 3 2025-10-13 13:58:39 +02:00
David-Henri ARNAUD
b31d325646 feature phase 2 2025-10-10 15:07:05 +02:00
David-Henri ARNAUD
e863399bb2 first commit
Some checks failed
CI / Lint & Format Check (push) Failing after 1m11s
CI / Test Backend (push) Failing after 1m32s
CI / Build Backend (push) Has been skipped
Security Audit / npm audit (push) Failing after 5s
Security Audit / Dependency Review (push) Has been skipped
CI / Test Frontend (push) Failing after 29s
CI / Build Frontend (push) Has been skipped
2025-10-07 18:39:32 +02:00