From 6eff3417c50731885c2b3191a1d8c46b22eaf0e2 Mon Sep 17 00:00:00 2001 From: Sabu Siyad Date: Tue, 4 Apr 2023 16:26:52 +0530 Subject: [PATCH 01/10] feat: impl vite icons (#1084) This allows to import SVGs directly without them being first loaded into a component --- desk/package.json | 3 +- desk/src/assets/icons/sort-arrow.svg | 3 + desk/src/pages/desk/Tickets.vue | 13 ++- desk/vite.config.js | 5 +- desk/yarn.lock | 130 ++++++++++++++++++++++++++- 5 files changed, 148 insertions(+), 6 deletions(-) create mode 100644 desk/src/assets/icons/sort-arrow.svg diff --git a/desk/package.json b/desk/package.json index 333255d4e..58ebe83bc 100644 --- a/desk/package.json +++ b/desk/package.json @@ -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/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/pages/desk/Tickets.vue b/desk/src/pages/desk/Tickets.vue index f96d608ac..e2f6975ee 100644 --- a/desk/src/pages/desk/Tickets.vue +++ b/desk/src/pages/desk/Tickets.vue @@ -37,7 +37,16 @@ iconLeft: 'list', class: 'text-gray-500 bg-gray-200 rounded-lg', }" - /> + > + +
@@ -204,6 +213,7 @@ import { useListFilters } from "@/composables/listFilters"; import { useTicketStatusStore } from "@/stores/ticketStatus"; import { useTicketPriorityStore } from "@/stores/ticketPriority"; import { useAuthStore } from "@/stores/auth"; +import IconSort from "@/assets/icons/sort-arrow.svg?component"; export default { name: "Tickets", @@ -214,6 +224,7 @@ export default { NewTicketDialog, PresetFilters, TicketSummary, + IconSort, }, inject: ["agents"], setup() { diff --git a/desk/vite.config.js b/desk/vite.config.js index 86ed19a0e..266378263 100644 --- a/desk/vite.config.js +++ b/desk/vite.config.js @@ -1,12 +1,13 @@ +import path from "path"; import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; -import path from "path"; +import svgLoader from "vite-svg-loader"; import { getProxyOptions } from "frappe-ui/src/utils/vite-dev-server"; import { webserver_port } from "../../../sites/common_site_config.json"; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [vue()], + plugins: [vue(), svgLoader()], server: { port: 8080, proxy: getProxyOptions({ port: webserver_port }), diff --git a/desk/yarn.lock b/desk/yarn.lock index 629afa7dd..7a5eb2e9d 100644 --- a/desk/yarn.lock +++ b/desk/yarn.lock @@ -466,6 +466,11 @@ "@tiptap/extension-bubble-menu" "^2.0.0-beta.220" "@tiptap/extension-floating-menu" "^2.0.0-beta.220" +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + "@types/object.omit@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/object.omit/-/object.omit-3.0.0.tgz#0d31e1208eac8fe2ad5c9499a1016a8273bbfafc" @@ -513,7 +518,7 @@ "@vue/compiler-core" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-sfc@3.2.47": +"@vue/compiler-sfc@3.2.47", "@vue/compiler-sfc@^3.2.20": version "3.2.47" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz#1bdc36f6cdc1643f72e2c397eb1a398f5004ad3d" integrity sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ== @@ -644,6 +649,11 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -701,6 +711,11 @@ color-name@^1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@^9.0.0: version "9.5.0" resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" @@ -716,11 +731,50 @@ crelt@^1.0.0: resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.5.tgz#57c0d52af8c859e354bace1883eb2e1eb182bb94" integrity sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA== +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + csstype@^2.6.8: version "2.6.21" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" @@ -772,6 +826,36 @@ dlv@^1.1.3: resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.1, domhandler@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" + integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.1" + echarts@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.4.1.tgz#d7f65a584d78beff62568d878b16151b3381811c" @@ -801,6 +885,11 @@ engine.io-parser@~5.0.3: resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== +entities@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" + integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== + entities@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" @@ -1076,6 +1165,16 @@ markdown-it@^13.0.1: mdurl "^1.0.1" uc.micro "^1.0.5" +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" @@ -1129,6 +1228,13 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + object-hash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" @@ -1498,7 +1604,7 @@ sortablejs@1.14.0: resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.14.0.tgz#6d2e17ccbdb25f464734df621d4f35d4ab35b3d8" integrity sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w== -source-map-js@^1.0.2: +source-map-js@^1.0.1, source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== @@ -1518,6 +1624,18 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svgo@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.0.2.tgz#5e99eeea42c68ee0dc46aa16da093838c262fe0a" + integrity sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.2.1" + csso "^5.0.5" + picocolors "^1.0.0" + tailwindcss@^3.0.12, tailwindcss@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.7.tgz#5936dd08c250b05180f0944500c01dce19188c07" @@ -1606,6 +1724,14 @@ vee-validate@^4.8.2: dependencies: "@vue/devtools-api" "^6.5.0" +vite-svg-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/vite-svg-loader/-/vite-svg-loader-4.0.0.tgz#1cec4337dba3c23ab13bcabb111896e251b047ac" + integrity sha512-0MMf1yzzSYlV4MGePsLVAOqXsbF5IVxbn4EEzqRnWxTQl8BJg/cfwIzfQNmNQxZp5XXwd4kyRKF1LytuHZTnqA== + dependencies: + "@vue/compiler-sfc" "^3.2.20" + svgo "^3.0.2" + vite@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/vite/-/vite-4.1.4.tgz#170d93bcff97e0ebc09764c053eebe130bfe6ca0" From 0eefcde190b9f20f4500fe9ec80a471bc00779bd Mon Sep 17 00:00:00 2001 From: Sabu Siyad Date: Tue, 4 Apr 2023 16:57:25 +0530 Subject: [PATCH 02/10] feat: update sidebar icons --- desk/src/assets/icons/contact.svg | 10 ++++++++++ desk/src/assets/icons/customer.svg | 10 ++++++++++ desk/src/assets/icons/dashboard.svg | 10 ++++++++++ desk/src/assets/icons/knowledge-base.svg | 10 ++++++++++ desk/src/assets/icons/settings.svg | 10 ++++++++++ desk/src/assets/icons/ticket.svg | 3 +++ desk/src/components/desk/SideBarMenu.vue | 23 ++++++++++++++--------- 7 files changed, 67 insertions(+), 9 deletions(-) create mode 100644 desk/src/assets/icons/contact.svg create mode 100644 desk/src/assets/icons/customer.svg create mode 100644 desk/src/assets/icons/dashboard.svg create mode 100644 desk/src/assets/icons/knowledge-base.svg create mode 100644 desk/src/assets/icons/settings.svg create mode 100644 desk/src/assets/icons/ticket.svg 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/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/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/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..933768b11 100644 --- a/desk/src/components/desk/SideBarMenu.vue +++ b/desk/src/components/desk/SideBarMenu.vue @@ -40,7 +40,7 @@ }" @click="$router.push(option.to)" > - +
{{ option.label }}
@@ -59,7 +59,7 @@ }" @click="$router.push(option.to)" > - +
{{ option.label }}
@@ -99,8 +99,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,28 +130,28 @@ const keyboardShortcuts = [ const menuOptions = [ { label: "Dashboard", - icon: "dashboard", + icon_: IconDashboard, to: { path: "/helpdesk/dashboard", }, }, { label: "Tickets", - icon: "ticket", + icon_: IconTicket, to: { path: "/helpdesk/tickets", }, }, { label: "Customers", - icon: "customer", + icon_: IconCustomer, to: { path: "/helpdesk/customers", }, }, { label: "Contacts", - icon: "customers", + icon_: IconContact, to: { path: "/helpdesk/contacts", }, @@ -156,14 +161,14 @@ const menuOptions = [ const footerOptions = [ { label: "Knowledge Base", - icon: "kb-articles", + icon_: IconKnowledgeBase, to: { path: "/helpdesk/kb", }, }, { label: "Settings", - icon: "settings", + icon_: IconSettings, to: { path: "/helpdesk/settings", }, From 29e2493500a17dae0157b7b0ef49bf0bbcbf797e Mon Sep 17 00:00:00 2001 From: Sabu Siyad Date: Tue, 4 Apr 2023 18:17:18 +0530 Subject: [PATCH 03/10] feat: ticket summary icons --- desk/src/assets/icons/comment.svg | 3 +++ desk/src/assets/icons/hash.svg | 3 +++ desk/src/assets/icons/mail.svg | 3 +++ .../src/components/desk/tickets/TicketSummary.vue | 15 +++++++++------ 4 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 desk/src/assets/icons/comment.svg create mode 100644 desk/src/assets/icons/hash.svg create mode 100644 desk/src/assets/icons/mail.svg 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/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/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/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/router.js b/desk/src/router.js index 70194feb9..4c6f0dac7 100644 --- a/desk/src/router.js +++ b/desk/src/router.js @@ -8,9 +8,7 @@ const routes = [ children: [ { path: "", - redirect: () => { - return { path: "/helpdesk/my-tickets" }; - }, + component: () => import("@/pages/WebsiteRoot.vue"), }, { path: "login", @@ -48,7 +46,7 @@ const routes = [ children: [ { path: "", - name: "ProtalTickets", + name: "PortalTickets", component: () => import("@/pages/portal/ticketing/Tickets.vue"), }, { From d1e033cc17a8fbf49b629495247b5e2223457ffe Mon Sep 17 00:00:00 2001 From: Sabu Siyad Date: Wed, 5 Apr 2023 21:43:13 +0530 Subject: [PATCH 07/10] refactor: clean up router (#1091) --- desk/package.json | 2 +- desk/src/components/desk/SideBarMenu.vue | 14 +- .../desk/customers/CustomerInfo.vue | 4 +- .../global/AddNewCannedResponsesDialog.vue | 2 +- .../desk/global/AddNewTicketTypeDialog.vue | 2 +- .../desk/global/NewCustomerDialog.vue | 2 +- .../src/components/desk/kb/ArticleDetails.vue | 2 +- .../desk/settings/SettingsSideBarMenu.vue | 12 +- .../desk/settings/agents/AgentListItem.vue | 2 +- .../desk/settings/agents/AgentRelatedInfo.vue | 2 +- .../canned_responses/CannedResponseInfo.vue | 2 +- .../CannedResponseListItem.vue | 2 +- .../desk/settings/emails/EmailListItem.vue | 2 +- .../settings/policies/SlaPolicyListItem.vue | 2 +- .../desk/settings/teams/TeamInfo.vue | 6 +- .../settings/ticket_types/TicketTypeInfo.vue | 6 +- desk/src/components/desk/ticket/InfoPanel.vue | 4 +- .../desk/tickets/NewTicketDialog.vue | 2 +- desk/src/components/global/kb/ArticleCard.vue | 2 +- .../components/global/kb/ArticleMiniList.vue | 2 +- .../components/global/kb/EditableBlock.vue | 2 +- .../components/global/kb/LayoutSwitcher.vue | 4 +- .../components/global/kb/SearchSection.vue | 2 +- .../global/ticket_list_item/Subject.vue | 2 +- desk/src/components/portal/NavBar.vue | 12 +- .../portal/ticket/Conversations.vue | 2 +- .../components/portal/tickets/TicketList.vue | 2 +- desk/src/pages/auth/Login.vue | 8 +- desk/src/pages/auth/VerifyAccount.vue | 2 +- desk/src/pages/common/kb/Article.vue | 4 +- desk/src/pages/desk/Contacts.vue | 2 +- desk/src/pages/desk/Customer.vue | 2 +- desk/src/pages/desk/Customers.vue | 2 +- desk/src/pages/desk/Desk.vue | 2 +- desk/src/pages/desk/Ticket.vue | 2 +- desk/src/pages/desk/kb/Articles.vue | 6 +- desk/src/pages/desk/settings/agent/Agents.vue | 2 +- .../canned_response/CannedResponses.vue | 2 +- .../desk/settings/email/EmailAccount.vue | 2 +- desk/src/pages/desk/settings/email/Emails.vue | 4 +- .../pages/desk/settings/sla/SlaPolicies.vue | 4 +- desk/src/pages/desk/settings/team/Teams.vue | 4 +- .../desk/settings/ticket_type/TicketTypes.vue | 4 +- .../pages/portal/ticketing/Impersonate.vue | 4 +- desk/src/pages/portal/ticketing/Ticket.vue | 2 +- desk/src/pages/portal/ticketing/Ticketing.vue | 4 +- desk/src/router.js | 618 +++++++++--------- desk/vite.config.js | 2 +- helpdesk/api/ticket.py | 4 +- helpdesk/hooks.py | 22 +- package.json | 7 +- 51 files changed, 398 insertions(+), 417 deletions(-) diff --git a/desk/package.json b/desk/package.json index 58ebe83bc..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": { diff --git a/desk/src/components/desk/SideBarMenu.vue b/desk/src/components/desk/SideBarMenu.vue index 933768b11..2edc5fa0d 100644 --- a/desk/src/components/desk/SideBarMenu.vue +++ b/desk/src/components/desk/SideBarMenu.vue @@ -132,28 +132,28 @@ const menuOptions = [ label: "Dashboard", icon_: IconDashboard, to: { - path: "/helpdesk/dashboard", + name: "Dashboard", }, }, { label: "Tickets", icon_: IconTicket, to: { - path: "/helpdesk/tickets", + name: "DeskTickets", }, }, { label: "Customers", icon_: IconCustomer, to: { - path: "/helpdesk/customers", + name: "Customers", }, }, { label: "Contacts", icon_: IconContact, to: { - path: "/helpdesk/contacts", + name: "Contacts", }, }, ]; @@ -163,14 +163,14 @@ const footerOptions = [ label: "Knowledge Base", icon_: IconKnowledgeBase, to: { - path: "/helpdesk/kb", + name: "DeskKBHome", }, }, { label: "Settings", icon_: IconSettings, to: { - path: "/helpdesk/settings", + name: "Settings", }, }, ]; @@ -187,7 +187,7 @@ const profileSettings = [ label: "Customer portal", icon: "users", handler: () => { - window.open("/helpdesk/my-tickets", "_blank"); + window.open("/my-tickets", "_blank"); }, }, { 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/global/kb/ArticleCard.vue b/desk/src/components/global/kb/ArticleCard.vue index 473c079ae..a7a4d6d92 100644 --- a/desk/src/components/global/kb/ArticleCard.vue +++ b/desk/src/components/global/kb/ArticleCard.vue @@ -1,5 +1,5 @@