diff --git a/erpnext/public/js/call_popup/call_popup.js b/erpnext/public/js/call_popup/call_popup.js
index 4fd3a5539f..960f00515c 100644
--- a/erpnext/public/js/call_popup/call_popup.js
+++ b/erpnext/public/js/call_popup/call_popup.js
@@ -56,7 +56,7 @@ class CallPopup {
this.make_caller_info_section();
this.dialog.get_close_btn().show();
this.dialog.$body.addClass('call-popup');
- this.dialog.set_secondary_action(this.close_modal);
+ this.dialog.set_secondary_action(this.close_modal.bind(this));
frappe.utils.play_sound("incoming-call");
this.dialog.show();
}
@@ -70,35 +70,54 @@ class CallPopup {
wrapper.empty();
const contact = this.contact = contact_doc;
if (!contact) {
- wrapper.append(`
-
- `);
+ this.setup_unknown_caller(wrapper);
} else {
- const contact_name = frappe.utils.get_form_link('Contact', contact.name, true);
- const link = contact.links ? contact.links[0] : null;
- let contact_link = link ? frappe.utils.get_form_link(link.link_doctype, link.link_name, true): '';
- wrapper.append(`
-
- ${frappe.avatar(null, 'avatar-xl', contact.name, contact.image)}
-
-
${contact_name}
-
${contact.mobile_no || ''}
-
${contact.phone_no || ''}
- ${contact_link}
-
-
- `);
+ this.setup_known_caller(wrapper);
this.set_call_status();
this.make_last_interaction_section();
}
});
}
+ setup_unknown_caller(wrapper) {
+ wrapper.append(`
+
+ ${__('Unknown Number')}: ${this.caller_number}
+
+
+ `).find('button').click(
+ () => frappe.set_route(`Form/Contact/New Contact?phone=${this.caller_number}`)
+ );
+ }
+
+ setup_known_caller(wrapper) {
+ const contact = this.contact;
+ const contact_name = frappe.utils.get_form_link('Contact', contact.name, true);
+ const links = contact.links ? contact.links : [];
+
+ let contact_links = '';
+
+ links.forEach(link => {
+ contact_links += `${link.link_doctype}: ${frappe.utils.get_form_link(link.link_doctype, link.link_name, true)}
`;
+ });
+ wrapper.append(`
+
+ ${frappe.avatar(null, 'avatar-xl', contact.name, contact.image)}
+
+
${contact_name}
+
${contact.mobile_no || ''}
+
${contact.phone_no || ''}
+ ${contact_links}
+
+
+ `);
+ }
+
set_indicator(color, blink=false) {
let classes = `indicator ${color} ${blink ? 'blink': ''}`;
this.dialog.header.find('.indicator').attr('class', classes);
@@ -133,8 +152,8 @@ class CallPopup {
}
close_modal() {
- delete erpnext.call_popup;
this.dialog.hide();
+ delete erpnext.call_popup;
}
call_disconnected(call_log) {