Всем привет, хотел бы узнать есть ли возможность добавить деталь на мини-карточку или модальное окно, нужно в основном для отображения данных?

Нравится

3 комментария

Добрый день.

 

На текущий момент данный функционал не реализован в базовой версии, его можно реализовать с помощью разработки.

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

 

В планах продукта есть задача на реализацию желаемого функционала в будущих версиях. 

Ivan Kuchma,

Такой вопрос, можно ли добавить уже созданную деталь просто на форму мини-карточки при помощи разработки? И обязательно ли создавать под это контейнер с полями tabs?

Глеб Макаров,

рекомендую обратить внимание на похожую тему  для миникарточки с детали, а также на статью о реализации сообщений между деталями через sandbox.

Детальнее работе с sandbox можете ознакомится в статье: https://academy.terrasoft.ua/docs/7-18/developer/front-end_development/…

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

Добрый день! При создании нового раздела был добавлен элемент "изображение" для загрузки графической информации. Возникла потребность при наведении на ссылку данного объекта отображать по нему краткую информацию, дабы не проваливаться внутрь записи. Для этого добавил мини карточку в раздел, но на ней нет изображения, только текстовая информация с других полей. Каким образом можно добавить изображение с раздела в его мини карточку, по аналогии с мини карточкой контакта или контрагента?

Изображение удалено.

Нравится

5 комментариев

Возможно будет достаточно просто выбрать колонку с изображением в объекте?

Миннекаев Айдар,

На самой странице изображение есть, его нет именно в мини карточке, когда наводишь на ссылку объекта, именно в предпросмотре, не проваливаясь внутрь

Илья, добрый день! 

 

Вы можете попробовать решить эту ситуацию методом разработки. Подобнее о разработке в рамках мини-карточек Вы можете почитать в статье:



https://academy.terrasoft.ru/docs/developer/elements_and_components/bas…



В рамках этой статьи есть ссылка на метод создания поля с изображением, актуальный для мини-карточек:



https://academy.terrasoft.ru/docs/developer/elements_and_components/bas…

Lev Kuptsov,

выходит, что через созданную стандартными средствами миникарточку к разделу реализовать такой функционал не выйдет?

Здравствуйте, Илья!

На текущей конфигурации нет возможности базовыми средствами отобразить изображение в мини-карточке не проваливаясь внутрь записи, только при помощи разработки.

В планах развития продукта есть задача на рассмотрение реализации данного функционала базовыми средствами.

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

Создал миникарточку, опираясь на https://academy.terrasoft.ru/documents/technic-sdk/7-16/kak-sozdat-mini-kartochku-dobavleniya. Только в моём случае это было редактирование имени существующего объекта. 

Добавил кнопку в разделе, по клику на которую открывается миникарточка.

onButtonClick: function () {
				debugger;
				var activeRowId = this.get("ActiveRow");
				if (activeRowId) {
					this.openMiniPage({
						recordId: activeRowId,
						operation: Terrasoft.ConfigurationEnums.CardOperation.EDIT,
						entitySchemaName: this.entitySchemaName,
						isFixed: true,
						showDelay: 0,
						miniPageSchemaName: "MyUsrMorpheusMiniPage",
					});
				}
			}

Вот код миникарточки, название сущности MyUsrCar2

define("MyUsrMorpheusMiniPage", [
	"terrasoft",
	"MyUsrCar2File",
	"ConfigurationConstants",
	"css!MyUsrMorpheusMiniPageCss"
], function (Terrasoft, MyUsrCar2File, ConfigurationConstants) {
	return {
		entitySchemaName: "MyUsrCar2",
		attributes: {
			"MiniPageModes": {
				"value": [this.Terrasoft.ConfigurationEnums.CardOperation.EDIT]
			}
		},
		methods: {},
		diff: [
			{
				"operation": "insert",
				"parentName": "MiniPage",
				"propertyName": "items",
				"name": "Name",
				"values": {
					"isMiniPageModelItem": true,
					"layout": {
						"column": 0,
						"row": 0,
						"colSpan": 24
					},
					"controlConfig": {
						"focused": true
					}
				}
			}
		]
	};
 
});

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

 

1. Заголовок для подписи "Name" не был найден.

2. Невозможно найти колонку по конфигурации: "{"layout":{"colSpan":24,"rowSpan":1,"column":0,"row":0},"controlConfig":{"focused":true},"name":"Name"}" .

 

3. MiniPageViewGenerator.js:308 Uncaught TypeError: Cannot read property 'name' of undefined

    at i.getNeedGenerateHyperLink (MiniPageViewGenerator.js:308)

core-base.js:704 user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647

 file: http://localhost:82/0/configuration/6560b43f8738c260f612822f729cc099ru-…

 line: 308

 column: 82



 4. message: Uncaught TypeError: Cannot read property 'name' of undefined 

 date: Tue Jul 07 2020 11:19:54 GMT+0300 (Москва, стандартное время)

 stack: TypeError: Cannot read property 'name' of undefined

    at i.getNeedGenerateHyperLink

 

Пытался решить, как описано тут https://community.terrasoft.ua/questions/dobavlenie-email-kontakta-v-kartocku-obrasenia - не помогло.

Нравится

1 комментарий

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

Там для других случаев есть статьи Создание мини-карточки и Добавление мини-карточки к произвольному модулю.

 

Судя по сообщению, ошибка в функции getNeedGenerateHyperLink в схеме MiniPageViewGenerator. Эта схема есть в конфигурации, её код виден:

/**
 * @private
 * @param {Object} clonedConfig
 * @returns {Boolean}
 */
getNeedGenerateHyperLink: function(clonedConfig) {
	var itemDataValueType = this.getItemDataValueType(clonedConfig);
	var viewModelColumn = this.findViewModelColumn(clonedConfig);
	var primaryDisplayColumnName = this.getPrimaryDisplayColumnName();
	var isEditable = this.isSchemaEditable(viewModelColumn);
	var isLookup = itemDataValueType === Terrasoft.DataValueType.LOOKUP;
	var isSimpleLookup = viewModelColumn && viewModelColumn.isSimpleLookup;
	var isPrimaryDisplayColumnName = primaryDisplayColumnName === viewModelColumn.name;
	return isPrimaryDisplayColumnName || (isLookup && isEditable && !isSimpleLookup);
 
},

Видимо, в третьей строчке в переменную viewModelColumn попадает не объект, а пустое или объект без свойства name, из-за чего третья с конца строка падает при обращении к нему.

 

Не пробовали в браузере отладиться в этой функции, почему так выходит? Я всю Вашу логику не воспроизводил, а при открытии стандартной мини-карточки добавления контакта эта функция getNeedGenerateHyperLink не выполняется.

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

Добрый день коллеги!
В мини-карточку активности было выведено поле с типом Дата. См. первый скриншот.
При развернутом выборе даты в этом поле и клику на любую дату или же месяц мини-карточка закрывается.
Однако если эту мини-карточку открыть в расширенном режиме и попытаться выбрать дату в этом поле, то всё будет отлично. См. второй скриншот.

С чем может быть связанно данное поведение?

Нравится

1 комментарий

На данный момент данная проблема возникает из-за некорректной работы двух одновременных модальных окон и будет исправлена в следующих релизах.

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

Добрый день!

на миникарточку были добавлены поля. 5 отображаются всегда + добавлено 8 полей, из которых отображаются одновременно только 2. то есть максимум 7 полей на форме.

первая проблема это скрытие через бизнес - правила. скрытие работает, но на форме остается "дыра", поля вставлены не через layout. Об этом я писала(https://community.terrasoft.ru/forum/topic/25552) , но результата нет, поэтому эту проблему я решила костылями - через document.getElementById("xxx").style.display = "xx"

вторая проблема: после добавления полей миникарточка стала некорректно отображаться на экранах ноутбука, а именно верхнее поле не видно. причем при открытии миникарточки скрываются ненужные поля на onEntityInitialized() . то есть при открытии миникарточки всего 5 полей, тем не менее она располагается наверху экрана, как будто в ней есть все 13 полей.

если сравнивать стиль элемента через консоль, то на большом экране top=68px , а на ноутбуке = top=-8px

как решить эту проблему? есть ли лимит на количество поле в миникарточке?

Нравится

1 комментарий

Лимита нет, посмотрите как реализован RequiredColumnsContainer в BaseMiniPage, в него же как то добавляются колонки в зависимости от того какие из них обязательны, в любом количестве.

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

Уважаемые коллеги!

Подскажите пожалуйста, каким образом можно добавить дополнительное поле в миникарточку, например, добавить поле "Приоритет" в миникарточку в разделе "Активность" при добавлении задачи.

Нравится

1 комментарий

Нужно заместить миникарточку ActivityMiniPage и разместить в массиве diff ваше новое поле подобным образом:

{
"operation": "insert",
"parentName": "MiniPage",
"propertyName": "items",
"name": "UsrNewColumn",
"values": {
"visible": {"bindTo": "isNotViewMode"},
"isMiniPageModelItem": true,
"layout": {
"column": 0,
"row": 15,
"colSpan": 24
}
}
}

Если вы вставляете поле куда-то в середину, нужно подвинуть остальные поля на строку ниже с помощью "operation": "merge" и изменением числа row в массиве layout.
Вот примерный код замещенной миникарточки:

define("ActivityMiniPage", [],
function() {
return {
entitySchemaName: "Activity",
details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
attributes: {},
methods: {},
diff: /**SCHEMA_DIFF*/[
{
"operation": "insert",
"parentName": "MiniPage",
"propertyName": "items",
"name": "UsrNewColumn",
"values": {
"visible": {"bindTo": "isNotViewMode"},
"isMiniPageModelItem": true,
"layout": {
"column": 0,
"row": 15,
"colSpan": 24
}
}
},
{
"operation": "merge",
"name": "MobilePhone",
"values": {
"layout": {
"column": 0,
"row": 7,
"colSpan": 24
}
}
},
{
"operation": "merge",
"name": "Email",
"values": {
"layout": {
"column": 0,
"row": 6,
"colSpan": 24
}
}
}
]/**SCHEMA_DIFF*/
};
});

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