From 7446b7dca93abd15b4f6a51f0dcaa54a4c4ee93b Mon Sep 17 00:00:00 2001 From: Matthieu Date: Sat, 20 Jun 2026 17:06:13 +0200 Subject: [PATCH] feat(project-management) : extract Projects/Tasks front into Nuxt module layer Tranche 4 of LST-65. Companion to the backend module migration. - Move pages (my-tasks, projects, projects/[id]/{index,groups,archives}), 18 components (project + task), 10 services and 10 DTOs into frontend/modules/project-management/ (auto-detected layer). - Rewrite explicit ~/services/* and ~/services/dto/* imports across 38 consumers (admin tabs, mail modals, dashboard, mail page, layout) including the time-tracking module whose DTOs referenced project/task/task-tag. - clients.ts and shared DTOs (client, user-data) stay at the root. - Routes /my-tasks, /projects, /projects/:id(/groups|/archives) preserved; i18n stays global. nuxt build passes; routes confirmed. --- frontend/app/layouts/default.vue | 4 +-- frontend/components/admin/AdminEffortTab.vue | 4 +-- .../components/admin/AdminPriorityTab.vue | 4 +-- frontend/components/admin/AdminTagTab.vue | 4 +-- .../components/admin/AdminWorkflowTab.vue | 4 +-- frontend/components/admin/WorkflowDrawer.vue | 10 +++--- .../components/mail/MailCreateTaskModal.vue | 10 +++--- .../components/mail/MailLinkTaskModal.vue | 8 ++--- .../components}/ProjectDrawer.vue | 4 +-- .../components}/ProjectGroupTab.vue | 8 ++--- .../ProjectWorkflowSwitchModal.vue | 12 +++---- .../components}/StatusPickerPopover.vue | 2 +- .../components}/TaskBookStackLinks.vue | 0 .../components}/TaskBulkActions.vue | 12 +++---- .../components}/TaskCard.vue | 2 +- .../components}/TaskDocumentList.vue | 4 +-- .../components}/TaskDocumentPreview.vue | 4 +-- .../components}/TaskDocumentShareLinker.vue | 2 +- .../components}/TaskDocumentUpload.vue | 2 +- .../components}/TaskEffortDrawer.vue | 4 +-- .../components}/TaskGitSection.vue | 2 +- .../components}/TaskGroupDrawer.vue | 8 ++--- .../components}/TaskListItem.vue | 2 +- .../components}/TaskModal.vue | 22 ++++++------- .../components}/TaskPriorityDrawer.vue | 4 +-- .../components}/TaskTagDrawer.vue | 4 +-- .../modules/project-management/nuxt.config.ts | 1 + .../project-management}/pages/my-tasks.vue | 32 +++++++++---------- .../pages/projects/[id]/archives.vue | 26 +++++++-------- .../pages/projects/[id]/groups.vue | 4 +-- .../pages/projects/[id]/index.vue | 26 +++++++-------- .../pages/projects/index.vue | 4 +-- .../services/dto/project.ts | 2 +- .../services/dto/task-document.ts | 2 +- .../services/dto/task-effort.ts | 0 .../services/dto/task-group.ts | 0 .../services/dto/task-priority.ts | 0 .../services/dto/task-recurrence.ts | 0 .../services/dto/task-status.ts | 0 .../services/dto/task-tag.ts | 0 .../project-management}/services/dto/task.ts | 2 +- .../services/dto/workflow.ts | 0 .../project-management}/services/projects.ts | 0 .../services/task-documents.ts | 0 .../services/task-efforts.ts | 0 .../services/task-groups.ts | 0 .../services/task-priorities.ts | 0 .../services/task-recurrences.ts | 0 .../services/task-statuses.ts | 0 .../project-management}/services/task-tags.ts | 0 .../project-management}/services/tasks.ts | 0 .../project-management}/services/workflows.ts | 0 .../components/TimeEntryDrawer.vue | 4 +-- .../components/TimeTrackingExportDrawer.vue | 4 +-- .../time-tracking/pages/time-tracking.vue | 4 +-- .../time-tracking/services/dto/time-entry.ts | 6 ++-- .../modules/time-tracking/stores/timer.ts | 2 +- frontend/pages/index.vue | 16 +++++----- frontend/pages/mail.vue | 2 +- frontend/services/mail.ts | 2 +- 60 files changed, 143 insertions(+), 142 deletions(-) rename frontend/{components/project => modules/project-management/components}/ProjectDrawer.vue (98%) rename frontend/{components/project => modules/project-management/components}/ProjectGroupTab.vue (94%) rename frontend/{components/project => modules/project-management/components}/ProjectWorkflowSwitchModal.vue (94%) rename frontend/{components/task => modules/project-management/components}/StatusPickerPopover.vue (91%) rename frontend/{components/task => modules/project-management/components}/TaskBookStackLinks.vue (100%) rename frontend/{components/task => modules/project-management/components}/TaskBulkActions.vue (92%) rename frontend/{components/task => modules/project-management/components}/TaskCard.vue (98%) rename frontend/{components/task => modules/project-management/components}/TaskDocumentList.vue (95%) rename frontend/{components/task => modules/project-management/components}/TaskDocumentPreview.vue (97%) rename frontend/{components/task => modules/project-management/components}/TaskDocumentShareLinker.vue (98%) rename frontend/{components/task => modules/project-management/components}/TaskDocumentUpload.vue (97%) rename frontend/{components/task => modules/project-management/components}/TaskEffortDrawer.vue (91%) rename frontend/{components/task => modules/project-management/components}/TaskGitSection.vue (99%) rename frontend/{components/task => modules/project-management/components}/TaskGroupDrawer.vue (93%) rename frontend/{components/task => modules/project-management/components}/TaskListItem.vue (98%) rename frontend/{components/task => modules/project-management/components}/TaskModal.vue (98%) rename frontend/{components/task => modules/project-management/components}/TaskPriorityDrawer.vue (92%) rename frontend/{components/task => modules/project-management/components}/TaskTagDrawer.vue (93%) create mode 100644 frontend/modules/project-management/nuxt.config.ts rename frontend/{ => modules/project-management}/pages/my-tasks.vue (93%) rename frontend/{ => modules/project-management}/pages/projects/[id]/archives.vue (81%) rename frontend/{ => modules/project-management}/pages/projects/[id]/groups.vue (82%) rename frontend/{ => modules/project-management}/pages/projects/[id]/index.vue (93%) rename frontend/{ => modules/project-management}/pages/projects/index.vue (96%) rename frontend/{ => modules/project-management}/services/dto/project.ts (93%) rename frontend/{ => modules/project-management}/services/dto/task-document.ts (81%) rename frontend/{ => modules/project-management}/services/dto/task-effort.ts (100%) rename frontend/{ => modules/project-management}/services/dto/task-group.ts (100%) rename frontend/{ => modules/project-management}/services/dto/task-priority.ts (100%) rename frontend/{ => modules/project-management}/services/dto/task-recurrence.ts (100%) rename frontend/{ => modules/project-management}/services/dto/task-status.ts (100%) rename frontend/{ => modules/project-management}/services/dto/task-tag.ts (100%) rename frontend/{ => modules/project-management}/services/dto/task.ts (96%) rename frontend/{ => modules/project-management}/services/dto/workflow.ts (100%) rename frontend/{ => modules/project-management}/services/projects.ts (100%) rename frontend/{ => modules/project-management}/services/task-documents.ts (100%) rename frontend/{ => modules/project-management}/services/task-efforts.ts (100%) rename frontend/{ => modules/project-management}/services/task-groups.ts (100%) rename frontend/{ => modules/project-management}/services/task-priorities.ts (100%) rename frontend/{ => modules/project-management}/services/task-recurrences.ts (100%) rename frontend/{ => modules/project-management}/services/task-statuses.ts (100%) rename frontend/{ => modules/project-management}/services/task-tags.ts (100%) rename frontend/{ => modules/project-management}/services/tasks.ts (100%) rename frontend/{ => modules/project-management}/services/workflows.ts (100%) diff --git a/frontend/app/layouts/default.vue b/frontend/app/layouts/default.vue index 9012026..7ae9da6 100644 --- a/frontend/app/layouts/default.vue +++ b/frontend/app/layouts/default.vue @@ -125,8 +125,8 @@