diff --git a/desk/package.json b/desk/package.json index 333255d4e..adf99e838 100644 --- a/desk/package.json +++ b/desk/package.json @@ -1,5 +1,5 @@ { - "name": "frappe-ui-frontend", + "name": "helpdesk-ui", "private": true, "version": "0.0.0", "scripts": { @@ -29,6 +29,7 @@ }, "devDependencies": { "tailwindcss": "^3.2.7", - "vite": "^4.1.4" + "vite": "^4.1.4", + "vite-svg-loader": "^4.0.0" } } diff --git a/desk/src/assets/icons/comment.svg b/desk/src/assets/icons/comment.svg new file mode 100644 index 000000000..1afabfdf3 --- /dev/null +++ b/desk/src/assets/icons/comment.svg @@ -0,0 +1,3 @@ + + + diff --git a/desk/src/assets/icons/contact.svg b/desk/src/assets/icons/contact.svg new file mode 100644 index 000000000..bb94b32ff --- /dev/null +++ b/desk/src/assets/icons/contact.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/desk/src/assets/icons/customer.svg b/desk/src/assets/icons/customer.svg new file mode 100644 index 000000000..b2d1f5bd0 --- /dev/null +++ b/desk/src/assets/icons/customer.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/desk/src/assets/icons/dashboard.svg b/desk/src/assets/icons/dashboard.svg new file mode 100644 index 000000000..800ba7197 --- /dev/null +++ b/desk/src/assets/icons/dashboard.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/desk/src/assets/icons/hash.svg b/desk/src/assets/icons/hash.svg new file mode 100644 index 000000000..39c576b03 --- /dev/null +++ b/desk/src/assets/icons/hash.svg @@ -0,0 +1,3 @@ + + + diff --git a/desk/src/assets/icons/knowledge-base.svg b/desk/src/assets/icons/knowledge-base.svg new file mode 100644 index 000000000..ec4dee357 --- /dev/null +++ b/desk/src/assets/icons/knowledge-base.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/desk/src/assets/icons/mail.svg b/desk/src/assets/icons/mail.svg new file mode 100644 index 000000000..1b6d96dbf --- /dev/null +++ b/desk/src/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/desk/src/assets/icons/settings.svg b/desk/src/assets/icons/settings.svg new file mode 100644 index 000000000..eae81e891 --- /dev/null +++ b/desk/src/assets/icons/settings.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/desk/src/assets/icons/sort-arrow.svg b/desk/src/assets/icons/sort-arrow.svg new file mode 100644 index 000000000..99133accf --- /dev/null +++ b/desk/src/assets/icons/sort-arrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/desk/src/assets/icons/ticket.svg b/desk/src/assets/icons/ticket.svg new file mode 100644 index 000000000..d4339521a --- /dev/null +++ b/desk/src/assets/icons/ticket.svg @@ -0,0 +1,3 @@ + + + diff --git a/desk/src/components/desk/SideBarMenu.vue b/desk/src/components/desk/SideBarMenu.vue index dd4c4c1eb..ff959bfcd 100644 --- a/desk/src/components/desk/SideBarMenu.vue +++ b/desk/src/components/desk/SideBarMenu.vue @@ -36,11 +36,12 @@ :class="{ 'bg-gray-200': isActive(option.label), 'text-gray-900': isActive(option.label), + 'hover:bg-gray-300': isActive(option.label), 'hover:bg-gray-100': !isActive(option.label), }" @click="$router.push(option.to)" > - +
{{ option.label }}
@@ -55,11 +56,12 @@ :class="{ 'bg-gray-200': isActive(option.label), 'text-gray-900': isActive(option.label), + 'hover:bg-gray-300': isActive(option.label), 'hover:bg-gray-100': !isActive(option.label), }" @click="$router.push(option.to)" > - +
{{ option.label }}
@@ -99,8 +101,13 @@ import { ref } from "vue"; import { useRoute } from "vue-router"; import { Dropdown, FeatherIcon, Avatar } from "frappe-ui"; -import CustomIcons from "@/components/desk/global/CustomIcons.vue"; import { useAuthStore } from "@/stores/auth"; +import IconDashboard from "@/assets/icons/dashboard.svg?component"; +import IconTicket from "@/assets/icons/ticket.svg?component"; +import IconCustomer from "@/assets/icons/customer.svg?component"; +import IconContact from "@/assets/icons/contact.svg?component"; +import IconKnowledgeBase from "@/assets/icons/knowledge-base.svg?component"; +import IconSettings from "@/assets/icons/settings.svg?component"; const route = useRoute(); const authStore = useAuthStore(); @@ -125,30 +132,30 @@ const keyboardShortcuts = [ const menuOptions = [ { label: "Dashboard", - icon: "dashboard", + icon_: IconDashboard, to: { - path: "/helpdesk/dashboard", + name: "Dashboard", }, }, { label: "Tickets", - icon: "ticket", + icon_: IconTicket, to: { - path: "/helpdesk/tickets", + name: "DeskTickets", }, }, { label: "Customers", - icon: "customer", + icon_: IconCustomer, to: { - path: "/helpdesk/customers", + name: "Customers", }, }, { label: "Contacts", - icon: "customers", + icon_: IconContact, to: { - path: "/helpdesk/contacts", + name: "Contacts", }, }, ]; @@ -156,16 +163,16 @@ const menuOptions = [ const footerOptions = [ { label: "Knowledge Base", - icon: "kb-articles", + icon_: IconKnowledgeBase, to: { - path: "/helpdesk/kb", + name: "DeskKBHome", }, }, { label: "Settings", - icon: "settings", + icon_: IconSettings, to: { - path: "/helpdesk/settings", + name: "Settings", }, }, ]; @@ -182,7 +189,7 @@ const profileSettings = [ label: "Customer portal", icon: "users", handler: () => { - window.open("/helpdesk/my-tickets", "_blank"); + window.open("/my-tickets", "_blank"); }, }, { @@ -193,13 +200,13 @@ const profileSettings = [ ]; const routeMap = { - "Knowledge Base": "helpdesk/kb", - Contacts: "helpdesk/contacts", - Customers: "helpdesk/customers", - Dashboard: "helpdesk/dashboard", - Reports: "helpdesk/reports", - Settings: "helpdesk/settings", - Tickets: "helpdesk/tickets", + "Knowledge Base": "/kb", + Contacts: "/contacts", + Customers: "/customers", + Dashboard: "/dashboard", + Reports: "/reports", + Settings: "/settings", + Tickets: "/tickets", }; function isActive(label: string) { diff --git a/desk/src/components/desk/customers/CustomerInfo.vue b/desk/src/components/desk/customers/CustomerInfo.vue index 0242aea71..c212c556b 100644 --- a/desk/src/components/desk/customers/CustomerInfo.vue +++ b/desk/src/components/desk/customers/CustomerInfo.vue @@ -151,7 +151,7 @@ >
{{ contact.first_name }} {{ @@ -411,7 +411,7 @@ export default { url: "frappe.client.rename_doc", onSuccess: (res) => { this.$router.push({ - path: `/helpdesk/customers/${res}`, + path: `/customers/${res}`, }) }, } diff --git a/desk/src/components/desk/global/AddNewCannedResponsesDialog.vue b/desk/src/components/desk/global/AddNewCannedResponsesDialog.vue index 53640775a..d88a6a42f 100644 --- a/desk/src/components/desk/global/AddNewCannedResponsesDialog.vue +++ b/desk/src/components/desk/global/AddNewCannedResponsesDialog.vue @@ -205,7 +205,7 @@ export default { url: "frappe.client.insert", onSuccess: (doc) => { this.$router.push( - `/helpdesk/settings/canned_responses/${doc.name}` + `/settings/canned_responses/${doc.name}` ) }, onError: (err) => { diff --git a/desk/src/components/desk/global/AddNewTicketTypeDialog.vue b/desk/src/components/desk/global/AddNewTicketTypeDialog.vue index 0889655b1..aa8c1d518 100644 --- a/desk/src/components/desk/global/AddNewTicketTypeDialog.vue +++ b/desk/src/components/desk/global/AddNewTicketTypeDialog.vue @@ -152,7 +152,7 @@ export default { return { url: "frappe.client.insert", onSuccess: (doc) => { - this.$router.push(`/helpdesk/ticket_types`) + this.$router.push(`/ticket_types`) }, } }, diff --git a/desk/src/components/desk/global/NewCustomerDialog.vue b/desk/src/components/desk/global/NewCustomerDialog.vue index 76cb96ab3..ff323b0e7 100644 --- a/desk/src/components/desk/global/NewCustomerDialog.vue +++ b/desk/src/components/desk/global/NewCustomerDialog.vue @@ -101,7 +101,7 @@ export default { return { url: "frappe.client.insert", onSuccess: (doc) => { - this.$router.push(`/helpdesk/customers`) + this.$router.push(`/customers`) }, } }, diff --git a/desk/src/components/desk/kb/ArticleDetails.vue b/desk/src/components/desk/kb/ArticleDetails.vue index a3e897ebb..c3ec1843d 100644 --- a/desk/src/components/desk/kb/ArticleDetails.vue +++ b/desk/src/components/desk/kb/ArticleDetails.vue @@ -3,7 +3,7 @@
Details
diff --git a/desk/src/components/desk/settings/agents/AgentRelatedInfo.vue b/desk/src/components/desk/settings/agents/AgentRelatedInfo.vue index 354ac7e72..aef5049b2 100644 --- a/desk/src/components/desk/settings/agents/AgentRelatedInfo.vue +++ b/desk/src/components/desk/settings/agents/AgentRelatedInfo.vue @@ -5,7 +5,7 @@
diff --git a/desk/src/components/desk/settings/canned_responses/CannedResponseListItem.vue b/desk/src/components/desk/settings/canned_responses/CannedResponseListItem.vue index da52be06c..9b7c78046 100644 --- a/desk/src/components/desk/settings/canned_responses/CannedResponseListItem.vue +++ b/desk/src/components/desk/settings/canned_responses/CannedResponseListItem.vue @@ -17,7 +17,7 @@ />
diff --git a/desk/src/components/desk/settings/emails/EmailListItem.vue b/desk/src/components/desk/settings/emails/EmailListItem.vue index 9fb6214fe..3e5e37359 100644 --- a/desk/src/components/desk/settings/emails/EmailListItem.vue +++ b/desk/src/components/desk/settings/emails/EmailListItem.vue @@ -14,7 +14,7 @@
{{ emailAccount.name }} diff --git a/desk/src/components/desk/settings/policies/SlaPolicyListItem.vue b/desk/src/components/desk/settings/policies/SlaPolicyListItem.vue index 3c19f8e5d..673d64356 100644 --- a/desk/src/components/desk/settings/policies/SlaPolicyListItem.vue +++ b/desk/src/components/desk/settings/policies/SlaPolicyListItem.vue @@ -14,7 +14,7 @@
diff --git a/desk/src/components/desk/settings/teams/TeamInfo.vue b/desk/src/components/desk/settings/teams/TeamInfo.vue index c1dcb16ce..da7cf450f 100644 --- a/desk/src/components/desk/settings/teams/TeamInfo.vue +++ b/desk/src/components/desk/settings/teams/TeamInfo.vue @@ -3,7 +3,7 @@
@@ -194,7 +194,7 @@ export default { url: "frappe.client.insert", onSuccess: (res) => { this.$router.push({ - path: `/helpdesk/settings/teams/${res.name}`, + path: `/settings/teams/${res.name}`, }); this.$toast({ @@ -233,7 +233,7 @@ export default { }) .then(() => { this.$router.push({ - path: `/helpdesk/settings/teams/${title}`, + path: `/settings/teams/${title}`, }); }); }, diff --git a/desk/src/components/desk/settings/ticket_types/TicketTypeInfo.vue b/desk/src/components/desk/settings/ticket_types/TicketTypeInfo.vue index a2774ce9b..9a4358e86 100644 --- a/desk/src/components/desk/settings/ticket_types/TicketTypeInfo.vue +++ b/desk/src/components/desk/settings/ticket_types/TicketTypeInfo.vue @@ -3,7 +3,7 @@
@@ -184,7 +184,7 @@ export default { url: "frappe.client.rename_doc", onSuccess: (res) => { this.$router.push({ - path: `/helpdesk/settings/ticket_types/${res}`, + path: `/settings/ticket_types/${res}`, }) }, } @@ -194,7 +194,7 @@ export default { url: "frappe.client.insert", onSuccess: (res) => { this.$router.push({ - path: `/helpdesk/settings/ticket_types/${res.name}`, + path: `/settings/ticket_types/${res.name}`, }) }, } diff --git a/desk/src/components/desk/ticket/InfoPanel.vue b/desk/src/components/desk/ticket/InfoPanel.vue index e3f9efa19..ee557019a 100644 --- a/desk/src/components/desk/ticket/InfoPanel.vue +++ b/desk/src/components/desk/ticket/InfoPanel.vue @@ -223,8 +223,8 @@ v-if="index <= maxCount" :to=" index < maxCount - ? `/helpdesk/tickets/${_ticket.name}` - : `/helpdesk/tickets/?contact=${JSON.stringify( + ? `/tickets/${_ticket.name}` + : `/tickets/?contact=${JSON.stringify( ['is', ticket.contact] )}` " diff --git a/desk/src/components/desk/tickets/NewTicketDialog.vue b/desk/src/components/desk/tickets/NewTicketDialog.vue index 7a7ca79a2..893dfdcb1 100644 --- a/desk/src/components/desk/tickets/NewTicketDialog.vue +++ b/desk/src/components/desk/tickets/NewTicketDialog.vue @@ -19,7 +19,7 @@ url: 'helpdesk.extends.client.get_list', inputMap: (query) => { return { - doctype: 'Ticket Type', + doctype: 'HD Ticket Type', pluck: 'name', filters: [['name', 'like', `%${query}%`]], }; diff --git a/desk/src/components/desk/tickets/TicketSummary.vue b/desk/src/components/desk/tickets/TicketSummary.vue index 1ef8eca5a..95c547b13 100644 --- a/desk/src/components/desk/tickets/TicketSummary.vue +++ b/desk/src/components/desk/tickets/TicketSummary.vue @@ -6,21 +6,24 @@
-
#
+
{{ ticketName }}
- - {{ commentCount }} -
- + {{ conversationCount }} +
+ + {{ commentCount }}
diff --git a/desk/src/pages/auth/Login.vue b/desk/src/pages/auth/Login.vue index 1586b6d6d..29782e5b9 100644 --- a/desk/src/pages/auth/Login.vue +++ b/desk/src/pages/auth/Login.vue @@ -54,8 +54,8 @@ class="text-center text-base" :to="`${ this.$route.name === 'DeskLogin' - ? '/helpdesk' - : '/helpdesk' + ? '' + : '' }/signup`" >
Sign up for a new account
@@ -153,8 +153,8 @@ export default { } else { window.location.href = this.$route.name == "DeskLogin" - ? "/helpdesk/tickets" - : "/helpdesk/my-tickets" + ? "/tickets" + : "/my-tickets" } }, }, diff --git a/desk/src/pages/auth/VerifyAccount.vue b/desk/src/pages/auth/VerifyAccount.vue index 067d2cc8b..5d543a938 100644 --- a/desk/src/pages/auth/VerifyAccount.vue +++ b/desk/src/pages/auth/VerifyAccount.vue @@ -57,7 +57,7 @@ export default { url: "helpdesk.api.account.verify_and_create_account", onSuccess: async () => { await this.authStore.login(this.email, this.password) - this.$router.push("/helpdesk/my-tickets") + this.$router.push("/my-tickets") }, onError: () => {}, } diff --git a/desk/src/pages/common/kb/Article.vue b/desk/src/pages/common/kb/Article.vue index e7a48ad49..a0f9508a9 100644 --- a/desk/src/pages/common/kb/Article.vue +++ b/desk/src/pages/common/kb/Article.vue @@ -14,7 +14,7 @@ @discard=" () => { if (isNew) { - $router.push({ path: '/helpdesk/kb/articles' }); + $router.push({ path: '/kb/articles' }); } else { editMode = false; } @@ -280,7 +280,7 @@ export default { return { url: "frappe.client.insert", onSuccess: (doc) => { - this.$router.push(`/helpdesk/kb/articles/${doc.name}`); + this.$router.push(`/kb/articles/${doc.name}`); }, onError: (err) => { this.$toast({ diff --git a/desk/src/pages/desk/Contacts.vue b/desk/src/pages/desk/Contacts.vue index 415bb1447..dc46e8d7f 100644 --- a/desk/src/pages/desk/Contacts.vue +++ b/desk/src/pages/desk/Contacts.vue @@ -44,7 +44,7 @@ >