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.
This commit is contained in:
Matthieu
2026-06-20 17:06:13 +02:00
parent c90d91d6c4
commit 7446b7dca9
60 changed files with 143 additions and 142 deletions
+2 -2
View File
@@ -125,8 +125,8 @@
<script setup lang="ts"> <script setup lang="ts">
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { TaskTag } from '~/services/dto/task-tag' import type { TaskTag } from '~/modules/project-management/services/dto/task-tag'
import { useAppVersion } from '~/composables/useAppVersion' import { useAppVersion } from '~/composables/useAppVersion'
import type { HydraCollection } from '~/utils/api' import type { HydraCollection } from '~/utils/api'
import { extractHydraMembers } from '~/utils/api' import { extractHydraMembers } from '~/utils/api'
+2 -2
View File
@@ -30,8 +30,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { TaskEffort } from '~/services/dto/task-effort' import type { TaskEffort } from '~/modules/project-management/services/dto/task-effort'
import { useTaskEffortService } from '~/services/task-efforts' import { useTaskEffortService } from '~/modules/project-management/services/task-efforts'
import type { DataTableColumn } from '~/components/ui/DataTable.vue' import type { DataTableColumn } from '~/components/ui/DataTable.vue'
@@ -37,8 +37,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { TaskPriority } from '~/services/dto/task-priority' import type { TaskPriority } from '~/modules/project-management/services/dto/task-priority'
import { useTaskPriorityService } from '~/services/task-priorities' import { useTaskPriorityService } from '~/modules/project-management/services/task-priorities'
import type { DataTableColumn } from '~/components/ui/DataTable.vue' import type { DataTableColumn } from '~/components/ui/DataTable.vue'
+2 -2
View File
@@ -37,8 +37,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { TaskTag } from '~/services/dto/task-tag' import type { TaskTag } from '~/modules/project-management/services/dto/task-tag'
import { useTaskTagService } from '~/services/task-tags' import { useTaskTagService } from '~/modules/project-management/services/task-tags'
import type { DataTableColumn } from '~/components/ui/DataTable.vue' import type { DataTableColumn } from '~/components/ui/DataTable.vue'
@@ -42,8 +42,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Workflow } from '~/services/dto/workflow' import type { Workflow } from '~/modules/project-management/services/dto/workflow'
import { useWorkflowService } from '~/services/workflows' import { useWorkflowService } from '~/modules/project-management/services/workflows'
import type { DataTableColumn } from '~/components/ui/DataTable.vue' import type { DataTableColumn } from '~/components/ui/DataTable.vue'
const { t } = useI18n() const { t } = useI18n()
+5 -5
View File
@@ -96,11 +96,11 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Workflow, StatusCategory } from '~/services/dto/workflow' import type { Workflow, StatusCategory } from '~/modules/project-management/services/dto/workflow'
import { STATUS_CATEGORY_COLOR } from '~/services/dto/workflow' import { STATUS_CATEGORY_COLOR } from '~/modules/project-management/services/dto/workflow'
import type { TaskStatusWrite } from '~/services/dto/task-status' import type { TaskStatusWrite } from '~/modules/project-management/services/dto/task-status'
import { useWorkflowService } from '~/services/workflows' import { useWorkflowService } from '~/modules/project-management/services/workflows'
import { useTaskStatusService } from '~/services/task-statuses' import { useTaskStatusService } from '~/modules/project-management/services/task-statuses'
const { t } = useI18n() const { t } = useI18n()
@@ -1,12 +1,12 @@
<script setup lang="ts"> <script setup lang="ts">
import type { MailMessageDetailDto } from '~/services/dto/mail' import type { MailMessageDetailDto } from '~/services/dto/mail'
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { TaskGroup } from '~/services/dto/task-group' import type { TaskGroup } from '~/modules/project-management/services/dto/task-group'
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import { useMailService } from '~/services/mail' import { useMailService } from '~/services/mail'
import { useProjectService } from '~/services/projects' import { useProjectService } from '~/modules/project-management/services/projects'
import { useTaskGroupService } from '~/services/task-groups' import { useTaskGroupService } from '~/modules/project-management/services/task-groups'
import { useUserService } from '~/services/users' import { useUserService } from '~/services/users'
import { useAuthStore } from '~/shared/stores/auth' import { useAuthStore } from '~/shared/stores/auth'
@@ -1,9 +1,9 @@
<script setup lang="ts"> <script setup lang="ts">
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import { useMailService } from '~/services/mail' import { useMailService } from '~/services/mail'
import { useTaskService } from '~/services/tasks' import { useTaskService } from '~/modules/project-management/services/tasks'
import { useProjectService } from '~/services/projects' import { useProjectService } from '~/modules/project-management/services/projects'
const props = defineProps<{ const props = defineProps<{
modelValue: boolean modelValue: boolean
@@ -123,11 +123,11 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Project, ProjectWrite } from '~/services/dto/project' import type { Project, ProjectWrite } from '~/modules/project-management/services/dto/project'
import type { Client } from '~/services/dto/client' import type { Client } from '~/services/dto/client'
import type { GiteaRepository } from '~/services/dto/gitea' import type { GiteaRepository } from '~/services/dto/gitea'
import type { BookStackShelf } from '~/services/dto/bookstack' import type { BookStackShelf } from '~/services/dto/bookstack'
import { useProjectService } from '~/services/projects' import { useProjectService } from '~/modules/project-management/services/projects'
import { useGiteaService } from '~/services/gitea' import { useGiteaService } from '~/services/gitea'
import { useBookStackService } from '~/services/bookstack' import { useBookStackService } from '~/services/bookstack'
@@ -67,10 +67,10 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { TaskGroup } from '~/services/dto/task-group' import type { TaskGroup } from '~/modules/project-management/services/dto/task-group'
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import { useTaskGroupService } from '~/services/task-groups' import { useTaskGroupService } from '~/modules/project-management/services/task-groups'
import { useTaskService } from '~/services/tasks' import { useTaskService } from '~/modules/project-management/services/tasks'
import { stripRichText } from '~/utils/format' import { stripRichText } from '~/utils/format'
const props = defineProps<{ const props = defineProps<{
@@ -82,12 +82,12 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import type { Workflow } from '~/services/dto/workflow' import type { Workflow } from '~/modules/project-management/services/dto/workflow'
import type { TaskStatus } from '~/services/dto/task-status' import type { TaskStatus } from '~/modules/project-management/services/dto/task-status'
import { useWorkflowService } from '~/services/workflows' import { useWorkflowService } from '~/modules/project-management/services/workflows'
import { useTaskService } from '~/services/tasks' import { useTaskService } from '~/modules/project-management/services/tasks'
const props = defineProps<{ const props = defineProps<{
modelValue: boolean modelValue: boolean
@@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import type { TaskStatus } from '~/services/dto/task-status' import type { TaskStatus } from '~/modules/project-management/services/dto/task-status'
defineProps<{ defineProps<{
statuses: TaskStatus[] statuses: TaskStatus[]
@@ -104,13 +104,13 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import type { TaskStatus } from '~/services/dto/task-status' import type { TaskStatus } from '~/modules/project-management/services/dto/task-status'
import type { TaskEffort } from '~/services/dto/task-effort' import type { TaskEffort } from '~/modules/project-management/services/dto/task-effort'
import type { TaskPriority } from '~/services/dto/task-priority' import type { TaskPriority } from '~/modules/project-management/services/dto/task-priority'
import type { TaskGroup } from '~/services/dto/task-group' import type { TaskGroup } from '~/modules/project-management/services/dto/task-group'
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
selectedCount: number selectedCount: number
@@ -102,7 +102,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
task: Task task: Task
@@ -60,8 +60,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { TaskDocument } from '~/services/dto/task-document' import type { TaskDocument } from '~/modules/project-management/services/dto/task-document'
import { useTaskDocumentService } from '~/services/task-documents' import { useTaskDocumentService } from '~/modules/project-management/services/task-documents'
import { formatFileSize } from '~/utils/format' import { formatFileSize } from '~/utils/format'
defineProps<{ defineProps<{
@@ -121,8 +121,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { TaskDocument } from '~/services/dto/task-document' import type { TaskDocument } from '~/modules/project-management/services/dto/task-document'
import { useTaskDocumentService } from '~/services/task-documents' import { useTaskDocumentService } from '~/modules/project-management/services/task-documents'
import { formatFileSize } from '~/utils/format' import { formatFileSize } from '~/utils/format'
import { copyToClipboard } from '~/utils/clipboard' import { copyToClipboard } from '~/utils/clipboard'
@@ -58,7 +58,7 @@
<script setup lang="ts"> <script setup lang="ts">
import type { Breadcrumb, FileEntry } from '~/services/dto/share' import type { Breadcrumb, FileEntry } from '~/services/dto/share'
import { useShareService } from '~/services/share' import { useShareService } from '~/services/share'
import { useTaskDocumentService } from '~/services/task-documents' import { useTaskDocumentService } from '~/modules/project-management/services/task-documents'
import { formatFileSize } from '~/utils/format' import { formatFileSize } from '~/utils/format'
const props = defineProps<{ const props = defineProps<{
@@ -46,7 +46,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { useTaskDocumentService } from '~/services/task-documents' import { useTaskDocumentService } from '~/modules/project-management/services/task-documents'
const props = defineProps<{ const props = defineProps<{
taskId?: number taskId?: number
@@ -25,8 +25,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { TaskEffort, TaskEffortWrite } from '~/services/dto/task-effort' import type { TaskEffort, TaskEffortWrite } from '~/modules/project-management/services/dto/task-effort'
import { useTaskEffortService } from '~/services/task-efforts' import { useTaskEffortService } from '~/modules/project-management/services/task-efforts'
const props = defineProps<{ const props = defineProps<{
modelValue: boolean modelValue: boolean
@@ -226,7 +226,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import type { GiteaBranch, GiteaPullRequest } from '~/services/dto/gitea' import type { GiteaBranch, GiteaPullRequest } from '~/services/dto/gitea'
import { useGiteaService } from '~/services/gitea' import { useGiteaService } from '~/services/gitea'
import { copyToClipboard } from '~/utils/clipboard' import { copyToClipboard } from '~/utils/clipboard'
@@ -56,10 +56,10 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { TaskGroup, TaskGroupWrite } from '~/services/dto/task-group' import type { TaskGroup, TaskGroupWrite } from '~/modules/project-management/services/dto/task-group'
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import { useTaskGroupService } from '~/services/task-groups' import { useTaskGroupService } from '~/modules/project-management/services/task-groups'
import { useTaskService } from '~/services/tasks' import { useTaskService } from '~/modules/project-management/services/tasks'
const props = defineProps<{ const props = defineProps<{
modelValue: boolean modelValue: boolean
@@ -110,7 +110,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
task: Task task: Task
@@ -536,21 +536,21 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Task, TaskWrite } from '~/services/dto/task' import type { Task, TaskWrite } from '~/modules/project-management/services/dto/task'
import type { TaskDocument } from '~/services/dto/task-document' import type { TaskDocument } from '~/modules/project-management/services/dto/task-document'
import { useGiteaService } from '~/services/gitea' import { useGiteaService } from '~/services/gitea'
import { useTaskDocumentService } from '~/services/task-documents' import { useTaskDocumentService } from '~/modules/project-management/services/task-documents'
import ConfirmDeleteDocumentModal from '~/components/ui/ConfirmDeleteDocumentModal.vue' import ConfirmDeleteDocumentModal from '~/components/ui/ConfirmDeleteDocumentModal.vue'
import type { TaskStatus } from '~/services/dto/task-status' import type { TaskStatus } from '~/modules/project-management/services/dto/task-status'
import type { TaskEffort } from '~/services/dto/task-effort' import type { TaskEffort } from '~/modules/project-management/services/dto/task-effort'
import type { TaskPriority } from '~/services/dto/task-priority' import type { TaskPriority } from '~/modules/project-management/services/dto/task-priority'
import type { TaskTag } from '~/services/dto/task-tag' import type { TaskTag } from '~/modules/project-management/services/dto/task-tag'
import type { TaskGroup } from '~/services/dto/task-group' import type { TaskGroup } from '~/modules/project-management/services/dto/task-group'
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import { useTaskService } from '~/services/tasks' import { useTaskService } from '~/modules/project-management/services/tasks'
import { useTaskRecurrenceService } from '~/services/task-recurrences' import { useTaskRecurrenceService } from '~/modules/project-management/services/task-recurrences'
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import { useMailService } from '~/services/mail' import { useMailService } from '~/services/mail'
import type { MailMessageHeaderDto } from '~/services/dto/mail' import type { MailMessageHeaderDto } from '~/services/dto/mail'
@@ -28,8 +28,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { TaskPriority, TaskPriorityWrite } from '~/services/dto/task-priority' import type { TaskPriority, TaskPriorityWrite } from '~/modules/project-management/services/dto/task-priority'
import { useTaskPriorityService } from '~/services/task-priorities' import { useTaskPriorityService } from '~/modules/project-management/services/task-priorities'
const props = defineProps<{ const props = defineProps<{
modelValue: boolean modelValue: boolean
@@ -28,8 +28,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { TaskTag, TaskTagWrite } from '~/services/dto/task-tag' import type { TaskTag, TaskTagWrite } from '~/modules/project-management/services/dto/task-tag'
import { useTaskTagService } from '~/services/task-tags' import { useTaskTagService } from '~/modules/project-management/services/task-tags'
const props = defineProps<{ const props = defineProps<{
modelValue: boolean modelValue: boolean
@@ -0,0 +1 @@
export default defineNuxtConfig({})
@@ -1,22 +1,22 @@
<script setup lang="ts"> <script setup lang="ts">
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import type { TaskStatus } from '~/services/dto/task-status' import type { TaskStatus } from '~/modules/project-management/services/dto/task-status'
import type { TaskEffort } from '~/services/dto/task-effort' import type { TaskEffort } from '~/modules/project-management/services/dto/task-effort'
import type { TaskPriority } from '~/services/dto/task-priority' import type { TaskPriority } from '~/modules/project-management/services/dto/task-priority'
import type { TaskTag } from '~/services/dto/task-tag' import type { TaskTag } from '~/modules/project-management/services/dto/task-tag'
import type { TaskGroup } from '~/services/dto/task-group' import type { TaskGroup } from '~/modules/project-management/services/dto/task-group'
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { StatusCategory } from '~/services/dto/workflow' import type { StatusCategory } from '~/modules/project-management/services/dto/workflow'
import { STATUS_CATEGORY_LABEL, STATUS_CATEGORY_COLOR, contrastText } from '~/services/dto/workflow' import { STATUS_CATEGORY_LABEL, STATUS_CATEGORY_COLOR, contrastText } from '~/modules/project-management/services/dto/workflow'
import { useTaskService } from '~/services/tasks' import { useTaskService } from '~/modules/project-management/services/tasks'
import { useTaskStatusService } from '~/services/task-statuses' import { useTaskStatusService } from '~/modules/project-management/services/task-statuses'
import { useTaskEffortService } from '~/services/task-efforts' import { useTaskEffortService } from '~/modules/project-management/services/task-efforts'
import { useTaskPriorityService } from '~/services/task-priorities' import { useTaskPriorityService } from '~/modules/project-management/services/task-priorities'
import { useTaskTagService } from '~/services/task-tags' import { useTaskTagService } from '~/modules/project-management/services/task-tags'
import { useTaskGroupService } from '~/services/task-groups' import { useTaskGroupService } from '~/modules/project-management/services/task-groups'
import { useUserService } from '~/services/users' import { useUserService } from '~/services/users'
import { useProjectService } from '~/services/projects' import { useProjectService } from '~/modules/project-management/services/projects'
const { t } = useI18n() const { t } = useI18n()
const route = useRoute() const route = useRoute()
@@ -72,20 +72,20 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import type { TaskStatus } from '~/services/dto/task-status' import type { TaskStatus } from '~/modules/project-management/services/dto/task-status'
import type { TaskEffort } from '~/services/dto/task-effort' import type { TaskEffort } from '~/modules/project-management/services/dto/task-effort'
import type { TaskPriority } from '~/services/dto/task-priority' import type { TaskPriority } from '~/modules/project-management/services/dto/task-priority'
import type { TaskTag } from '~/services/dto/task-tag' import type { TaskTag } from '~/modules/project-management/services/dto/task-tag'
import type { TaskGroup } from '~/services/dto/task-group' import type { TaskGroup } from '~/modules/project-management/services/dto/task-group'
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import { useProjectService } from '~/services/projects' import { useProjectService } from '~/modules/project-management/services/projects'
import { useTaskService } from '~/services/tasks' import { useTaskService } from '~/modules/project-management/services/tasks'
import { useTaskEffortService } from '~/services/task-efforts' import { useTaskEffortService } from '~/modules/project-management/services/task-efforts'
import { useTaskPriorityService } from '~/services/task-priorities' import { useTaskPriorityService } from '~/modules/project-management/services/task-priorities'
import { useTaskTagService } from '~/services/task-tags' import { useTaskTagService } from '~/modules/project-management/services/task-tags'
import { useTaskGroupService } from '~/services/task-groups' import { useTaskGroupService } from '~/modules/project-management/services/task-groups'
import { useUserService } from '~/services/users' import { useUserService } from '~/services/users'
const route = useRoute() const route = useRoute()
@@ -13,8 +13,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import { useProjectService } from '~/services/projects' import { useProjectService } from '~/modules/project-management/services/projects'
const route = useRoute() const route = useRoute()
const projectId = computed(() => Number(route.params.id)) const projectId = computed(() => Number(route.params.id))
@@ -207,22 +207,22 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import type { TaskStatus } from '~/services/dto/task-status' import type { TaskStatus } from '~/modules/project-management/services/dto/task-status'
import type { TaskEffort } from '~/services/dto/task-effort' import type { TaskEffort } from '~/modules/project-management/services/dto/task-effort'
import type { TaskPriority } from '~/services/dto/task-priority' import type { TaskPriority } from '~/modules/project-management/services/dto/task-priority'
import type { TaskTag } from '~/services/dto/task-tag' import type { TaskTag } from '~/modules/project-management/services/dto/task-tag'
import type { TaskGroup } from '~/services/dto/task-group' import type { TaskGroup } from '~/modules/project-management/services/dto/task-group'
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import type { Client } from '~/services/dto/client' import type { Client } from '~/services/dto/client'
import { useProjectService } from '~/services/projects' import { useProjectService } from '~/modules/project-management/services/projects'
import { useClientService } from '~/services/clients' import { useClientService } from '~/services/clients'
import { useTaskService } from '~/services/tasks' import { useTaskService } from '~/modules/project-management/services/tasks'
import { useTaskEffortService } from '~/services/task-efforts' import { useTaskEffortService } from '~/modules/project-management/services/task-efforts'
import { useTaskPriorityService } from '~/services/task-priorities' import { useTaskPriorityService } from '~/modules/project-management/services/task-priorities'
import { useTaskTagService } from '~/services/task-tags' import { useTaskTagService } from '~/modules/project-management/services/task-tags'
import { useTaskGroupService } from '~/services/task-groups' import { useTaskGroupService } from '~/modules/project-management/services/task-groups'
import { useUserService } from '~/services/users' import { useUserService } from '~/services/users'
const route = useRoute() const route = useRoute()
@@ -76,9 +76,9 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { Client } from '~/services/dto/client' import type { Client } from '~/services/dto/client'
import { useProjectService } from '~/services/projects' import { useProjectService } from '~/modules/project-management/services/projects'
import { useClientService } from '~/services/clients' import { useClientService } from '~/services/clients'
useHead({ title: 'Projets' }) useHead({ title: 'Projets' })
@@ -1,4 +1,4 @@
import type { Client } from './client' import type { Client } from '~/services/dto/client'
import type { Workflow } from './workflow' import type { Workflow } from './workflow'
export type Project = { export type Project = {
@@ -1,4 +1,4 @@
import type { UserData } from './user-data' import type { UserData } from '~/services/dto/user-data'
export type TaskDocument = { export type TaskDocument = {
'@id'?: string '@id'?: string
@@ -3,7 +3,7 @@ import type { TaskEffort } from './task-effort'
import type { TaskPriority } from './task-priority' import type { TaskPriority } from './task-priority'
import type { TaskTag } from './task-tag' import type { TaskTag } from './task-tag'
import type { TaskGroup } from './task-group' import type { TaskGroup } from './task-group'
import type { UserData } from './user-data' import type { UserData } from '~/services/dto/user-data'
import type { Project } from './project' import type { Project } from './project'
import type { TaskDocument } from './task-document' import type { TaskDocument } from './task-document'
@@ -126,8 +126,8 @@
<script setup lang="ts"> <script setup lang="ts">
import type { TimeEntry, TimeEntryWrite } from '~/modules/time-tracking/services/dto/time-entry' import type { TimeEntry, TimeEntryWrite } from '~/modules/time-tracking/services/dto/time-entry'
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { TaskTag } from '~/services/dto/task-tag' import type { TaskTag } from '~/modules/project-management/services/dto/task-tag'
import { useTimeEntryService } from '~/modules/time-tracking/services/time-entries' import { useTimeEntryService } from '~/modules/time-tracking/services/time-entries'
const props = defineProps<{ const props = defineProps<{
@@ -108,8 +108,8 @@
<script setup lang="ts"> <script setup lang="ts">
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { TaskTag } from '~/services/dto/task-tag' import type { TaskTag } from '~/modules/project-management/services/dto/task-tag'
import type { Client } from '~/services/dto/client' import type { Client } from '~/services/dto/client'
const props = defineProps<{ const props = defineProps<{
@@ -152,8 +152,8 @@
<script setup lang="ts"> <script setup lang="ts">
import type { TimeEntry } from '~/modules/time-tracking/services/dto/time-entry' import type { TimeEntry } from '~/modules/time-tracking/services/dto/time-entry'
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { TaskTag } from '~/services/dto/task-tag' import type { TaskTag } from '~/modules/project-management/services/dto/task-tag'
import type { Client } from '~/services/dto/client' import type { Client } from '~/services/dto/client'
import { useTimeEntryService } from '~/modules/time-tracking/services/time-entries' import { useTimeEntryService } from '~/modules/time-tracking/services/time-entries'
import type { HydraCollection } from '~/utils/api' import type { HydraCollection } from '~/utils/api'
@@ -1,7 +1,7 @@
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import type { TaskTag } from '~/services/dto/task-tag' import type { TaskTag } from '~/modules/project-management/services/dto/task-tag'
export type TimeEntry = { export type TimeEntry = {
id: number id: number
@@ -1,6 +1,6 @@
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
import type { TimeEntry } from '~/modules/time-tracking/services/dto/time-entry' import type { TimeEntry } from '~/modules/time-tracking/services/dto/time-entry'
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import { useTimeEntryService } from '~/modules/time-tracking/services/time-entries' import { useTimeEntryService } from '~/modules/time-tracking/services/time-entries'
export const useTimerStore = defineStore('timer', () => { export const useTimerStore = defineStore('timer', () => {
+8 -8
View File
@@ -1,16 +1,16 @@
<script setup lang="ts"> <script setup lang="ts">
import { Doughnut, Bar, Line } from 'vue-chartjs' import { Doughnut, Bar, Line } from 'vue-chartjs'
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import type { TaskStatus } from '~/services/dto/task-status' import type { TaskStatus } from '~/modules/project-management/services/dto/task-status'
import type { TaskPriority } from '~/services/dto/task-priority' import type { TaskPriority } from '~/modules/project-management/services/dto/task-priority'
import type { TimeEntry } from '~/modules/time-tracking/services/dto/time-entry' import type { TimeEntry } from '~/modules/time-tracking/services/dto/time-entry'
import type { Project } from '~/services/dto/project' import type { Project } from '~/modules/project-management/services/dto/project'
import type { UserData } from '~/services/dto/user-data' import type { UserData } from '~/services/dto/user-data'
import { useTaskService } from '~/services/tasks' import { useTaskService } from '~/modules/project-management/services/tasks'
import { useTaskStatusService } from '~/services/task-statuses' import { useTaskStatusService } from '~/modules/project-management/services/task-statuses'
import { useTaskPriorityService } from '~/services/task-priorities' import { useTaskPriorityService } from '~/modules/project-management/services/task-priorities'
import { useTimeEntryService } from '~/modules/time-tracking/services/time-entries' import { useTimeEntryService } from '~/modules/time-tracking/services/time-entries'
import { useProjectService } from '~/services/projects' import { useProjectService } from '~/modules/project-management/services/projects'
import { useUserService } from '~/services/users' import { useUserService } from '~/services/users'
const { t } = useI18n() const { t } = useI18n()
+1 -1
View File
@@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import type { Task } from '~/services/dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
import { useMailStore } from '~/stores/mail' import { useMailStore } from '~/stores/mail'
const { t } = useI18n() const { t } = useI18n()
+1 -1
View File
@@ -12,7 +12,7 @@ import type {
MailLinkTaskInput, MailLinkTaskInput,
MailSyncResultDto, MailSyncResultDto,
} from './dto/mail' } from './dto/mail'
import type { Task } from './dto/task' import type { Task } from '~/modules/project-management/services/dto/task'
type BackendMailMessage = { type BackendMailMessage = {
id: number id: number