Приоритет очередей в едином окне

Всем доброго времени суток!

Стоит задача настройки сортировки очереди не по существующему приоритету, а по числовому - http://prntscr.com/mf7dc3

Подскажите в какой схеме происходит сортировка что бы поправить на кастомную.

Заранее благодарен.

Нравится

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

Галка «Сортировать по приоритету» добавляется в схеме страницы QueueItemSection:

{
	"operation": "insert",
	"name": "AgentViewMode",
	"parentName": "LeftGridUtilsContainer",
	"index": 0,
	"propertyName": "items",
	"values": {
		"checked": {"bindTo": "UseAgentViewSorting"},
		"visible": {"bindTo": "getAreFixedFilterCheckboxesVisible"},
		"caption": {"bindTo": "Resources.Strings.AgentViewCheckboxCaption"},
		"labelButtonClick": {"bindTo": "onUseAgentViewLabelButtonClick"},
		"generator": "QueueItemSectionViewHelper.getFixedFilterCheckboxGenerator"
	}
},

Её значение UseAgentViewSorting учитывает логика:

/**
 * @inheritdoc Terrasoft.GridUtilities#initQueryColumns
 * @overridden
 */
initQueryColumns: function(esq) {
	this.mixins.GridUtilities.initQueryColumns.apply(this, arguments);
	if (this.get("UseAgentViewSorting")) {
		this.addQueueSortColumns(esq, this.get("QueueColumnsSortConfig"));
	}
},
 
/**
 * @inheritdoc Terrasoft.GridUtilities#initQuerySorting
 * @overridden
 */
initQuerySorting: function(esq) {
	this.mixins.GridUtilities.initQuerySorting.apply(this, arguments);
	if (this.get("UseAgentViewSorting")) {
		this.initQueueQuerySorting(esq, this.get("QueueColumnsSortConfig"));
	}
},

QueueColumnsSortConfig берётся:

/**
 * Initializes sorting options.
 * @param {Function} callback The callback function.
 * @protected
 */
initQueueSortingConfig: function(callback) {
	this.queryColumnsSortConfig({
		callback: function(sortConfig) {
			this.set("QueueColumnsSortConfig", sortConfig);
			callback();
		}.bind(this)
	});
},

А вот и сортировка, но по имени:

/**
 * @inheritdoc Terrasoft.QueueSortUtilities#getInitialQueueSortConfig
 * @overridden
 */
getInitialQueueSortConfig: function() {
	var sortConfig = this.mixins.QueueSortUtilities.getInitialQueueSortConfig.apply(this, arguments);
	sortConfig.push({
		"name": "Queue.QueueEntitySchema.Name",
		"orderPosition": 4,
		"orderDirection": Terrasoft.OrderDirection.ASC
	});
	return sortConfig;
},

Логика включения-выключения галки:

/**
 * Handles Agent view Label 'click' event.
 * @protected
 */
onUseAgentViewLabelButtonClick: function() {
	this.set("UseAgentViewSorting", !this.get("UseAgentViewSorting"));
},
 
/**
 * Handles UseAgentView attribute value changed.
 * @param {Backbone.Model} model The model.
 * @param {Boolean} useAgentView The new attribute value.
 */
onUseAgentViewChanged: function(model, useAgentView) {
	if (useAgentView) {
		this.set("SortColumnIndex", -1);
		this.reloadGridData();
	}
	this.set("IsSortMenuVisible", !useAgentView);
	this.saveCheckboxAttributeInProfile("UseAgentViewSorting", useAgentView);
},

 

Зверев Александр,

Благодарю. В целом помогло.

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