From 8f0e8f3f52f1e489bb7aa37f74a7b7017bc3b3be Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Sun, 7 Sep 2025 18:50:43 +0530 Subject: [PATCH] fix: update organization logo handling and add beforeFieldChange functionality to rename organization (cherry picked from commit 1b7af2096f6bfc18094ce727e3e43754c279e51b) --- frontend/src/pages/Organization.vue | 42 +++++++++++++++++++---------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/frontend/src/pages/Organization.vue b/frontend/src/pages/Organization.vue index e00b132c..4a086699 100644 --- a/frontend/src/pages/Organization.vue +++ b/frontend/src/pages/Organization.vue @@ -30,14 +30,14 @@ :image="organization.doc.organization_logo" /> @@ -180,6 +181,7 @@ import WebsiteIcon from '@/components/Icons/WebsiteIcon.vue' import CameraIcon from '@/components/Icons/CameraIcon.vue' import DealsIcon from '@/components/Icons/DealsIcon.vue' import ContactsIcon from '@/components/Icons/ContactsIcon.vue' +import DeleteLinkedDocModal from '@/components/DeleteLinkedDocModal.vue' import { showAddressModal, addressProps } from '@/composables/modals' import { useDocument } from '@/data/document' import { getSettings } from '@/stores/settings' @@ -189,21 +191,19 @@ import { statusesStore } from '@/stores/statuses' import { getView } from '@/utils/view' import { formatDate, timeAgo, validateIsImageFile } from '@/utils' import { - Tooltip, Breadcrumbs, Avatar, FileUploader, Dropdown, Tabs, - call, createListResource, usePageMeta, createResource, toast, + call, } from 'frappe-ui' import { h, computed, ref } from 'vue' -import { useRoute } from 'vue-router' -import DeleteLinkedDocModal from '@/components/DeleteLinkedDocModal.vue' +import { useRoute, useRouter } from 'vue-router' const props = defineProps({ organizationId: { @@ -218,6 +218,7 @@ const { getDealStatus } = statusesStore() const { doctypeMeta } = getMeta('CRM Organization') const route = useRoute() +const router = useRouter() const errorTitle = ref('') const errorMessage = ref('') @@ -277,14 +278,27 @@ async function deleteOrganization() { showDeleteLinkedDocModal.value = true } -async function changeOrganizationImage(file) { - await call('frappe.client.set_value', { - doctype: 'CRM Organization', - name: props.organizationId, - fieldname: 'organization_logo', - value: file?.file_url || '', +function changeOrganizationImage(file) { + organization.setValue.submit({ + organization_logo: file?.file_url || null, }) - organization.reload() +} + +function beforeFieldChange(data) { + if (data?.hasOwnProperty('organization_name')) { + call('frappe.client.rename_doc', { + doctype: 'CRM Organization', + old_name: props.organizationId, + new_name: data.organization_name, + }).then(() => { + router.push({ + name: 'Organization', + params: { organizationId: data.organization_name }, + }) + }) + } else { + organization.save.submit() + } } function website(url) {