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.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( ` ${frappe.utils.icon("call")} ` ) .find(".phone-btn") .click(() => { frappe.phone_call.handler(this.get_value(), this.frm); }); } } };