diff --git a/desk/src/components/layouts/MobileSidebar.vue b/desk/src/components/layouts/MobileSidebar.vue index 7e8b77573..22ea9c528 100644 --- a/desk/src/components/layouts/MobileSidebar.vue +++ b/desk/src/components/layouts/MobileSidebar.vue @@ -82,21 +82,19 @@ import { useNotificationStore } from "@/stores/notification"; import { mobileSidebarOpened as sidebarOpened } from "@/composables/mobile"; import LucideBell from "~icons/lucide/bell"; -import { CUSTOMER_PORTAL_LANDING, CUSTOMER_PORTAL_ROUTES } from "@/router"; +import { CUSTOMER_PORTAL_LANDING } from "@/router"; import Apps from "../Apps.vue"; import { agentPortalSidebarOptions, customerPortalSidebarOptions, } from "./layoutSettings"; import { useAuthStore } from "@/stores/auth"; +import { isCustomerPortal } from "@/utils"; const notificationStore = useNotificationStore(); const route = useRoute(); const router = useRouter(); const authStore = useAuthStore(); -const isCustomerPortal = computed(() => - CUSTOMER_PORTAL_ROUTES.includes(route.name) -); const menuOptions = computed(() => { return isCustomerPortal.value diff --git a/desk/src/components/layouts/Sidebar.vue b/desk/src/components/layouts/Sidebar.vue index 9d3d1061b..974d17fb6 100644 --- a/desk/src/components/layouts/Sidebar.vue +++ b/desk/src/components/layouts/Sidebar.vue @@ -74,7 +74,7 @@ import { storeToRefs } from "pinia"; import { useAuthStore } from "@/stores/auth"; import { useNotificationStore } from "@/stores/notification"; import { useSidebarStore } from "@/stores/sidebar"; -import { CUSTOMER_PORTAL_LANDING, CUSTOMER_PORTAL_ROUTES } from "@/router"; +import { CUSTOMER_PORTAL_LANDING } from "@/router"; import { useDevice } from "@/composables"; import { SidebarLink } from "@/components"; import UserMenu from "@/components/UserMenu.vue"; @@ -84,6 +84,7 @@ import LucideBell from "~icons/lucide/bell"; import LucideSearch from "~icons/lucide/search"; import SettingsModal from "@/components/Settings/SettingsModal.vue"; import Apps from "@/components/Apps.vue"; +import { isCustomerPortal } from "@/utils"; import { agentPortalSidebarOptions, customerPortalSidebarOptions, @@ -96,10 +97,9 @@ const notificationStore = useNotificationStore(); const { isExpanded, width } = storeToRefs(useSidebarStore()); const device = useDevice(); const showSettingsModal = ref(false); -const isCustomerPortal = route.meta.public ?? false; const menuOptions = computed(() => { - return isCustomerPortal + return isCustomerPortal.value ? customerPortalSidebarOptions : agentPortalSidebarOptions; }); @@ -148,7 +148,7 @@ const agentPortalDropdown = computed(() => [ ]); const profileSettings = computed(() => { - return isCustomerPortal + return isCustomerPortal.value ? customerPortalDropdown.value : agentPortalDropdown.value; }); diff --git a/desk/src/components/ticket/TicketsListView.vue b/desk/src/components/ticket/TicketsListView.vue index bceacc902..1ad594278 100644 --- a/desk/src/components/ticket/TicketsListView.vue +++ b/desk/src/components/ticket/TicketsListView.vue @@ -212,7 +212,7 @@ import { Dropdown, } from "frappe-ui"; import { MultipleAvatar, StarRating } from "@/components"; -import { useRoute } from "vue-router"; +import { isCustomerPortal } from "@/utils"; const ticketStatusStore = useTicketStatusStore(); const showExportDialog = ref(false); @@ -220,9 +220,6 @@ const export_type = ref("Excel"); const export_all = ref(false); let selectedRows; -const route = useRoute(); -const isCustomerPortal = route.meta.public; - const props = defineProps({ columns: { type: Array, //TODO custom types diff --git a/desk/src/pages/TicketNew.vue b/desk/src/pages/TicketNew.vue index f27a752a5..6a58ba2be 100644 --- a/desk/src/pages/TicketNew.vue +++ b/desk/src/pages/TicketNew.vue @@ -114,6 +114,7 @@ import SearchArticles from "../components/SearchArticles.vue"; import TicketTextEditor from "./ticket/TicketTextEditor.vue"; import { useAuthStore } from "@/stores/auth"; import { capture } from "@/telemetry"; +import { isCustomerPortal } from "@/utils"; interface P { templateId?: string; @@ -130,8 +131,6 @@ const description = ref(""); const attachments = ref([]); const templateFields = reactive({}); -const isCustomerPortal = window.location.pathname.includes("/my-tickets"); - const template = createResource({ url: "helpdesk.helpdesk.doctype.hd_ticket_template.api.get_one", makeParams: () => ({ @@ -173,7 +172,7 @@ const ticket = createResource({ ticketId: data.name, }, }); - if (!isCustomerPortal) return; + if (!isCustomerPortal.value) return; // only capture telemetry for customer portal capture("new_ticket_submitted", { data: { diff --git a/desk/src/pages/Tickets.vue b/desk/src/pages/Tickets.vue index d41b195df..d936d3f7d 100644 --- a/desk/src/pages/Tickets.vue +++ b/desk/src/pages/Tickets.vue @@ -56,17 +56,17 @@ import { createResource, Breadcrumbs, usePageMeta } from "frappe-ui"; import { TicketsListView } from "@/components/ticket"; import { ViewControls, LayoutHeader } from "@/components"; import { useUserStore } from "@/stores/user"; -import { useRoute } from "vue-router"; import { socket } from "@/socket"; -const { getUser } = useUserStore(); +import { isCustomerPortal } from "@/utils"; -const route = useRoute(); -const isCustomerPortal: boolean = route.meta.public ?? false; +const { getUser } = useUserStore(); const breadcrumbs = [ { label: "Tickets", - route: { name: isCustomerPortal ? "TicketsCustomer" : "TicketsAgent" }, + route: { + name: isCustomerPortal.value ? "TicketsCustomer" : "TicketsAgent", + }, }, ]; let storage = useStorage("tickets_agent", { @@ -100,12 +100,12 @@ const tickets = createResource({ page_length: pageLength.value, columns: columns.length ? columns : undefined, rows: rows.length ? rows : undefined, - show_customer_portal_fields: isCustomerPortal, + show_customer_portal_fields: isCustomerPortal.value, }, auto: true, transform(data) { data.data.forEach((row) => { - if (isCustomerPortal) { + if (isCustomerPortal.value) { if (row.status == "Replied") { row.status = "Awaiting Response"; } @@ -313,7 +313,7 @@ function apply() { doctype: "HD Ticket", columns: columns.length ? columns : undefined, rows: rows.length ? rows : undefined, - show_customer_portal_fields: isCustomerPortal, + show_customer_portal_fields: isCustomerPortal.value, }, }); @@ -327,7 +327,7 @@ const filterableFields = createResource({ params: { doctype: "HD Ticket", append_assign: true, - show_customer_portal_fields: isCustomerPortal, + show_customer_portal_fields: isCustomerPortal.value, }, transform: (data) => { return data @@ -358,7 +358,7 @@ const sortableFields = createResource({ auto: true, params: { doctype: "HD Ticket", - show_customer_portal_fields: isCustomerPortal, + show_customer_portal_fields: isCustomerPortal.value, }, }); diff --git a/desk/src/pages/knowledge-base/Article.vue b/desk/src/pages/knowledge-base/Article.vue index 5f7365df8..60a38b39f 100644 --- a/desk/src/pages/knowledge-base/Article.vue +++ b/desk/src/pages/knowledge-base/Article.vue @@ -6,7 +6,7 @@ -