From a716bdf0da35f36df652b2846a3b6a4c5bfad6e0 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Wed, 15 Jan 2025 14:59:10 +0530 Subject: [PATCH] fix: created exotel call ui --- crm/integrations/exotel/handler.py | 8 +- frappe-ui | 2 +- frontend/src/components/Icons/AvatarIcon.vue | 17 + frontend/src/components/Icons/NoteIcon.vue | 3 +- frontend/src/components/Layouts/AppHeader.vue | 4 +- .../src/components/Mobile/MobileAppHeader.vue | 4 +- .../src/components/{ => Telephony}/CallUI.vue | 0 .../src/components/Telephony/ExotelCallUI.vue | 306 ++++++++++++++++++ frontend/src/pages/Notes.vue | 2 +- 9 files changed, 339 insertions(+), 7 deletions(-) create mode 100644 frontend/src/components/Icons/AvatarIcon.vue rename frontend/src/components/{ => Telephony}/CallUI.vue (100%) create mode 100644 frontend/src/components/Telephony/ExotelCallUI.vue diff --git a/crm/integrations/exotel/handler.py b/crm/integrations/exotel/handler.py index 9abf24ab..4375f0a7 100644 --- a/crm/integrations/exotel/handler.py +++ b/crm/integrations/exotel/handler.py @@ -28,6 +28,7 @@ def handle_request(**kwargs): return call_payload = kwargs + frappe.publish_realtime("exotel_call", call_payload) status = call_payload.get("Status") if status == "free": @@ -56,11 +57,12 @@ def handle_request(**kwargs): # Outgoing Call @frappe.whitelist() -def make_a_call(from_number, to_number, caller_id=None, link_to_document=None): +def make_a_call(to_number, from_number=None, caller_id=None, link_to_document=None): if not is_integration_enabled(): frappe.throw(_("Please setup Exotel intergration"), title=_("Integration Not Enabled")) endpoint = get_exotel_endpoint("Calls/connect.json?details=true") + if not from_number: from_number = frappe.get_value("CRM Exotel Agent", {"user": frappe.session.user}, "mobile_no") @@ -91,8 +93,10 @@ def make_a_call(from_number, to_number, caller_id=None, link_to_document=None): else: res = response.json() call_payload = res.get("Call", {}) + if link_to_document: link_to_document = json.loads(link_to_document) + create_call_log( call_id=call_payload.get("Sid"), from_number=call_payload.get("From"), @@ -105,7 +109,7 @@ def make_a_call(from_number, to_number, caller_id=None, link_to_document=None): return response.json() -def get_exotel_endpoint(action): +def get_exotel_endpoint(action=None): settings = get_exotel_settings() return "https://{api_key}:{api_token}@api.exotel.com/v1/Accounts/{sid}/{action}".format( api_key=settings.api_key, diff --git a/frappe-ui b/frappe-ui index d82b3a12..99f0b86f 160000 --- a/frappe-ui +++ b/frappe-ui @@ -1 +1 @@ -Subproject commit d82b3a12eeb6cb9e83375550508b462ce5cfdaf2 +Subproject commit 99f0b86f15e094b95c32e87494e003c974b4f0df diff --git a/frontend/src/components/Icons/AvatarIcon.vue b/frontend/src/components/Icons/AvatarIcon.vue new file mode 100644 index 00000000..d1331ec6 --- /dev/null +++ b/frontend/src/components/Icons/AvatarIcon.vue @@ -0,0 +1,17 @@ + diff --git a/frontend/src/components/Icons/NoteIcon.vue b/frontend/src/components/Icons/NoteIcon.vue index 2bbca63f..38fb47ca 100644 --- a/frontend/src/components/Icons/NoteIcon.vue +++ b/frontend/src/components/Icons/NoteIcon.vue @@ -9,8 +9,9 @@ diff --git a/frontend/src/components/Layouts/AppHeader.vue b/frontend/src/components/Layouts/AppHeader.vue index 00a04369..b1b72c35 100644 --- a/frontend/src/components/Layouts/AppHeader.vue +++ b/frontend/src/components/Layouts/AppHeader.vue @@ -2,11 +2,13 @@
+
diff --git a/frontend/src/components/Mobile/MobileAppHeader.vue b/frontend/src/components/Mobile/MobileAppHeader.vue index de564def..b2c6e354 100644 --- a/frontend/src/components/Mobile/MobileAppHeader.vue +++ b/frontend/src/components/Mobile/MobileAppHeader.vue @@ -12,10 +12,12 @@
+ diff --git a/frontend/src/components/CallUI.vue b/frontend/src/components/Telephony/CallUI.vue similarity index 100% rename from frontend/src/components/CallUI.vue rename to frontend/src/components/Telephony/CallUI.vue diff --git a/frontend/src/components/Telephony/ExotelCallUI.vue b/frontend/src/components/Telephony/ExotelCallUI.vue new file mode 100644 index 00000000..b4363c36 --- /dev/null +++ b/frontend/src/components/Telephony/ExotelCallUI.vue @@ -0,0 +1,306 @@ + + diff --git a/frontend/src/pages/Notes.vue b/frontend/src/pages/Notes.vue index 58f39dec..e350296a 100644 --- a/frontend/src/pages/Notes.vue +++ b/frontend/src/pages/Notes.vue @@ -55,7 +55,7 @@ v-if="note.content" :content="note.content" :editable="false" - editor-class="!prose-sm max-w-none !text-sm text-ink-gray-5 focus:outline-none" + editor-class="prose-sm text-sm max-w-none text-ink-gray-5 focus:outline-none" class="flex-1 overflow-hidden" />