Вопрос

Добавление базовой иконки звонка к кастомному текстовому полю

Добрый день, коллеги!



Подскажите, пожалуйста, кто-нибудь сталкивался со следующим кейсом, что необходимо добавить базовую иконку звонка к кастомному текстовому полю (которое хранит номер телефона в определенном формате) с базовой реализацией звонка?



Возможно ли это реализовать и каким образом?



Где именно происходит добавление этой иконки к базовым полям, когда включена телефония? Можно ли каким-либо образом добавить и свое кастомоное поле в "список", чтобы базовая логика также добавляла эту иконку при включении интеграции с телефонией?



Скриншот с примером во вложении.



Заранее спасибо за любую помощь в решении данного кейса!

Прикрепленные файлы

Нравится

2 комментария
Лучший ответ

В карточке контакте есть поля, проанализируйте схему 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)) {
...

Вопрос доработки поля (только для почты) обсуждался ещё в этой теме.

Показать все комментарии