Skip to content

Commit

Permalink
Proponent tracker navigation
Browse files Browse the repository at this point in the history
  • Loading branch information
sanjaytkbabu committed Jan 29, 2025
1 parent 5b73a04 commit d1334d9
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 182 deletions.
9 changes: 0 additions & 9 deletions frontend/src/router/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,15 +179,6 @@ const routes: Array<RouteRecordRaw> = [
access: [NavigationPermission.HOUSING_STATUS_TRACKER]
},
children: [
{
path: '',
component: () => import('@/views/housing/project/ProjectListView.vue'),
beforeEnter: accessHandler,
meta: {
access: [NavigationPermission.HOUSING_STATUS_TRACKER]
},
name: RouteName.HOUSING_PROJECTS_LIST
},
{
path: ':submissionId',
component: () => import('@/views/housing/project/ProjectView.vue'),
Expand Down
3 changes: 2 additions & 1 deletion frontend/src/store/authzStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ const NavigationAuthorizationMap = [
NavigationPermission.HOUSING_DROPDOWN,
NavigationPermission.HOUSING_ENQUIRY_INTAKE,
NavigationPermission.HOUSING_SUBMISSION_INTAKE,
NavigationPermission.HOUSING_SUBMISSIONS_SUB
NavigationPermission.HOUSING_SUBMISSIONS_SUB,
NavigationPermission.HOUSING_STATUS_TRACKER
]
},
{
Expand Down
12 changes: 2 additions & 10 deletions frontend/src/views/housing/HousingView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,6 @@ const { t } = useI18n();
const route = useRoute();
const router = useRouter();
function onProjectClick(project: Submission) {
router.push({
name: RouteName.HOUSING_SUBMISSION_INTAKE,
query: { activityId: project.activityId, submissionId: project.submissionId }
});
}
function onSubmissionDraftDelete(draftId: string) {
drafts.value = drafts.value.filter((x) => x.draftId !== draftId);
}
Expand Down Expand Up @@ -166,15 +159,14 @@ onMounted(async () => {
:index="index"
class="rounded-sm shadow-md hover:shadow-lg px-6 py-4 custom-card hover-hand"
:class="{ 'mb-2': index != displayedProjects.length - 1 }"
@click="onProjectClick(project)"
>
<div class="grid grid-cols-12 gap-4">
<div class="col-span-3 flex items-center">
<router-link
class="no-underline"
:to="{
name: RouteName.HOUSING_SUBMISSION_INTAKE,
query: { activityId: project.activityId, submissionId: project.submissionId }
name: RouteName.HOUSING_PROJECT,
params: { submissionId: project.submissionId }
}"
>
<h4 class="font-bold mb-0">{{ project.projectName }}</h4>
Expand Down
91 changes: 0 additions & 91 deletions frontend/src/views/housing/project/ProjectListView.vue

This file was deleted.

34 changes: 17 additions & 17 deletions frontend/src/views/housing/project/ProjectView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ import { RouteName } from '@/utils/enums/application';
import { PermitAuthorizationStatus, PermitNeeded, PermitStatus, SubmissionType } from '@/utils/enums/housing';
import { formatDate } from '@/utils/formatters';
import { enquiryService, permitService, submissionService, userService } from '@/services';
import { contactService, enquiryService, permitService, submissionService } from '@/services';
import { useSubmissionStore, useTypeStore } from '@/store';
import type { ComputedRef, Ref } from 'vue';
import type { Permit, PermitType, User } from '@/types';
import type { Contact, Permit, PermitType } from '@/types';
import type { MenuItem } from 'primevue/menuitem';
import EnquiryListProponent from '@/components/housing/enquiry/EnquiryListProponent.vue';
Expand Down Expand Up @@ -57,11 +57,11 @@ const typeStore = useTypeStore();
const { getPermitTypes } = storeToRefs(typeStore);
// State
const assignee: Ref<User | undefined> = ref(undefined);
const assignee: Ref<Contact | undefined> = ref(undefined);
const breadcrumbItems: ComputedRef<Array<MenuItem>> = computed(() => [
{ label: getSubmission?.value?.projectName ?? '', class: 'font-bold' }
]);
const createdBy: Ref<User | undefined> = ref(undefined);
const createdBy: Ref<Contact | undefined> = ref(undefined);
const loading: Ref<boolean> = ref(true);
const permitsNeeded = computed(() => {
Expand Down Expand Up @@ -134,15 +134,14 @@ function permitFilter(config: PermitFilterConfig) {
return returnArray.filter((pt) => !!pt) as Array<CombinedPermit>;
}
function navigateToSubmissionView() {
function navigateToSubmissionIntakeView() {
router.push({
name: RouteName.HOUSING_SUBMISSION,
name: RouteName.HOUSING_SUBMISSION_INTAKE,
query: { activityId: getSubmission.value?.activityId, submissionId: getSubmission.value?.submissionId }
});
}
onMounted(async () => {
let enquiriesValue, permitTypesValue, submissionValue;
let enquiriesValue, permitTypesValue, submissionValue: any;
try {
[submissionValue, permitTypesValue] = (
Expand All @@ -165,13 +164,14 @@ onMounted(async () => {
submissionStore.setRelatedEnquiries(enquiriesValue);
typeStore.setPermitTypes(permitTypesValue);
if (submissionValue?.assignedUserId) {
assignee.value = (await userService.searchUsers({ userId: [submissionValue.assignedUserId] })).data[0];
}
// Fetch contacts for createdBy and assignedUserId
const userIds = [];
// push only thruthy values into the array
userIds.push(...[submissionValue?.assignedUserId, submissionValue?.createdBy].filter(Boolean));
const contacts = (await contactService.searchContacts({ userId: userIds })).data;
assignee.value = contacts.find((contact: Contact) => contact.userId === submissionValue?.assignedUserId) || undefined;
createdBy.value = contacts.find((contact: Contact) => contact.userId === submissionValue?.createdBy) || undefined;
if (submissionValue?.createdBy) {
createdBy.value = (await userService.searchUsers({ userId: [submissionValue.createdBy] })).data[0];
}
loading.value = false;
});
</script>
Expand All @@ -192,9 +192,9 @@ onMounted(async () => {
<h1
class="m-0 cursor-pointer hover:underline"
tabindex="0"
@click="navigateToSubmissionView()"
@keydown.enter.prevent="navigateToSubmissionView()"
@keydown.space.prevent="navigateToSubmissionView()"
@click="navigateToSubmissionIntakeView()"
@keydown.enter.prevent="navigateToSubmissionIntakeView()"
@keydown.space.prevent="navigateToSubmissionIntakeView()"
>
{{ getSubmission.projectName }}
<font-awesome-icon
Expand Down
53 changes: 0 additions & 53 deletions frontend/tests/unit/views/housing/project/ProjectListView.spec.ts

This file was deleted.

13 changes: 12 additions & 1 deletion frontend/tests/unit/views/housing/project/ProjectView.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import ProjectView from '@/views/housing/project/ProjectView.vue';
import { submissionService } from '@/services';
import { contactService, submissionService } from '@/services';
import { createTestingPinia } from '@pinia/testing';
import PrimeVue from 'primevue/config';
import ConfirmationService from 'primevue/confirmationservice';
Expand Down Expand Up @@ -42,14 +42,25 @@ afterEach(() => {
sessionStorage.clear();
});

const useContactService = vi.spyOn(contactService, 'searchContacts');
const useSubmissionService = vi.spyOn(submissionService, 'searchSubmissions');

const testSubmissionId = 'submission123';
const exampleContact = {
contactId: 'contact123',
name: 'John Doe',
email: 'john.doe@example.com',
phone: '123-456-7890'
};

useSubmissionService.mockResolvedValue({
data: [{ activityId: 'activity456' }]
} as AxiosResponse);

useContactService.mockResolvedValue({
data: [exampleContact]
} as AxiosResponse);

const wrapperSettings = (testSubmissionIdProp = testSubmissionId) => ({
props: {
submissionId: testSubmissionIdProp
Expand Down

0 comments on commit d1334d9

Please sign in to comment.