TimelineMenu
хронология
фильтр
Financial_Services_Creatio_customer_journey_edition
7.13

Добавил плитку смс сообщения фильтр по этой статье, сама надпись фильтра появляется,

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

но

1. Не могу изменить иконку.

2. Не работает фильтр при нажатии, получаю ошибку(рис1)Изображение удалено.

define("SmsMessageTimelineItemView", ["BaseTimelineItemView"], function() {
 
	Ext.define("Terrasoft.configuration.SmsMessageTimelineItemView", {
		extend: "Terrasoft.BaseTimelineItemView",
		alternateClassName: "Terrasoft.SmsMessageTimelineItemView",
 
		getResultMessageViewConfig: function() {
			return {
				"name": "Message",
				"itemType": Terrasoft.ViewItemType.LABEL,
				"caption": "Message",
				"visible": {
					"bindTo": "Message",
					"bindConfig": {
						"converter": "isNotEmptyValue"
					}
				},
				"classes": {
					"labelClass": ["timeline-text-normal"]
				}
			};
		},
        getMessageViewConfig: function() {
            var config = this.callParent(arguments);
            config.visible = {
                "bindTo": "IsExpanded"
            };
            return config;
        },
		getBodyViewConfig: function() {
			var bodyConfig = this.callParent(arguments);
			bodyConfig.items.unshift(this.getResultMessageViewConfig());
			return bodyConfig;
		}
 
		// endregion
 
	});
});

А вот модель 

define("SmsMessageTimelineItemViewModel", 
["SmsMessageTimelineItemViewModelResources", "BaseTimelineItemViewModel"],
    function() {
        Ext.define("Terrasoft.configuration.SmsMessageTimelineItemViewModel", {
            alternateClassName: "Terrasoft.SmsMessageTimelineItemViewModel",
            extend: "Terrasoft.BaseTimelineItemViewModel"
        });
    });

Вот Json для TimelineTileSetting:

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

А для TimelinePageSetting

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

Нравится

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

Добрый день, Ислам,

 

На скриншоте зафиксирован свал Batch запроса. Проверьте, пожалуйста, ответ, который приходит на этот запрос (в нем может быть стэк, который может подсказать причины ошибки) и тело запроса. Кроме того, ошибка и описание могут залогироваться в Error.log файл в логах приложения, проверьте, пожалуйста, еще и его.

 

С уважением,

Ангелина

Показать все комментарии
8.0.6
хронология
Freedom_UI
Studio_Creatio
8.0

Доброго дня! Можливо, хтось стикався з проблемою. Створив сторінку розділу на Freedom Ui. Долучив вкладку "Хронологія" та розмістив за допомогою дизайнера на вкладці відповідний компонент "Хронологія".

В результаті - при переході на вкладку відображається постійне провантаження елементу (запитів жодних не виконується, помилок в консолі немає).

 

Долучив аналогічним чином до наявної сторінки Freedom розділу "контакти" - там все працює коректно.

У чому може бути проблема?

Дякую

 

Нравится

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

Доброго дня Сергій,



Будь ласка, зверніться до нашої служби підтримки, нам потрібно більше деталей аби допомогти вам вирішити цю проблему. (support@terrasoft.ua)

Сергій, добрий вечір.

 

Перейдіть у браузері в консоль розробника - там повинен відображатися текст з помилкою. Покажіть скріншот з відкритою консолю, коли виникає помилка.

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

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

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

Однако в Хронологии такой возможности нет :(

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

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

Нравится

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

Владимир, в обычных деталях, таких как «История», используют логику из BaseGridDetailV2, связанную с состоянием нажатия кнопки RelationshipButton. Если она нажата, через OR добавляется дополнительное условие фильтрации, то есть выбираются записи с детали, связанные не с текущей, а с дочерними.

/**
 * Returns filters collection.
 * @override
 * @return {Terrasoft.FilterGroup} Detail filter group.
 */
getFilters: function() {
	const detailFilters = this.get("DetailFilters");
	const masterColumnFilters = this.get("Filter");
	const serializationMasterColumnInfo = masterColumnFilters.getDefSerializationInfo();
	serializationMasterColumnInfo.serializeFilterManagerInfo = true;
	const serializationDetailInfo = detailFilters.getDefSerializationInfo();
	serializationDetailInfo.serializeFilterManagerInfo = true;
	const deserializedMasterColumnFilters = Terrasoft.deserialize(masterColumnFilters
		.serialize(serializationMasterColumnInfo));
	const deserializedDetailFilters = Terrasoft.deserialize(detailFilters.serialize(serializationDetailInfo));
	if (this.get("IsRelationshipButtonPressed")) {
		const mainFilterGroup = this.getRelationshipFilters();
		mainFilterGroup.logicalOperation = Terrasoft.LogicalOperatorType.OR;
		mainFilterGroup.add("masterRecordFilter", deserializedMasterColumnFilters);
		deserializedDetailFilters.add("mainFilterGroup", mainFilterGroup);
	} else {
		deserializedDetailFilters.add("masterRecordFilter", deserializedMasterColumnFilters);
	}
	return deserializedDetailFilters;
},

Сам фильтр такой:

/**
 * Returns the relationship filter.
 * @protected
 * @return {Terrasoft.FilterGroup} Relationship filter.
 */
getRelationshipFilters: function() {
	const mainFilterGroup = this.Ext.create("Terrasoft.FilterGroup");
	const relationshipFilterGroup = this.Ext.create("Terrasoft.FilterGroup");
	const masterRecordId = this.get("MasterRecordId");
	const detailColumnName = this.get("DetailColumnName");
	const relationTypePath = this.get("RelationTypePath");
	const relationshipPath = this.get("RelationshipPath");
	const relationType = this.get("RelationType");
	if (relationTypePath && relationshipPath && relationType) {
		relationshipFilterGroup.add("relationshipFilter", Terrasoft.createColumnFilterWithParameter(
			Terrasoft.ComparisonType.EQUAL,
			relationTypePath,
			relationType,
			Terrasoft.DataValueType.GUID));
		relationshipFilterGroup.add("relationshipTypeFilter", Terrasoft.createColumnFilterWithParameter(
			Terrasoft.ComparisonType.EQUAL,
			relationshipPath,
			masterRecordId,
			Terrasoft.DataValueType.GUID));
	} else {
		relationshipFilterGroup.add("relationshipFilter", Terrasoft.createColumnFilterWithParameter(
			Terrasoft.ComparisonType.EQUAL,
			this.getDefaultRelationshipPath(),
			masterRecordId,
			Terrasoft.DataValueType.GUID));
	}
	mainFilterGroup.add("subRelationshipFilterGroup", Terrasoft.createExistsFilter(
		detailColumnName,
		relationshipFilterGroup));
	return mainFilterGroup;
},

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

 

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

Зверев Александр пишет:

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

Думаю, это очень логично, учитывая, что такую логику уже реализовали в деталях. 

Ещё вдруг не реализовали эту идею?

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