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(` -
-
${__('Unknown Number')}: ${this.caller_number}
- - ${__('Create New Contact')} - -
- `); + 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) {