Добавление "своей" сортировки по умолчанию в Grid детали

Добрый день Коллеги!

Появилась необходимость реализовать отдельную сортировку по умолчанию в Grid'е детали.

Итак немного отсылки о детали. Деталь содержит в себе записи относящиеся к справочной колонке "Объект администрирования". Грубо говоря есть 4ре отдела и есть неограниченное количество пользователей, которые так или иначе входят в эти отделы (отдел - организационный юнит).

Так вот при клике на + у детали всплывает справочник этих сущностей, где пользователь может выбрать как отделы так и других пользователей. 

После этого происходит стандартное добавление выбранных записей в деталь.

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

Есть предположения, в исследованиях я уперся в GridUtilites и решил дальше не лезть, потому что этот миксин используется везде в системе и не получится скорее всего изменить его вызов для одной детали не затронув функционал который относится ко всему.

Так же что-то удалось найти в diff на BaseGridDetail который соответствует сортировке, но как-то это тоже ни к чему не привело.

Есть мысль что при загрузке коллекции в методе onGridDataLoaded получать коллекцию и при помощи underscore.js сортировать её как угодно, но вроде как это накладно и производительней было бы получить уже отсортированную коллекцию.

У кого какие предложения/идеи будут по данному посту?

Нравится

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

Добрый день. Не очень понял, а почему "я уперся в GridUtilites и решил дальше не лезть"? Можно же функцию из миксина переопределить в схеме самой детали, сославшись на родительскую, если нужно, через this.mixins.GridUtilitiesV2.... . На вскидку, вроде надо "допилить" initQuerySorting ???

типа такого:

 

initQuerySorting: function(esq) {

    this.mixins.GridUtilitiesV2.initQuerySorting(esq);

    /* далее какие-то ваши действия с esq */

}

 

Или наоборот, сначала - ваша сортировка, потом - родительский метод.

Иванов Александр А.,

Да, спасибо. Мы уже разрешили проблему. Если интересно могу поделиться кодом.

Да, было бы неплохо. Посмотреть, к тому же, насколько отличается от моей мысли. ))

initQuerySorting: function(esq) {
	var createdOnColumn = esq.addColumn("KmName", "Name");
	createdOnColumn.orderDirection = this.Terrasoft.OrderDirection.ASC;
}

Всё свелось к тому что такой путь посоветовала Тех. поддержка. А у меня там уже простынка такая строчек на 100 была как коллекцию грида сортироватьlaugh

Кисловский Михаил Андреевич,

Ну да, только тут остальная сортировка "идёт лесом". Поддержка, как всегда, короче... smiley

Иванов Александр А.,

Ну с остальной сортировкой да. Но в целом можно выкрутиться думаю если захотеть) 

Я, наверное, тогда промолчу про 

getGridDataColumns: function() {
	return {
		"Id": {path: "Id"},
		"TmName": {path: "TmName"},
		"TmStartDate": {path: "TmStartDate", orderPosition: 0, orderDirection: Terrasoft.OrderDirection.DESC},
		"TmStudios": {path: "TmStudios", orderPosition: 1, orderDirection: Terrasoft.OrderDirection.DESC}
	};
},

где можно сортировку по каждой колонке настроить...

Варфоломеев Данила,

спасибо, что не промолчал ;)

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