Древовидная таблица
Древовидная таблица позволяет отображать связанные записи в иерархии наглядно в одной странице.
Древовидная таблица или древовидное меню. Что использовать?
Критерий / Компонент | Древовидная таблица | Древовидное меню |
---|---|---|
Нужно видеть одновременно всю иерархию, чтобы с ней работать, анализировать, сравнивать (например, потомков сразу нескольких соседних записей) | 🟢 | 🔴 |
Нужна связь “родительская запись - дочерняя запись" | 🟢 | 🔴 |
Нужно создать удобную навигацию, разбить записи по группам, уметь фильтроваться по ним | 🔴 | 🟢 |
Атрибутный состав дочерних записей различается | 🔴 | 🟢 |
Критерии использования древовидной таблицы
- Необходимо наглядно отобразить иерархичную структуру объектов;
- Связанные записи являются одинаковыми сущностями, например, все связанные записи являются задачами;
- Следовательно, все записи имеют одинаковый атрибутный состав (и дочерние записи, и родительские);
- У таблицы может быть максимум 10 уровней. Кейсы с большим количеством уровней обсуждаются индивидуально с сообществом;
- Древовидную таблицу нельзя использовать вместе с раскрывающейся строкой;
- Древовидная таблица не должна содержать строки, выделенные цветом.
Правила использования древовидной таблицы
- У записей в таблице должна быть сквозная нумерация, которая помогает ориентироваться в структуре. Она располагается в первом столбце, при необходимости столбец можно скрыть.
- Иконка, которая раскрывает таблицу располагается после чекбокса и номера объекта, в столбце с наименованием объекта.
Важно! Исключением может стать признак, который предшествуют наименованию и, соответственно, иконке, которая раскрывает подуровни.
- При выборе записи чекбоксом, выбираются все дочерние записи, а у родительской записи чекбокс переходит в состояние:
3.1.Intermidiate
, если у выбраной записи есть сосед;
3.2.Checked
, если выбранная запись - единственный ребенок.
Пример: у выбранной записи есть сосед, поэтому родительский чекбокс перешел в состояниеintermidiate
.
- Ширина столбца закладывается исходя из уровня вложенности. Чем больше уровней, тем шире столбец. Цель - сохранить читаемость в таблице.
🔴 Плохо
🟢 Хорошо
- Сортировка:
5.1. В древовидной таблице может не быть возможности сортировки, когда все записи уже отсортированы по ключевому атрибуту, например, по номеру в структуре, как в кейсе Q.PM:
5.2. Если в таблице включена сортировка, то записи сортируются внутри каждого уровня, например:
Было отсортировано по приоритету по умолчанию:
Стало отсортировано по наименованию внутри каждого уровня:
-
Фильтрация осуществляется следующим образом. Если отфильтрованная запись находится на n-уровне в иерархии, то в отфильтрованной таблице выводится вся раскрытая иерархия, которая включает эту запись.
-
Пагинация. Если на странице выводится n-записей, то n - это количество родительских записей. То есть, если последняя n-родительская запись содержит m потомков, то все они раскрываются на этой же странице. Дочерние записи загружаются по мере их раскрытия.
Добавление в древовидную таблицу
В сайдбаре/форме добавления появляется необязательное поле “Родительский объект”. Если оно не заполнено, то запись добавляется как корневая (на самый верхний уровень).
Клик на поле поднимает Searchbox с древовидной структурой, где можно выбрать родительский объект.
Удаление записи
Пока у записи есть дочерние, ее нельзя удалить. Кнопка удаления должна быть в состоянии Disabled, а при наведении появляется тултип с текстом "У записи есть дочерние, отвяжите их, чтобы удалить запись".