Добавление базовой иконки звонка к кастомному текстовому полю
Добрый день, коллеги!
Подскажите, пожалуйста, кто-нибудь сталкивался со следующим кейсом, что необходимо добавить базовую иконку звонка к кастомному текстовому полю (которое хранит номер телефона в определенном формате) с базовой реализацией звонка?
Возможно ли это реализовать и каким образом?
Где именно происходит добавление этой иконки к базовым полям, когда включена телефония? Можно ли каким-либо образом добавить и свое кастомоное поле в "список", чтобы базовая логика также добавляла эту иконку при включении интеграции с телефонией?
Скриншот с примером во вложении.
Заранее спасибо за любую помощь в решении данного кейса!
Нравится
В карточке контакте есть поля, проанализируйте схему ContactPageV2. Также есть код в детали Средства связи схема ContactCommunicationDetail.
Поля выводятся с помощью элемента PhoneEdit который отнаследован от BaseEdit. Коды элементов лежат в папке \Terrasoft.WebApp\Resources\ui\Terrasoft\controls\
Если включить debugmode можно увидеть коды этих элементов в консоли разработчика в Sources.
В карточке контакте есть поля, проанализируйте схему ContactPageV2. Также есть код в детали Средства связи схема ContactCommunicationDetail.
Поля выводятся с помощью элемента PhoneEdit который отнаследован от BaseEdit. Коды элементов лежат в папке \Terrasoft.WebApp\Resources\ui\Terrasoft\controls\
Если включить debugmode можно увидеть коды этих элементов в консоли разработчика в Sources.
Максим, на скриншоте видно миникарточку, но там кнопки звонка нет. Это нарисованный пример?
Евгений, тут, скорее, надо смотреть в строну реализации ContactCommunicationDetail и её родительскую схему BaseCommunicationDetail. Там задают iconTypeButtonConfig, указывая функцию getTypeImageConfig. Она задана с кнопками для сайта и почты в BaseCommunicationViewModel и дополнена кнопкой звонка в CTIBaseCommunicationViewModel. Там же в onLinkClick заданы обработчики нажатия для разных типов: открытие веб-страницы, запуск почтовой программы или звонок.
Поскольку тип у Вас будет всегда равен «телефон», а не храниться в отдельном поле, можно выкинуть эту и ей подобную логику проверок, оставив только содержимое ветви кода для типа-телефона:
var type = this.get("CommunicationType"); if (this.isPhoneType(type.value)) { ...
Вопрос доработки поля (только для почты) обсуждался ещё в этой теме.