mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-16 03:29:16 +00:00
feat: Open modal in realtime for incoming call
This commit is contained in:
@@ -2,8 +2,10 @@ import frappe
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_contact_doc(phone_number):
|
def get_contact_doc(phone_number):
|
||||||
contacts = frappe.get_all('Contact', filters={
|
phone_number = phone_number[-10:]
|
||||||
'phone': phone_number
|
contacts = frappe.get_all('Contact', or_filters={
|
||||||
|
'phone': ['like', '%{}%'.format(phone_number)],
|
||||||
|
'mobile_no': ['like', '%{}%'.format(phone_number)]
|
||||||
}, fields=['*'])
|
}, fields=['*'])
|
||||||
|
|
||||||
if contacts:
|
if contacts:
|
||||||
|
|||||||
12
erpnext/crm/call_summary/exotel_call_handler.py
Normal file
12
erpnext/crm/call_summary/exotel_call_handler.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import frappe
|
||||||
|
|
||||||
|
@frappe.whitelist(allow_guest=True)
|
||||||
|
def handle_request(*args, **kwargs):
|
||||||
|
r = frappe.request
|
||||||
|
|
||||||
|
payload = r.get_data()
|
||||||
|
|
||||||
|
print(r.args.to_dict())
|
||||||
|
print(payload)
|
||||||
|
|
||||||
|
frappe.publish_realtime('incoming_call', r.args.to_dict())
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
frappe.call_summary_dialog = class {
|
class CallSummaryDialog {
|
||||||
constructor(opts) {
|
constructor(opts) {
|
||||||
this.number = '+91234444444';
|
this.number = opts.number;
|
||||||
this.make();
|
this.make();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -15,10 +15,18 @@ frappe.call_summary_dialog = class {
|
|||||||
if (!res) {
|
if (!res) {
|
||||||
this.$modal_body.html('Unknown Contact');
|
this.$modal_body.html('Unknown Contact');
|
||||||
} else {
|
} else {
|
||||||
this.$modal_body.html(`${res.first_name}`);
|
this.$modal_body.append(`${frappe.utils.get_form_link('Contact', res.name, true)}`)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
d.show();
|
d.show();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
};
|
$(document).on('app_ready', function() {
|
||||||
|
frappe.realtime.on('incoming_call', data => {
|
||||||
|
const number = data.CallFrom;
|
||||||
|
frappe.call_summary_dialog = new CallSummaryDialog({
|
||||||
|
number
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user