Таблицы
Простая таблица
| Имя | Дата | Последний раз видели |
|---|---|---|
| Проект Альфа | 2026-01-10 | |
| Проект Бета | 2026-02-18 | |
| Проект Гамма | 2026-03-25 |
Шире, чем комната
| Колонка 1 | Колонка 2 | Колонка 3 | Колонка 4 | Колонка 5 | Колонка 6 | Колонка 7 | Колонка 8 | Колонка 9 | Колонка 10 | Колонка 11 | Колонка 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение |
| Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение |
| Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение | Достаточно длинное значение |
Таблица с действиями
Полосатые строки, подсвеченные под указателем
Строки, которые можно отметить
Коробка в заголовке каждой строки, одна в заголовке для всех, и действия выше: они отправляют отмеченные строки по своему адресу и остаются вне досягаемости, пока ничего не отмечено.
Файлы, всего, действие для каждой строки
Пути, читаемые по их имени, папки перед ним отрезаются от начала. Полоса заканчивается на том, сколько строк есть, и действие, помеченное `all`, работает без отмеченных — оно берет каждую строку и ведет полосу, когда это ожидается.
| Файл | |
|---|---|
| 03-DOCUMENTS/QAL - Syst Document/Obsolète/QAL-D-12-identification-and-validation-of-quality-system-software-v1.md | |
| 05-INSTRUCTIONS/RES/RES-I-02-it-access-change-v2.md | |
| README.md |
Фильтры
Полоса фильтров в верхней части таблицы, по одному неприметному меню на каждую, указывающая, к чему она сужает, как только это делает. На сервере они живут в запросе страницы — каждый вариант является ссылкой — и контроллер сужает строки из него; в vue они являются значением, переданным странице для ее api, или применяются таблицей к уже имеющимся строкам. Каждый вариант — это коробка — круглая для выбора одного — окрашенная по своему оттенку, если он есть, статусу или категории.
| Имя | Владелец | Состояние |
|---|---|---|
| Alpha | design | open |
| Beta | platform | closed |
| Gamma | design | closed |
| Delta | support | open |
Сортировка
Заголовок, который сортирует, является ссылкой на сервер и кнопкой в vue: по возрастанию, по убыванию, затем возвращается к порядку, который была объявлен на странице, с которым открывается список и который его стрелка показывает с самого начала. Пустые даты идут последними в обоих направлениях, а имена сравниваются так, как их упорядочивает язык. Здесь таблица сортирует строки, которые были даны ей самой; контроллер, пейджингующий свой список, читает тот же запрос.
| Имя | Город | Последнее измерение | Действия |
|---|---|---|---|
| Adam Petit | Angers | ||
| Zoé Martin | Zürich | ||
| Eric Bernard | Lyon | ||
| Élodie Durand | Évry | ||
| Basile Leroy | Écully |
Сортировка в браузере, из twig
`vue: true` передает те же столбцы и строки двойнику vue: он сортирует и ищет весь список в браузере, без загрузки страницы. Для списка, который страница удерживает целиком — короткого или того, который не обслуживает api.
Действия в выборе
Та же полоса, когда достаточно действий, чтобы она переполнилась: одно выбирается, затем применяется.
Ячейки со ссылками и значками
| Источник | Состояние |
|---|---|
| Источник Альфа | |
| Источник Бета |
Состояние загрузки
| Источник | Обновлено | Действия |
|---|---|---|
|
|
||
Пустое состояние
| Источник | Обновлено | Действия |
|---|---|---|
| Данные недоступны. | ||
Выравнивание колонок
| Имя (слева) | Состояние (по центру) | Количество (справа) |
|---|---|---|
| Alpha | Centered | 42.00 € |
| Beta | Centered | 128.50 € |
| Gamma | Centered | 7.99 € |
Коды, цифры и итоги
`cell: 'code'` устанавливает идентификатор в моноширинном шрифте; `cell: 'number'`, или `unit`, записывает цифру в локали страницы. `negative: true` рисует цифру ниже нуля в ошибочном тоне, ее знак минус говорит об этом тоже. `totals` — это строка, которую страница передает, отображаемая под другими — таблица ничего не складывает, удерживая одну страницу или отфильтрованный список. Создано сервером, затем vue.
| Код | Элемент | Чистая поставка | Площадь |
|---|---|---|---|
VS-2041 |
Atlas | 12 | 18,5 m² |
LO-0007 |
Boréal | -4 | 9 m² |
VS-1180 |
Cyprès | 0 | 6,5 m² |
LO-0315 |
Dune | -11 | 22,5 m² |
| Итого | -3 | 56,5 m² |
Из Markdown
Таблица, написанная в Markdown и обработанная через `markdown_ds`: колонки, их выравнивание и разметка каждой ячейки считываются из документа, и таблица отображается здесь как любая другая. `markdown` сохраняет обычный `<table>`, для всего, что не является страницей — письмом, лентой.
| Name | Status | Amount |
|---|---|---|
| Alpha | ready |
42.00 € |
| Beta | 128.50 € | |
| Gamma | pending | 7.99 € |
Группировать строки
Строка, содержащая только группу, не является строкой: это линия между двумя их сериями, данная словом. Она охватывает таблицу и называет то, что следует за ней — то же самое, что и разделитель в меню.
| Имя | Дата |
|---|---|
| Первая группа | |
| Проект Альфа | 2026-01-10 |
| Проект Бета | 2026-02-18 |
| Вторая группа | |
| Проект Гамма | 2026-03-25 |
Ячейки состояния
Состояние — это круг, никогда не цвет, который кто-то выбрал: ячейка принимает название типа или тип с количеством и заголовком и рисует значок состояния, который рисует остальная часть системы. Ничего не нужно стилизовать на странице.
| Конвейер | Сборка | Тесты | Развертывание |
|---|---|---|---|
| Проект Альфа | 42 | ||
| Проект Бета | 3 | ||
| Проект Гамма |
Липкий заголовок
Длинную таблицу читают по колонкам также, как и по строкам. С `sticky` заголовок остается на виду, пока строки прокручиваются под ним; страница с чем-то своим, прикрепленным вверху, показывает, насколько далеко вниз в `--table-sticky-top`.
| # | Имя | Состояние |
|---|---|---|
| 1 | Row 1 | |
| 2 | Row 2 | |
| 3 | Row 3 | |
| 4 | Row 4 | |
| 5 | Row 5 | |
| 6 | Row 6 | |
| 7 | Row 7 | |
| 8 | Row 8 | |
| 9 | Row 9 | |
| 10 | Row 10 | |
| 11 | Row 11 | |
| 12 | Row 12 |
Таблица в своей зоне
Зоне `zone--table` отводится место под всю таблицу: что ведет ее сверху, ее страницы внизу, из того, что прокручивается, и между ними основание таблицы, доходящее до дна зоны, даже для трех строк. В нее помещается любая таблица, созданная сервером или vue. С `natural`, как та, что слева, таблица сохраняет ширину своих столбцов, не растягиваясь и не сжимаясь.
| # | Имя | Состояние |
|---|---|---|
| 1 | Row 1 | |
| 2 | Row 2 | |
| 3 | Row 3 |
Таблица сущностей Vue
Таблица Vue с выбором
Тот же контракт на клиенте: отмеченные ключи возвращаются через v-model:selected, каждое действие выдается как bulk-action, а одно с адресом отправляется по мере того, как серверная таблица его отправляет. У них ничего нет, поэтому строка ниже говорит о том, что было бы сделано. Три строки на странице, всего в конце полосы и Архивировать все, не требуя ничего отмеченного.
Пагинация без общего количества
Когда API не возвращает общего количества, пейджер откатывается к предыдущему/следующему.
Пагинация, созданная сервером
`pagination(page, pages_count)` создает страницы списка в виде ссылок: каждая сохраняет маршрут и запрос страницы, на которой находится — поиск, сортировка — и изменяет только `page`, считая с 1. Показанные номера — это номера vue пейджера: первый, последний, текущий и его соседи. `compact` сохраняет предыдущий и следующий вокруг номера страницы; `route` и `params` переходят по другому адресу.