From 8922507a64a7132f081c11e9fcb8f6d5d71e83d9 Mon Sep 17 00:00:00 2001 From: Emily Date: Tue, 21 Jan 2025 18:07:01 +0100 Subject: [PATCH] implementing domain selector --- dashboard/components/layout/TopNavigation.vue | 14 ++++ .../VerticalNavigation.vue} | 4 +- .../components/selector/DomainSelector.vue | 53 ++++++++++++++ .../{ => selector}/ProjectSelector.vue | 0 dashboard/composables/useDomain.ts | 36 +++++++++ dashboard/layouts/dashboard.vue | 8 +- dashboard/server/api/ai/[chat_id]/delete.ts | 2 +- .../server/api/ai/[chat_id]/get_messages.ts | 2 +- dashboard/server/api/ai/[chat_id]/status.ts | 2 +- dashboard/server/api/ai/chats_list.ts | 2 +- dashboard/server/api/ai/chats_remaining.ts | 2 +- dashboard/server/api/ai/delete_all_chats.ts | 2 +- dashboard/server/api/ai/send_message.post.ts | 2 +- dashboard/server/api/data/browsers.ts | 4 +- dashboard/server/api/data/count.ts | 4 +- dashboard/server/api/data/countries.ts | 4 +- dashboard/server/api/data/devices.ts | 4 +- dashboard/server/api/data/events.ts | 4 +- .../api/data/events_data/flow_from_name.ts | 2 +- .../data/events_data/metadata_field_group.ts | 2 +- .../api/data/events_data/metadata_fields.ts | 2 +- .../server/api/data/events_data/names.ts | 2 +- dashboard/server/api/data/live_users.ts | 2 +- dashboard/server/api/data/oss.ts | 4 +- dashboard/server/api/data/referrers.ts | 4 +- dashboard/server/api/data/websites.ts | 4 +- dashboard/server/api/data/websites_pages.ts | 4 +- dashboard/server/api/domains/list.ts | 18 +++++ dashboard/server/api/feedback/add.post.ts | 2 +- dashboard/server/api/keys/create.post.ts | 2 +- dashboard/server/api/keys/delete.delete.ts | 2 +- dashboard/server/api/keys/get_all.ts | 2 +- dashboard/server/api/onboarding/add.post.ts | 2 +- dashboard/server/api/onboarding/exist.ts | 2 +- .../server/api/pay/create-onetime.post.ts | 2 +- dashboard/server/api/pay/create.post.ts | 2 +- dashboard/server/api/pay/customer_info.ts | 2 +- dashboard/server/api/pay/invoices.ts | 2 +- .../api/pay/redeem_appsumo_code.post.ts | 2 +- .../server/api/pay/update_customer.post.ts | 2 +- dashboard/server/api/pay/valid_codes.ts | 2 +- .../server/api/project/change_name.post.ts | 2 +- dashboard/server/api/project/delete.delete.ts | 2 +- .../server/api/project/first_interaction.ts | 2 +- dashboard/server/api/project/generate_csv.ts | 2 +- dashboard/server/api/project/generate_pdf.ts | 2 +- dashboard/server/api/project/limits_info.ts | 2 +- .../server/api/project/members/add.post.ts | 2 +- .../server/api/project/members/kick.post.ts | 2 +- dashboard/server/api/project/members/leave.ts | 2 +- dashboard/server/api/project/members/list.ts | 2 +- dashboard/server/api/project/plan.ts | 2 +- dashboard/server/api/project/snapshots.ts | 2 +- dashboard/server/api/security/list.ts | 2 +- .../server/api/settings/delete_all.delete.ts | 4 +- .../api/settings/delete_domain.delete.ts | 4 +- .../server/api/settings/domain_counts.ts | 4 +- dashboard/server/api/settings/domains.ts | 4 +- dashboard/server/api/snapshot/create.post.ts | 2 +- .../server/api/snapshot/delete.delete.ts | 2 +- .../server/api/timeline/bouncing_rate.ts | 2 +- dashboard/server/api/timeline/events.ts | 2 +- .../server/api/timeline/events_stacked.ts | 2 +- dashboard/server/api/timeline/sessions.ts | 2 +- .../server/api/timeline/sessions_duration.ts | 2 +- dashboard/server/api/timeline/visits.ts | 2 +- dashboard/server/utils/getRequestData.ts | 73 ++++++++++++++++++- shared/schema/metrics/VisitSchema.ts | 2 +- 68 files changed, 273 insertions(+), 79 deletions(-) create mode 100644 dashboard/components/layout/TopNavigation.vue rename dashboard/components/{CVerticalNavigation.vue => layout/VerticalNavigation.vue} (99%) create mode 100644 dashboard/components/selector/DomainSelector.vue rename dashboard/components/{ => selector}/ProjectSelector.vue (100%) create mode 100644 dashboard/composables/useDomain.ts create mode 100644 dashboard/server/api/domains/list.ts diff --git a/dashboard/components/layout/TopNavigation.vue b/dashboard/components/layout/TopNavigation.vue new file mode 100644 index 0000000..a5a6c8b --- /dev/null +++ b/dashboard/components/layout/TopNavigation.vue @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/dashboard/components/CVerticalNavigation.vue b/dashboard/components/layout/VerticalNavigation.vue similarity index 99% rename from dashboard/components/CVerticalNavigation.vue rename to dashboard/components/layout/VerticalNavigation.vue index 29bd410..66ade6c 100644 --- a/dashboard/components/CVerticalNavigation.vue +++ b/dashboard/components/layout/VerticalNavigation.vue @@ -1,6 +1,6 @@ + + \ No newline at end of file diff --git a/dashboard/components/ProjectSelector.vue b/dashboard/components/selector/ProjectSelector.vue similarity index 100% rename from dashboard/components/ProjectSelector.vue rename to dashboard/components/selector/ProjectSelector.vue diff --git a/dashboard/composables/useDomain.ts b/dashboard/composables/useDomain.ts new file mode 100644 index 0000000..8f33297 --- /dev/null +++ b/dashboard/composables/useDomain.ts @@ -0,0 +1,36 @@ + + +const { token } = useAccessToken(); +const { projectId } = useProject(); + +const domainsRequest = useFetch<{ _id: string }[]>('/api/domains/list', { + headers: computed(() => { + return { + 'Authorization': `Bearer ${token.value}`, + 'x-pid': projectId.value || '' + } + }) +}); + +const domainList = computed(() => { + return domainsRequest.data.value?.map(e => e._id); +}) + +const activeDomain = ref(); + +const domain = computed(() => { + if (activeDomain.value) return activeDomain.value; + if (!domainList.value) return; + if (domainList.value.length == 0) return; + activeDomain.value = domainList.value[0]; + return domainList.value[0]; +}) + +function setActiveDomain(domain: string) { + activeDomain.value = domain; +} + +export function useDomain() { + + return { domainList, domain, setActiveDomain } +} \ No newline at end of file diff --git a/dashboard/layouts/dashboard.vue b/dashboard/layouts/dashboard.vue index e9fa1e1..cc15f5c 100644 --- a/dashboard/layouts/dashboard.vue +++ b/dashboard/layouts/dashboard.vue @@ -1,6 +1,6 @@