brotherton-erpnext/erpnext/public/js/telephony.js
Suraj Shetty afaa85fbde
fix(telephony): Check if setup_phone method exists
We are just overriding Data control. 

This fails if other field type like "Small Text" has option set as "Phone"
2023-06-14 15:54:27 +05:30

34 lines
969 B
JavaScript

frappe.ui.form.ControlData = class ControlData extends frappe.ui.form.ControlData {
make_input() {
super.make_input();
if (this.df.options == 'Phone') {
this.setup_phone();
}
if (this.frm && this.frm.fields_dict) {
Object.values(this.frm.fields_dict).forEach(function(field) {
if (field.df.read_only === 1 && field.df.options === 'Phone'
&& field.disp_area.style[0] != 'display' && !field.has_icon) {
field.setup_phone && field.setup_phone();
field.has_icon = true;
}
});
}
}
setup_phone() {
if (frappe.phone_call.handler) {
let control = this.df.read_only ? '.control-value' : '.control-input';
this.$wrapper.find(control)
.append(`
<span class="phone-btn">
<a class="btn-open no-decoration" title="${__('Make a call')}">
${frappe.utils.icon('call')}
</span>
`)
.find('.phone-btn')
.click(() => {
frappe.phone_call.handler(this.get_value(), this.frm);
});
}
}
};