fix: removed send button in whatsapp box
This commit is contained in:
parent
24a0f7a9b4
commit
332bffdf9f
@ -1,5 +1,6 @@
|
|||||||
import frappe
|
import frappe
|
||||||
import json
|
import json
|
||||||
|
from frappe import _
|
||||||
|
|
||||||
def validate(doc, method):
|
def validate(doc, method):
|
||||||
if doc.type == "Incoming" and doc.get("from"):
|
if doc.type == "Incoming" and doc.get("from"):
|
||||||
@ -112,6 +113,9 @@ def get_whatsapp_messages(reference_doctype, reference_name):
|
|||||||
if reacted_message:
|
if reacted_message:
|
||||||
reacted_message['reaction'] = reaction_message['message']
|
reacted_message['reaction'] = reaction_message['message']
|
||||||
|
|
||||||
|
for message in messages:
|
||||||
|
from_name = get_from_name(message) if message['from'] else _('You')
|
||||||
|
message['from_name'] = from_name
|
||||||
# Filter messages to get only replies
|
# Filter messages to get only replies
|
||||||
reply_messages = [message for message in messages if message['is_reply']]
|
reply_messages = [message for message in messages if message['is_reply']]
|
||||||
|
|
||||||
@ -121,15 +125,7 @@ def get_whatsapp_messages(reference_doctype, reference_name):
|
|||||||
replied_message = next((m for m in messages if m['message_id'] == reply_message['reply_to_message_id']), None)
|
replied_message = next((m for m in messages if m['message_id'] == reply_message['reply_to_message_id']), None)
|
||||||
|
|
||||||
# If the replied message is found, add the reply details to the reply message
|
# If the replied message is found, add the reply details to the reply message
|
||||||
doc = frappe.get_doc(reply_message['reference_doctype'], reply_message['reference_name'])
|
from_name = get_from_name(reply_message) if replied_message['from'] else _('You')
|
||||||
from_name = replied_message['from']
|
|
||||||
if doc.get("contacts"):
|
|
||||||
for c in doc.get("contacts"):
|
|
||||||
if c.is_primary:
|
|
||||||
from_name = c.full_name or c.mobile_no
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
from_name = doc.get("first_name") + " " + doc.get("last_name")
|
|
||||||
if replied_message:
|
if replied_message:
|
||||||
message = replied_message['message']
|
message = replied_message['message']
|
||||||
if replied_message['message_type'] == 'Template':
|
if replied_message['message_type'] == 'Template':
|
||||||
@ -202,4 +198,19 @@ def parse_template_parameters(string, parameters):
|
|||||||
placeholder = "{{" + str(i) + "}}"
|
placeholder = "{{" + str(i) + "}}"
|
||||||
string = string.replace(placeholder, parameter)
|
string = string.replace(placeholder, parameter)
|
||||||
|
|
||||||
return string
|
return string
|
||||||
|
|
||||||
|
def get_from_name(message):
|
||||||
|
doc = frappe.get_doc(message['reference_doctype'], message['reference_name'])
|
||||||
|
from_name = ''
|
||||||
|
if message['reference_doctype'] == "CRM Deal":
|
||||||
|
if doc.get("contacts"):
|
||||||
|
for c in doc.get("contacts"):
|
||||||
|
if c.is_primary:
|
||||||
|
from_name = c.full_name or c.mobile_no
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
from_name = doc.get("lead_name")
|
||||||
|
else:
|
||||||
|
from_name = doc.get("first_name") + " " + doc.get("last_name")
|
||||||
|
return from_name
|
||||||
@ -153,7 +153,7 @@
|
|||||||
>
|
>
|
||||||
<Button
|
<Button
|
||||||
@click="() => (reaction = true) && togglePopover()"
|
@click="() => (reaction = true) && togglePopover()"
|
||||||
class="rounded-full"
|
class="rounded-full !size-6 mt-0.5"
|
||||||
>
|
>
|
||||||
<ReactIcon class="text-gray-400" />
|
<ReactIcon class="text-gray-400" />
|
||||||
</Button>
|
</Button>
|
||||||
@ -233,7 +233,10 @@ function messageOptions(message) {
|
|||||||
label: 'Reply',
|
label: 'Reply',
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
replyMode.value = true
|
replyMode.value = true
|
||||||
reply.value = message
|
reply.value = {
|
||||||
|
...message,
|
||||||
|
message: formatWhatsAppMessage(message.message)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
|
|||||||
@ -1,11 +1,22 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="reply?.message" class="flex justify-around items-center gap-2 px-10 pt-2">
|
<div
|
||||||
|
v-if="reply?.message"
|
||||||
|
class="flex items-center justify-around gap-2 px-10 pt-2"
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
class="rounded-md flex-1 border-0 border-l-4 border-green-500 bg-gray-50 px-2 py-4 ml-13"
|
class="mb-1 ml-13 flex-1 cursor-pointer rounded border-0 border-l-4 border-green-500 bg-gray-100 p-2 text-base text-gray-600"
|
||||||
|
:class="reply.type == 'Incoming' ? 'border-green-500' : 'border-blue-400'"
|
||||||
>
|
>
|
||||||
{{ reply.message }}
|
<div
|
||||||
|
class="mb-1 text-sm font-bold"
|
||||||
|
:class="reply.type == 'Incoming' ? 'text-green-500' : 'text-blue-400'"
|
||||||
|
>
|
||||||
|
{{ reply.from_name || __('You') }}
|
||||||
|
</div>
|
||||||
|
<div class="max-h-12 overflow-hidden" v-html="reply.message" />
|
||||||
</div>
|
</div>
|
||||||
<Button class="mx-[11px]" variant="ghost" icon="x" @click="reply = {}" />
|
|
||||||
|
<Button variant="ghost" icon="x" @click="reply = {}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-end gap-2 px-10 py-2.5">
|
<div class="flex items-end gap-2 px-10 py-2.5">
|
||||||
<div class="flex h-8 items-center gap-2">
|
<div class="flex h-8 items-center gap-2">
|
||||||
@ -51,15 +62,6 @@
|
|||||||
@blur="rows = 1"
|
@blur="rows = 1"
|
||||||
@keydown.enter="(e) => sendTextMessage(e)"
|
@keydown.enter="(e) => sendTextMessage(e)"
|
||||||
/>
|
/>
|
||||||
<div class="flex justify-end gap-2">
|
|
||||||
<Button
|
|
||||||
class="min-h-8"
|
|
||||||
variant="solid"
|
|
||||||
:label="__('Send')"
|
|
||||||
@click="sendWhatsAppMessage"
|
|
||||||
:disabled="isEmpty"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -85,10 +87,6 @@ const content = ref('')
|
|||||||
const placeholder = ref(__('Type your message here...'))
|
const placeholder = ref(__('Type your message here...'))
|
||||||
const fileType = ref('')
|
const fileType = ref('')
|
||||||
|
|
||||||
const isEmpty = computed(() => {
|
|
||||||
return !content.value || content.value === '<p></p>'
|
|
||||||
})
|
|
||||||
|
|
||||||
function show() {
|
function show() {
|
||||||
nextTick(() => textarea.value.$el.focus())
|
nextTick(() => textarea.value.$el.focus())
|
||||||
}
|
}
|
||||||
@ -158,7 +156,7 @@ function uploadOptions(openFileSelector) {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(() => reply.value, (value) => {
|
watch(reply, (value) => {
|
||||||
if (value?.message) {
|
if (value?.message) {
|
||||||
show()
|
show()
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user