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

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

но

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 файл в логах приложения, проверьте, пожалуйста, еще и его.

 

С уважением,

Ангелина

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

Доброго дня! Можливо, хтось стикався з проблемою. Створив сторінку розділу на 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, добавлять подобную логику проверки и фильтрации.

 

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

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

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

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

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

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