feat(frontend) : add Archives sidebar link for projects
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -49,6 +49,13 @@
|
|||||||
:collapsed="ui.sidebarCollapsed"
|
:collapsed="ui.sidebarCollapsed"
|
||||||
sub
|
sub
|
||||||
/>
|
/>
|
||||||
|
<SidebarLink
|
||||||
|
:to="`/projects/${currentProjectId}/archives`"
|
||||||
|
icon="mdi:archive-outline"
|
||||||
|
label="Archives"
|
||||||
|
:collapsed="ui.sidebarCollapsed"
|
||||||
|
sub
|
||||||
|
/>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<SidebarLink
|
<SidebarLink
|
||||||
@@ -84,14 +91,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
<div class="h-full flex-1 overflow-hidden flex flex-col">
|
<div class="h-full flex-1 flex flex-col min-h-0">
|
||||||
<AppTopNav :user="auth.user" />
|
<AppTopNav :user="auth.user" />
|
||||||
<div class="relative flex-1 overflow-hidden bg-white">
|
<main class="flex-1 overflow-y-auto bg-white px-16 pb-24">
|
||||||
<div aria-hidden="true" class="pointer-events-none absolute inset-x-0 top-0 z-30 h-12 bg-white" />
|
<div aria-hidden="true" class="pointer-events-none sticky top-0 z-30 h-12 bg-white" />
|
||||||
<main class="h-full overflow-y-auto px-16 pt-12 pb-24">
|
<slot/>
|
||||||
<slot/>
|
</main>
|
||||||
</main>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -100,7 +105,7 @@
|
|||||||
:entry="timerStore.pendingCompleteEntry"
|
:entry="timerStore.pendingCompleteEntry"
|
||||||
:users="refData.users"
|
:users="refData.users"
|
||||||
:projects="refData.projects"
|
:projects="refData.projects"
|
||||||
:types="refData.types"
|
:tags="refData.tags"
|
||||||
@saved="onCompleteSaved"
|
@saved="onCompleteSaved"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -109,7 +114,7 @@
|
|||||||
<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 '~/services/dto/project'
|
||||||
import type { TaskType } from '~/services/dto/task-type'
|
import type { TaskTag } from '~/services/dto/task-tag'
|
||||||
import { useAppVersion } from '~/composables/useAppVersion'
|
import { useAppVersion } from '~/composables/useAppVersion'
|
||||||
import { extractHydraMembers } from '~/utils/api'
|
import { extractHydraMembers } from '~/utils/api'
|
||||||
|
|
||||||
@@ -155,7 +160,7 @@ const completeDrawerOpen = ref(false)
|
|||||||
const refData = reactive({
|
const refData = reactive({
|
||||||
users: [] as UserData[],
|
users: [] as UserData[],
|
||||||
projects: [] as Project[],
|
projects: [] as Project[],
|
||||||
types: [] as TaskType[],
|
tags: [] as TaskTag[],
|
||||||
loaded: false,
|
loaded: false,
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -165,11 +170,11 @@ async function loadRefData() {
|
|||||||
const [usersData, projectsData, typesData] = await Promise.all([
|
const [usersData, projectsData, typesData] = await Promise.all([
|
||||||
api.get<any>('/users'),
|
api.get<any>('/users'),
|
||||||
api.get<any>('/projects'),
|
api.get<any>('/projects'),
|
||||||
api.get<any>('/task_types'),
|
api.get<any>('/task_tags'),
|
||||||
])
|
])
|
||||||
refData.users = extractHydraMembers(usersData)
|
refData.users = extractHydraMembers(usersData)
|
||||||
refData.projects = extractHydraMembers(projectsData)
|
refData.projects = extractHydraMembers(projectsData)
|
||||||
refData.types = extractHydraMembers(typesData)
|
refData.tags = extractHydraMembers(typesData)
|
||||||
refData.loaded = true
|
refData.loaded = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user