diff --git a/apps/web/src/components/activities/ActivitiesKanban.vue b/apps/web/src/components/activities/ActivitiesKanban.vue index 3a24ea0..b3c7d7d 100644 --- a/apps/web/src/components/activities/ActivitiesKanban.vue +++ b/apps/web/src/components/activities/ActivitiesKanban.vue @@ -1,6 +1,6 @@ diff --git a/apps/web/src/views/ActivitiesView.vue b/apps/web/src/views/ActivitiesView.vue index 39ad5bc..0a1ca9f 100644 --- a/apps/web/src/views/ActivitiesView.vue +++ b/apps/web/src/views/ActivitiesView.vue @@ -399,6 +399,19 @@ async function loadStages() { } } +function activityRoute(id: string, edit = false) { + const query: Record = {}; + for (const key of ['board', 'view', 'desk', 'filter', 'stage', 'q', 'typeDefId', 'status', 'assigneeId'] as const) { + const value = route.query[key]; + if (typeof value === 'string' && value) query[key] = value; + } + return { + name: edit ? ('activity-edit' as const) : ('activity-detail' as const), + params: { id }, + query, + }; +} + function setBoard(next: string) { void router.replace({ name: 'activities', @@ -1370,7 +1383,7 @@ onUnmounted(() => {
- + {{ item.title }}

{{ subtitle(item) }}

@@ -1452,10 +1465,10 @@ onUnmounted(() => { - + مشاهده - + ویرایش - + مشاهده - + ویرایش مشاهده ویرایش diff --git a/apps/web/src/views/ActivityDetailView.vue b/apps/web/src/views/ActivityDetailView.vue index 05bbaa4..ad1902a 100644 --- a/apps/web/src/views/ActivityDetailView.vue +++ b/apps/web/src/views/ActivityDetailView.vue @@ -27,6 +27,26 @@ import { brand } from '@mento/shared'; const route = useRoute(); const router = useRouter(); + +const ACTIVITY_LIST_QUERY = ['board', 'view', 'desk', 'filter', 'stage', 'q', 'typeDefId', 'status', 'assigneeId'] as const; + +function activitiesListLocation() { + const query: Record = {}; + for (const key of ACTIVITY_LIST_QUERY) { + const value = route.query[key]; + if (typeof value === 'string' && value) query[key] = value; + } + return { name: 'activities' as const, query }; +} + +function goBack() { + const back = (window.history.state as { back?: string | null } | null)?.back ?? ''; + if (back.split('?')[0] === '/activities') { + router.back(); + return; + } + void router.push(activitiesListLocation()); +} const auth = useAuthStore(); const id = computed(() => (typeof route.params.id === 'string' ? route.params.id : '')); const canReassign = computed(() => canReassignRecords(auth.user?.role)); @@ -314,9 +334,9 @@ onMounted(() => {