Compare commits

...

2 Commits

Author SHA1 Message Date
Shariq Ansari
57a4d2067a fix: backport unbackport code
(cherry picked from commit 2a4a83ea6db84934a97c47d5ebcb3532ff3c7cc7)
2025-06-09 08:46:01 +00:00
Shariq Ansari
a4892f1918 fix: resolved conflicts
(cherry picked from commit c98beaee9c385ac26151845d765126d736b1ed40)

# Conflicts:
#	frontend/src/pages/Contact.vue
#	frontend/src/pages/Lead.vue
#	frontend/src/pages/MobileContact.vue
2025-06-09 08:46:01 +00:00
5 changed files with 59 additions and 10 deletions

View File

@ -10,7 +10,12 @@
<Badge v-if="callLog.isDirty" :label="'Not Saved'" theme="orange" /> <Badge v-if="callLog.isDirty" :label="'Not Saved'" theme="orange" />
</div> </div>
<div class="flex items-center gap-1"> <div class="flex items-center gap-1">
<Button v-if="isManager() && !isMobileView" variant="ghost" class="w-7" @click="openQuickEntryModal"> <Button
v-if="isManager() && !isMobileView"
variant="ghost"
class="w-7"
@click="openQuickEntryModal"
>
<EditIcon class="w-4 h-4" /> <EditIcon class="w-4 h-4" />
</Button> </Button>
<Button variant="ghost" class="w-7" @click="show = false"> <Button variant="ghost" class="w-7" @click="show = false">
@ -19,19 +24,28 @@
</div> </div>
</div> </div>
<div v-if="tabs.data"> <div v-if="tabs.data">
<FieldLayout :tabs="tabs.data" :data="_callLog" doctype="CRM Call Log" /> <FieldLayout
:tabs="tabs.data"
:data="callLog.doc"
doctype="CRM Call Log"
/>
<ErrorMessage class="mt-8" :message="error" /> <ErrorMessage class="mt-8" :message="error" />
</div> </div>
</div> </div>
<div class="px-4 pt-4 pb-7 sm:px-6"> <div class="px-4 pt-4 pb-7 sm:px-6">
<div class="space-y-2"> <div class="space-y-2">
<Button class="w-full" v-for="action in dialogOptions.actions" :key="action.label" v-bind="action" <Button
:label="__(action.label)" :loading="loading" /> class="w-full"
v-for="action in dialogOptions.actions"
:key="action.label"
v-bind="action"
:label="__(action.label)"
:loading="loading"
/>
</div> </div>
</div> </div>
</template> </template>
</Dialog> </Dialog>
<QuickEntryModal v-if="showQuickEntryModal" v-model="showQuickEntryModal" doctype="CRM Call Log" />
</template> </template>
<script setup> <script setup>
@ -54,7 +68,7 @@ const props = defineProps({
options: { options: {
type: Object, type: Object,
default: { default: {
afterInsert: () => { }, afterInsert: () => {},
}, },
}, },
}) })

View File

@ -9,7 +9,12 @@
</h3> </h3>
</div> </div>
<div class="flex items-center gap-1"> <div class="flex items-center gap-1">
<Button v-if="isManager() && !isMobileView" variant="ghost" class="w-7" @click="openQuickEntryModal"> <Button
v-if="isManager() && !isMobileView"
variant="ghost"
class="w-7"
@click="openQuickEntryModal"
>
<EditIcon class="w-4 h-4" /> <EditIcon class="w-4 h-4" />
</Button> </Button>
<Button variant="ghost" class="w-7" @click="show = false"> <Button variant="ghost" class="w-7" @click="show = false">
@ -27,7 +32,13 @@
</div> </div>
<div class="px-4 pt-4 pb-7 sm:px-6"> <div class="px-4 pt-4 pb-7 sm:px-6">
<div class="space-y-2"> <div class="space-y-2">
<Button class="w-full" variant="solid" :label="__('Create')" :loading="loading" @click="createOrganization" /> <Button
class="w-full"
variant="solid"
:label="__('Create')"
:loading="loading"
@click="createOrganization"
/>
</div> </div>
</div> </div>
</template> </template>
@ -60,7 +71,7 @@ const props = defineProps({
type: Object, type: Object,
default: { default: {
redirect: true, redirect: true,
afterInsert: () => { }, afterInsert: () => {},
}, },
}, },
}) })
@ -156,4 +167,4 @@ function openAddressModal(_address) {
} }
nextTick(() => (show.value = false)) nextTick(() => (show.value = false))
} }
</script> </script>

View File

@ -184,7 +184,11 @@ import PhoneIcon from '@/components/Icons/PhoneIcon.vue'
import CameraIcon from '@/components/Icons/CameraIcon.vue' import CameraIcon from '@/components/Icons/CameraIcon.vue'
import DealsIcon from '@/components/Icons/DealsIcon.vue' import DealsIcon from '@/components/Icons/DealsIcon.vue'
import DealsListView from '@/components/ListViews/DealsListView.vue' import DealsListView from '@/components/ListViews/DealsListView.vue'
<<<<<<< HEAD
import { formatDate, timeAgo } from '@/utils' import { formatDate, timeAgo } from '@/utils'
=======
import { formatDate, timeAgo, validateIsImageFile } from '@/utils'
>>>>>>> c98beae (fix: resolved conflicts)
import { showAddressModal, addressProps } from '@/composables/modals' import { showAddressModal, addressProps } from '@/composables/modals'
import { getView } from '@/utils/view' import { getView } from '@/utils/view'
import { getSettings } from '@/stores/settings' import { getSettings } from '@/stores/settings'

View File

@ -344,7 +344,16 @@ import SidePanelLayout from '@/components/SidePanelLayout.vue'
import FieldLayout from '@/components/FieldLayout/FieldLayout.vue' import FieldLayout from '@/components/FieldLayout/FieldLayout.vue'
import SLASection from '@/components/SLASection.vue' import SLASection from '@/components/SLASection.vue'
import CustomActions from '@/components/CustomActions.vue' import CustomActions from '@/components/CustomActions.vue'
<<<<<<< HEAD
import { openWebsite, setupCustomizations, copyToClipboard } from '@/utils' import { openWebsite, setupCustomizations, copyToClipboard } from '@/utils'
=======
import {
openWebsite,
setupCustomizations,
copyToClipboard,
validateIsImageFile,
} from '@/utils'
>>>>>>> c98beae (fix: resolved conflicts)
import { showQuickEntryModal, quickEntryProps } from '@/composables/modals' import { showQuickEntryModal, quickEntryProps } from '@/composables/modals'
import { getView } from '@/utils/view' import { getView } from '@/utils/view'
import { getSettings } from '@/stores/settings' import { getSettings } from '@/stores/settings'

View File

@ -11,7 +11,14 @@
</header> </header>
</LayoutHeader> </LayoutHeader>
<div v-if="contact.data" class="flex flex-col h-full overflow-hidden"> <div v-if="contact.data" class="flex flex-col h-full overflow-hidden">
<<<<<<< HEAD
<FileUploader @success="changeContactImage" :validateFile="validateFile"> <FileUploader @success="changeContactImage" :validateFile="validateFile">
=======
<FileUploader
@success="changeContactImage"
:validateFile="validateIsImageFile"
>
>>>>>>> c98beae (fix: resolved conflicts)
<template #default="{ openFileSelector, error }"> <template #default="{ openFileSelector, error }">
<div class="flex flex-col items-start justify-start gap-4 p-4"> <div class="flex flex-col items-start justify-start gap-4 p-4">
<div class="flex gap-4 items-center"> <div class="flex gap-4 items-center">
@ -167,7 +174,11 @@ import PhoneIcon from '@/components/Icons/PhoneIcon.vue'
import CameraIcon from '@/components/Icons/CameraIcon.vue' import CameraIcon from '@/components/Icons/CameraIcon.vue'
import DealsIcon from '@/components/Icons/DealsIcon.vue' import DealsIcon from '@/components/Icons/DealsIcon.vue'
import DealsListView from '@/components/ListViews/DealsListView.vue' import DealsListView from '@/components/ListViews/DealsListView.vue'
<<<<<<< HEAD
import { formatDate, timeAgo } from '@/utils' import { formatDate, timeAgo } from '@/utils'
=======
import { formatDate, timeAgo, validateIsImageFile } from '@/utils'
>>>>>>> c98beae (fix: resolved conflicts)
import { getView } from '@/utils/view' import { getView } from '@/utils/view'
import { showAddressModal, addressProps } from '@/composables/modals' import { showAddressModal, addressProps } from '@/composables/modals'
import { getSettings } from '@/stores/settings' import { getSettings } from '@/stores/settings'