Добрый день.
1. Нужно сделать такую фичу: Есть текстовое поле в объекте, в нем будет записан номер телефона. Нужно добавить возможность при клике на это поле чтобы к номеру который записан, поставился префикс(сам префикс нужно подставить из значения справочника, которое указано в этой же записи в объекте и чтобы пошел вызов уже на телефонию с номером и префиком. То есть нужно сделать поле типа https://prnt.sc/674k8tmq1urH и возможность склеивать с префиксом. Какие стили нужно добавить на поле с номером телефона, чтобы в нем появилась возможность звонка? И какой метод, чтобы склеивать номер после клика на звонок? Есть пример документации или реализации?
2. Такая же задача, только для миникарточки клиента https://prnt.sc/sjPhFjMk58Jm Какой метод и схему нужно переопределить, чтобы добавить в миникарточку возможность подставить в номер префикс и отправить запрос на звонок уже с подставленным префиксом к номеру.
Это все относиться к телефонии Asterisk.
Спасибо!
Нравится
Добрый день!
Для первой задачи в diff (в схеме ContactPageV2) для вашего поля нужно добавить следующее параметры:
"values": { "showValueAsLink": true, "linkclick": { "bindTo": "onCallClickWithPrefix" }, "href": { "bindTo": "UsrTestReq", "bindConfig": {"converter": "getUsrTestReqLink"} },
При этом в методах нужно добавить:
getUsrTestReqLink: function(value) { return { url: value, caption: value }; }, onCallClickWithPrefix: function(number) { /* Getting the needed prefix; var prefix = --- */ number = 'prefix' + number; return this.callContact(number, this.$Id, this.$Account); }
Для второй задачи рекомендую обратить внимание на уже имеющуюся кнопку звонка в схеме ContactMiniPage пакета CrtUIv2:
{ "operation": "insert", "name": "ContactButtonsContainer", "parentName": "HeaderContainer", "propertyName": "items", "values": { "visible": {"bindTo": "isViewMode"}, "wrapClass": ["header-buttons"], "itemType": Terrasoft.ViewItemType.CONTAINER, "items": [ { "name": "CurrentContactCallButton", "itemType": Terrasoft.ViewItemType.BUTTON, "imageConfig": miniPageResources.resources.localizableImages.CallButtonImage, "extendedMenu": { "Name": "Call", "PropertyName": "CurrentContact", "Click": {"bindTo": "prepareCallButtonMenu"} } },
При нажатии на номер срабатывает метод extendedCallMenuItemClick схемы CallExtendedMenu, который и вызывает событие звонка через this.sandbox.publish("CallCustomer"
Если вы хотите при нажатии на вашу колонку совершать звонок, то необходимо реализовать похожую логику.
Добрый день!
Для первой задачи в diff (в схеме ContactPageV2) для вашего поля нужно добавить следующее параметры:
"values": { "showValueAsLink": true, "linkclick": { "bindTo": "onCallClickWithPrefix" }, "href": { "bindTo": "UsrTestReq", "bindConfig": {"converter": "getUsrTestReqLink"} },
При этом в методах нужно добавить:
getUsrTestReqLink: function(value) { return { url: value, caption: value }; }, onCallClickWithPrefix: function(number) { /* Getting the needed prefix; var prefix = --- */ number = 'prefix' + number; return this.callContact(number, this.$Id, this.$Account); }
Для второй задачи рекомендую обратить внимание на уже имеющуюся кнопку звонка в схеме ContactMiniPage пакета CrtUIv2:
{ "operation": "insert", "name": "ContactButtonsContainer", "parentName": "HeaderContainer", "propertyName": "items", "values": { "visible": {"bindTo": "isViewMode"}, "wrapClass": ["header-buttons"], "itemType": Terrasoft.ViewItemType.CONTAINER, "items": [ { "name": "CurrentContactCallButton", "itemType": Terrasoft.ViewItemType.BUTTON, "imageConfig": miniPageResources.resources.localizableImages.CallButtonImage, "extendedMenu": { "Name": "Call", "PropertyName": "CurrentContact", "Click": {"bindTo": "prepareCallButtonMenu"} } },
При нажатии на номер срабатывает метод extendedCallMenuItemClick схемы CallExtendedMenu, который и вызывает событие звонка через this.sandbox.publish("CallCustomer"
Если вы хотите при нажатии на вашу колонку совершать звонок, то необходимо реализовать похожую логику.