Commit Graph

425 Commits

Author SHA1 Message Date
Matthieu 5057ef45c8 feat(frontend) : filter archived tasks and groups from kanban view
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:04:15 +01:00
Matthieu c097849dad feat(frontend) : add archive/unarchive buttons and delete confirmation to TaskDrawer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:03:27 +01:00
Matthieu 7fe434fa07 feat(frontend) : create ConfirmDeleteTaskModal component
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:01:55 +01:00
Matthieu 4e391e2f57 feat(frontend) : add archiving i18n translations
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:01:19 +01:00
Matthieu 84c85b3322 feat(frontend) : add getByProjectArchived to task service
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:00:31 +01:00
Matthieu 91ffb82e44 feat(frontend) : add isFinal and archived fields to DTOs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:59:45 +01:00
Matthieu 96a9f988c4 feat(backend) : set isFinal on Terminé status in fixtures
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:58:55 +01:00
Matthieu 2c2ca0a8b6 feat(backend) : add migration for isFinal, archived fields
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:58:20 +01:00
Matthieu e98d952871 feat(backend) : add archived field to TaskGroup entity
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:52:54 +01:00
Matthieu 8503111a4b feat(backend) : add archived field to Task entity
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:51:59 +01:00
Matthieu 6801dae0f2 feat(backend) : add isFinal field to TaskStatus entity
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:51:14 +01:00
Matthieu 73d0c7b4fa docs : add task archiving implementation plan
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:43:21 +01:00
Matthieu b76fd589cc docs : update archiving spec with edge cases and implementation details
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:33:29 +01:00
Matthieu 20a5dca6d5 docs : add task archiving feature design spec
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:31:20 +01:00
Matthieu 60b5aad0a4 feat(frontend) : allow multiple type selection in time entry drawer and remove group creation from kanban
Replace single-select dropdown with multi-select colored badges for types in TimeEntryDrawer, matching TaskDrawer pattern. Remove the "Ajouter un groupe" button and associated code from the kanban page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:14:25 +01:00
Matthieu 3e6f4ecc7a fix(frontend) : fix z-index overlay hiding drawers and add pathPrefix config
Lower the white overlay div from z-50 to z-30 so it still masks scrolling
content but no longer covers drawers/modals teleported to body.
Add components pathPrefix: false to resolve auto-imported components
without folder prefix.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:12:48 +01:00
Matthieu dac493b76d refactor(frontend) : remove per-project statuses page and sidebar link 2026-03-12 11:52:30 +01:00
Matthieu 37a6cb5558 refactor(frontend) : load global statuses in kanban page 2026-03-12 11:52:15 +01:00
Matthieu cf84883530 feat(admin) : add statuts tab to admin page 2026-03-12 11:52:07 +01:00
Matthieu ae8654d9ca feat(admin) : add task reassignment logic to AdminStatusTab 2026-03-12 11:51:15 +01:00
Matthieu 9d5008a21d refactor(frontend) : remove projectId from TaskStatusDrawer 2026-03-12 11:50:07 +01:00
Matthieu cbe3408b72 refactor(frontend) : remove project from TaskStatus DTO and service 2026-03-12 11:49:56 +01:00
Matthieu 16c9b845a6 fix(fixtures) : create global statuses instead of per-project 2026-03-12 11:49:03 +01:00
Matthieu df29214509 feat(backend) : add migration to remove project_id from task_status 2026-03-12 11:48:43 +01:00
Matthieu 5b8b4716df refactor(backend) : remove project relationship from TaskStatus entity 2026-03-12 11:47:53 +01:00
Matthieu f06842729d refactor(frontend) : remove clients sidebar link 2026-03-12 11:46:51 +01:00
Matthieu 1f74509475 feat(admin) : move clients into admin page, remove standalone page 2026-03-12 11:46:43 +01:00
Matthieu 0bf01cfb27 feat(admin) : add AdminClientTab component 2026-03-12 11:46:19 +01:00
Matthieu 2ffdaafd08 style(frontend) : update timer and delete action colors 2026-03-11 18:05:45 +01:00
Matthieu 33f2bcc393 fix(time-tracking) : keep calendar header sticky below page header 2026-03-11 18:04:57 +01:00
Matthieu f9d4de3e33 style(frontend) : apply UI corrections from design review
- Page titles in blue primary (#222783)
- Double main content margins (px-16 py-24)
- Remove blue border above sidebar timer
- Remove project color dot, use project color on title text
- All delete buttons/icons orange (#E2953C)
- Fix collapsed sidebar logo (object-cover object-left)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 11:16:50 +01:00
matthieu c886506791 fix(time-tracking) : return empty collection instead of 404 for active timer endpoint
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 00:00:33 +01:00
matthieu 1efa0fa9ca refactor(frontend) : reorganize components into subdirectories and fix imports
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:59:24 +01:00
matthieu d28f385918 docs(claude) : update project structure and add missing commands
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:53:53 +01:00
matthieu ae3eeed7d9 refactor(time-tracking) : use MalioSelect for filters and drawer, improve calendar cards
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:47:49 +01:00
matthieu 7ee1be63b3 feat(time-tracking) : show real-time timer in browser tab title
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:30:10 +01:00
matthieu c15a10b36f feat(time-tracking) : add list view for time entries
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:29:58 +01:00
matthieu 049275fd96 feat(time-tracking) : add calendar overlap columns, responsive cards, project filter, and auto-scroll
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:20:07 +01:00
matthieu a9ba2f3815 feat(time-tracking) : improve TimeEntryDrawer with date/time fields, duration label, and delete
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:20:02 +01:00
matthieu 7484ce3e45 feat(time-tracking) : add pending complete entry flow and redesign sidebar timer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:19:58 +01:00
matthieu d4c5660ba6 feat(tasks) : add delete button to TaskDrawer and toggle timer from TaskCard
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:19:53 +01:00
matthieu 576922200c fix(backend) : fix TimeEntry API route order and config reference typo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:19:41 +01:00
matthieu 74116506db feat(time-tracking) : add calendar page, timer sidebar, and all UI components
- SidebarTimer widget with play/stop button
- TimeEntryBlock with drag-to-move and resize
- TimeEntryDrawer for create/edit entries
- TimeEntryContextMenu for copy/paste/delete
- TimeTrackingCalendar grid with week/day view
- Time tracking page with filters and navigation
- Sidebar link and timer integration in layout
- TaskCard play button connected to timer store

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 22:22:48 +01:00
matthieu cf021d6136 feat(time-tracking) : add TimeEntry DTO, service, timer store, and i18n keys
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 22:22:40 +01:00
matthieu 1e07eb1d64 feat(time-tracking) : add ActiveTimeEntryProvider, fixtures, and serialization groups
- ActiveTimeEntryProvider returns active timer for current user
- TimeEntry fixtures with 10 sample entries for the SIRH project
- Add time_entry:read group to Project, User, and TaskType for embedded serialization

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 22:22:34 +01:00
matthieu fa0adfde88 refactor(frontend) : extract reusable DataTable component from repeated table markup
Replace inline table HTML in 8 files with a shared DataTable component
supporting columns definition, scoped slots for custom cells, and
built-in delete action.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 22:19:25 +01:00
matthieu e9ca888971 feat(time-tracking) : add TimeEntry entity and migration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 22:10:27 +01:00
matthieu 2299d66a9f docs : add time tracking implementation plan
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 22:05:46 +01:00
matthieu 66bb94fc98 feat(backend) : add project relation to TaskStatus entity with migration and fixtures
Add ManyToOne project field on TaskStatus, SearchFilter for API filtering,
migration to add the column, and update fixtures to create statuses per project.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:58:41 +01:00
matthieu 50ae9ef549 feat(projects) : add per-project task statuses and split project detail into sub-pages
Move project detail from [id].vue to [id]/ directory with Kanban, Groups
and Statuses sub-pages. Add project filter on task statuses service and
drawer. Remove global statuses tab from admin.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:58:35 +01:00