Задача [0087, часть 2]: Табличное представление списка документов (сортировка и настройка отображения столбцов)

Формулировка проблемы: необходимо реализовать возможность представления документов журналов как в строчном виде, так и в виде табличном со столбцами из карточки РКК.

Связанные задачи: 2.69.0087, часть 1, 2.70.0087, часть 4.

Используется: Основное приложение -> Документы.

Решение: необходимо реализовать возможность настройки отображения столбцов в табличном представлении списка документов в модуле "Хранилище" (раздельно для каждого узла).

Новый функционал должен отображаться в следующем виде:

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

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

Сортировка должна производиться согласно следующему алгоритму и только для данных столбцов:

Наведение курсора

При наведении на заголовок столбца курсором необходимо подсвечивать его и отображать кнопку v. По нажатию на данную кнопку отобразится выпадающий список со следующими пунктами:

По возрастанию / По убыванию. Данные настройки должны определять порядок сортировки документов в таблице. Включение сортировки должно осуществляться одним из следующих сценариев:

При этом в зависимости от очередности нажатия на заголовок необходимо устанавливать сортировку следующим образом:

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

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

Наличие и порядок сортировки необходимо отображать пиктограммами стрелок. Пиктограммы должны добавляться по правому краю от названия заголовка на расстоянии 4 px.

Примечание

Если ширина заголовка такая, что заголовок, стрелки направления сортировки (при наличии), а также ширина кнопки v не помещаются в заголовок полностью, необходимо перекрывать данной кнопкой содержимое столбца.

Столбцы. Состояние данных флажков должно определять отображение столбцов в таблице. По умолчанию все флажки должны быть включены. При выключении флажков - более не отображать соответствующие столбцы.

Примечание

Необходимо запрещать выключать последний включенный флажок (отображать его неактивным).

В зависимости от выбранного узла необходимо отображать следующие флажки в подменю пункта "Столбцы":

Нажатие правой кнопкой мыши

При нажатии на заголовок столбца правой кнопкой мыши необходимо подсвечивать его, отображать кнопку v, а также отображать контекстное меню, аналогичное подменю "Столбцы", описанному выше.

Форматирование

Рисунок 273. Контекстное меню при наведении курсором на заголовок таблицы

Контекстное меню при наведении курсором на заголовок таблицы

Рисунок 274. Контекстное меню нажатии на заголовок таблицы правой кнопкой мыши

Контекстное меню нажатии на заголовок таблицы правой кнопкой мыши