Поле ссылка в Terrasoft BPM’Online

В данном примере рассмотрим, как можно изменить обычное текстовое поле так, чтобы оно работало как гипер ссылка. Сделаем так, чтобы при вводе адреса сайта в тестовое поле он отображался в виде активной ссылки, при нажатии на которую сайт открывался в новом окне.

Для примера на карточке Контакта добавим новое тестовое поле Сайт (NrbSite)

Теперь немного изменим Исходный код

define("ContactPageV2", [], function() {
	return {
		entitySchemaName: "Contact",
		details: /**SCHEMA_DETAILS*/{
			"SiteEventDetail": {
				"schemaName": "SiteEventDetailV2",
				"entitySchemaName": "SiteEvent",
				"filter": {
					"masterColumn": "Id",
					"detailColumn": "[Lead:BpmSessionId:BpmSessionId].QualifiedContact"
				}
			}
		}/**SCHEMA_DETAILS*/,
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "STRING38b661db-c575-42ef-845e-b3dc7570052d",
				"values": {
					"layout": {
						"colSpan": 24,
						"rowSpan": 1,
						"column": 0,
						"row": 6,
						"layoutName": "ProfileContainer"
					},
					"bindTo": "NrbSite",
					"enabled": true,
						
					// Указываем что содержимое нужно отображать как ссылку.
					"showValueAsLink": true,
						
					// Настраиваем поведение для получения ссылки.
					// Первым указано имя поля
					// Вторым метод получения ссылки. Реализация метода ниже в блоке methods
					"href": {
						"bindTo": "NrbSite",
						"bindConfig": {"converter": "getNrbSiteLink"}
					},
						
					// Указываем обработчик события нажатия на ссылку.
					// Реализация метода обработчика ниже в блоке methods.
					"controlConfig": {
						"className": "Terrasoft.TextEdit",
						"linkclick": { bindTo: "onNrbSiteLinkClick"}
					}
				},
				"parentName": "ProfileContainer",
				"propertyName": "items",
				"index": 6
			}
		]/**SCHEMA_DIFF*/,
		methods: {
			// Метод получения ссылки из текстового поля.
			getNrbSiteLink: function(value) {
				return {
					"url": value,
					"caption": value
				};
			},
				
			// Метод обработчик события нажатия на ссылку.
			// Выполняет открытие сайта в новом окне.
			onNrbSiteLinkClick: function(url) {
				if (url != null) {
					window.open(url, "_blank", "height=" + this.get("WindowHeight") + ",width=" + this.get("WindowWidth"));
					return false;
				}
			}
		},
		rules: {},
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/
	};
});

Адрес сайта нужно вводить на каточке начиная с http(s)://

Поле ссылка в Terrasoft BPM'Online

Также рекомендую изучить статью Паттерн Шаблонный метод (Template method). А еще подписывайтесь на группу ВКонтакте, Telegram и YouTube-канал. Там еще больше полезного и интересного для программистов.