diff --git a/frontend/components/ConfirmDeleteStatusModal.vue b/frontend/components/ConfirmDeleteStatusModal.vue new file mode 100644 index 0000000..ef3afd9 --- /dev/null +++ b/frontend/components/ConfirmDeleteStatusModal.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/frontend/components/ProjectGroupTab.vue b/frontend/components/ProjectGroupTab.vue new file mode 100644 index 0000000..44e85c6 --- /dev/null +++ b/frontend/components/ProjectGroupTab.vue @@ -0,0 +1,118 @@ + + + diff --git a/frontend/components/ProjectStatusTab.vue b/frontend/components/ProjectStatusTab.vue new file mode 100644 index 0000000..40e752a --- /dev/null +++ b/frontend/components/ProjectStatusTab.vue @@ -0,0 +1,162 @@ + + + diff --git a/frontend/components/TaskStatusDrawer.vue b/frontend/components/TaskStatusDrawer.vue index ee65dd6..3fb83da 100644 --- a/frontend/components/TaskStatusDrawer.vue +++ b/frontend/components/TaskStatusDrawer.vue @@ -38,6 +38,7 @@ import { useTaskStatusService } from '~/services/task-statuses' const props = defineProps<{ modelValue: boolean item: TaskStatus | null + projectId: number }>() const emit = defineEmits<{ @@ -90,6 +91,7 @@ async function handleSubmit() { label: form.label.trim(), position: Number(form.position), color: form.color, + project: `/api/projects/${props.projectId}`, } if (isEditing.value && props.item) { diff --git a/frontend/pages/admin.vue b/frontend/pages/admin.vue index ca420b1..9290f01 100644 --- a/frontend/pages/admin.vue +++ b/frontend/pages/admin.vue @@ -19,7 +19,6 @@
- @@ -32,7 +31,6 @@ useHead({ title: 'Administration' }) const tabs = [ - { key: 'statuses', label: 'Statuts' }, { key: 'efforts', label: 'Efforts' }, { key: 'priorities', label: 'Priorités' }, { key: 'types', label: 'Types' }, @@ -41,5 +39,5 @@ const tabs = [ type TabKey = typeof tabs[number]['key'] -const activeTab = ref('statuses') +const activeTab = ref('efforts') diff --git a/frontend/pages/projects/[id]/groups.vue b/frontend/pages/projects/[id]/groups.vue new file mode 100644 index 0000000..fa7e44a --- /dev/null +++ b/frontend/pages/projects/[id]/groups.vue @@ -0,0 +1,32 @@ + + + diff --git a/frontend/pages/projects/[id]/index.vue b/frontend/pages/projects/[id]/index.vue new file mode 100644 index 0000000..2229f3a --- /dev/null +++ b/frontend/pages/projects/[id]/index.vue @@ -0,0 +1,308 @@ + + + diff --git a/frontend/pages/projects/[id]/statuses.vue b/frontend/pages/projects/[id]/statuses.vue new file mode 100644 index 0000000..a6932ee --- /dev/null +++ b/frontend/pages/projects/[id]/statuses.vue @@ -0,0 +1,32 @@ + + + diff --git a/frontend/services/dto/task-status.ts b/frontend/services/dto/task-status.ts index 073c1ec..546046d 100644 --- a/frontend/services/dto/task-status.ts +++ b/frontend/services/dto/task-status.ts @@ -1,13 +1,17 @@ +import type { Project } from './project' + export type TaskStatus = { id: number '@id'?: string label: string color: string position: number + project: Project | null } export type TaskStatusWrite = { label: string color: string position: number + project: string } diff --git a/frontend/services/task-statuses.ts b/frontend/services/task-statuses.ts index 28c4e06..7efcb9c 100644 --- a/frontend/services/task-statuses.ts +++ b/frontend/services/task-statuses.ts @@ -10,6 +10,13 @@ export function useTaskStatusService() { return extractHydraMembers(data) } + async function getByProject(projectId: number): Promise { + const data = await api.get>('/task_statuses', { + project: `/api/projects/${projectId}`, + }) + return extractHydraMembers(data) + } + async function create(payload: TaskStatusWrite): Promise { return api.post('/task_statuses', payload as Record, { toastSuccessKey: 'taskStatuses.created', @@ -28,5 +35,5 @@ export function useTaskStatusService() { }) } - return { getAll, create, update, remove } + return { getAll, getByProject, create, update, remove } }