Добавление гиперссылок
Для реализации гиперссылки в таблице нужно создать редактор, указав ссылку для перехода в виде выражения:
{
"editorKind": "text",
"editorOptions": {
"link": {
"expressionKind": "substitution",
"value": "https://era-meet.ru/#/room=[code]"
}
}
}
Переход по ссылке при нажатии на кнопку в таблице можно реализовать так:
tableControlOptions: {
...,
"customButtons": [
{
"name": "calendar",
"caption": "Календарь",
"icon": "event",
"buttonKind": "link",
"link": '/ui/wfm/resources/ResourceCalendar?
parameters={"designResource_id":"[id]"}',
}
]
}
Для перехода по ссылке при нажатии на кнопку в карточке или таблице можно использовать client action:
{
"name": "open",
"caption": "Открыть",
"optionsUI": {
"showInTable": true,
"showInCard": true
},
"actionKind": "client",
"actionTarget": "entity",
"allowConditionCode": "!Converter.isNull(this.a)"
"code": "EraEnvironment.getStrong('EraClientUtils').gotoLocalAddress(this.a)",
}
Кейс «Открыть гиперссылку с предварительной авторизацией»
Иногда бывает удобно предоставить возможность открыть в отдельной вкладке стороннюю информационную систему с автоматической авторизацией. Для этого в свойствах пользователей в разделе ext можно указать индивидуальный token (или пару логин-пароль), а в коде приложения выполнить http-запрос с использованием этих данных и открыть полученную в результате его выполнения гиперссылку. Пример кода client action:
var token = this._eraEnvironment.get('EraGlobal')?.myUserInfo?.ext?.token;
console.log('token: '+token);
this._eraEnvironment.get('eraRequest')?.eraRequest({
method: 'GET',
url: 'http://xxx.yyy.ru?token='+token
}).then((data_: any) => {
console.log(data_);
var url = data_?.url;
console.log('url: '+url);
if (url)
window.open(url, '_blank');
});