Добрый день.
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"
Если вы хотите при нажатии на вашу колонку совершать звонок, то необходимо реализовать похожую логику.