From 7955c42c9f86d1e687fc4a1267f14512380a984c Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Tue, 30 Apr 2024 20:16:02 +0530 Subject: [PATCH 1/3] fix: added support & docs link in userdropdown menu --- .../src/components/Layouts/AppSidebar.vue | 10 ------ frontend/src/components/UserDropdown.vue | 34 +++++++++++++++---- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/frontend/src/components/Layouts/AppSidebar.vue b/frontend/src/components/Layouts/AppSidebar.vue index 94059457..d237f1b9 100644 --- a/frontend/src/components/Layouts/AppSidebar.vue +++ b/frontend/src/components/Layouts/AppSidebar.vue @@ -77,12 +77,6 @@
- diff --git a/frontend/src/components/UserDropdown.vue b/frontend/src/components/UserDropdown.vue index b58f7f85..d07130d6 100644 --- a/frontend/src/components/UserDropdown.vue +++ b/frontend/src/components/UserDropdown.vue @@ -67,14 +67,36 @@ const user = computed(() => getUser() || {}) let dropdownOptions = ref([ { - icon: 'corner-up-left', - label: computed(() => __('Switch to Desk')), - onClick: () => window.location.replace('/app'), + group: 'Manage', + hideLabel: true, + items: [ + { + icon: 'corner-up-left', + label: computed(() => __('Switch to Desk')), + onClick: () => window.location.replace('/app'), + }, + { + icon: 'life-buoy', + label: computed(() => __('Support')), + onClick: () => window.open('https://t.me/frappecrm', '_blank'), + }, + { + icon: 'book-open', + label: computed(() => __('Docs')), + onClick: () => window.open('https://docs.frappe.io/crm', '_blank'), + }, + ], }, { - icon: 'log-out', - label: computed(() => __('Log out')), - onClick: () => logout.submit(), + group: 'Logout', + hideLabel: true, + items: [ + { + icon: 'log-out', + label: computed(() => __('Log out')), + onClick: () => logout.submit(), + }, + ], }, ]) From 551a95140a859f7e76fe81db1ff3b926a440f272 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Tue, 30 Apr 2024 21:09:09 +0530 Subject: [PATCH 2/3] fix: add default lead/deal status on lead/deal modal --- frontend/src/components/Modals/DealModal.vue | 10 +++++++++- frontend/src/components/Modals/LeadModal.vue | 10 +++++++++- frontend/src/stores/statuses.js | 1 + 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/Modals/DealModal.vue b/frontend/src/components/Modals/DealModal.vue index d82a4b95..9d964d87 100644 --- a/frontend/src/components/Modals/DealModal.vue +++ b/frontend/src/components/Modals/DealModal.vue @@ -207,7 +207,7 @@ const sections = computed(() => { label: 'Status', name: 'status', type: 'select', - options: statusOptions('deal'), + options: dealStatuses.value, prefix: getDealStatus(deal.status).iconColorClass, }, { @@ -222,6 +222,14 @@ const sections = computed(() => { return fields }) +const dealStatuses = computed(() => { + let statuses = statusOptions('deal') + if (!deal.status) { + deal.status = statuses[0].value + } + return statuses +}) + function createDeal() { createResource({ url: 'crm.fcrm.doctype.crm_deal.crm_deal.create_deal', diff --git a/frontend/src/components/Modals/LeadModal.vue b/frontend/src/components/Modals/LeadModal.vue index 25d21224..b72056c0 100644 --- a/frontend/src/components/Modals/LeadModal.vue +++ b/frontend/src/components/Modals/LeadModal.vue @@ -158,7 +158,7 @@ const sections = computed(() => { label: 'Status', name: 'status', type: 'select', - options: statusOptions('lead'), + options: leadStatuses.value, prefix: getLeadStatus(lead.status).iconColorClass, }, { @@ -185,6 +185,14 @@ const createLead = createResource({ }, }) +const leadStatuses = computed(() => { + let statuses = statusOptions('lead') + if (!lead.status) { + lead.status = statuses[0].value + } + return statuses +}) + function createNewLead() { createLead.submit(lead, { validate() { diff --git a/frontend/src/stores/statuses.js b/frontend/src/stores/statuses.js index 8b306ec0..402c0d67 100644 --- a/frontend/src/stores/statuses.js +++ b/frontend/src/stores/statuses.js @@ -97,6 +97,7 @@ export const statusesStore = defineStore('crm-statuses', () => { for (const status in statusesByName) { options.push({ label: statusesByName[status].name, + value: statusesByName[status].name, icon: () => h(IndicatorIcon, { class: statusesByName[status].iconColorClass, From 21e1ab53845444827dd1473f7759a3c576ab2bd2 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Tue, 30 Apr 2024 21:14:11 +0530 Subject: [PATCH 3/3] fix: add loading state on button when lead is created --- frontend/src/components/Modals/LeadModal.vue | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/Modals/LeadModal.vue b/frontend/src/components/Modals/LeadModal.vue index b72056c0..ed92a0ef 100644 --- a/frontend/src/components/Modals/LeadModal.vue +++ b/frontend/src/components/Modals/LeadModal.vue @@ -12,7 +12,12 @@