Глава 10: Фильтры и условия панелей

В этой главе мы шаг за шагом достроим панель задач. Если возникнут вопросы — обращайтесь на форум.

Начнём с разбора задания из прошлой главы и продолжим наше путешествие!

10.1 Решение задания из предыдущей главы

10.1.1 Статусы и ссылки

Сначала добавим переходы по ссылкам для разных статусов. Вот структура ссылок для каждого:

(Допустим, наша ссылка — http://xxxxxxx/admin/hliu6s5tp9xhliu6s5tp9x)

Ответ на задание
Статус
Ссылка
Не начато
hliu6s5tp9xhliu6s5tp9x?task_status=Not started
В работе
hliu6s5tp9xhliu6s5tp9x?task_status=In progress
На проверке
hliu6s5tp9xhliu6s5tp9x?task_status=To be review
Выполнено
hliu6s5tp9xhliu6s5tp9x?task_status=Completed
Отменено
hliu6s5tp9xhliu6s5tp9x?task_status=Cancelled
В архиве
hliu6s5tp9xhliu6s5tp9x?task_status=Archived

10.1.2 Добавление множественного поля «Ответственный»

  1. Создание пользовательского поля: создаём поле «Ответственный» множественного выбора и заполняем псевдонимы (или имена пользователей), чтобы быстро выбирать сотрудников при назначении задач.

  1. В настройке отчёта: установите условие «Ответственный/Псевдоним содержит Текущий фильтр/Ответственный». Это позволит быстро находить задачи, относящиеся к выбранному ответственному.

Несколько раз протестируйте фильтр, чтобы убедиться в его работе.


10.2 Связываем панель с пользователями

Можно показывать разный контент в зависимости от пользователя:

  1. Установите значение по умолчанию для поля «Ответственный» — «Текущий пользователь/Псевдоним»: так система автоматически отобразит задачи, связанные с текущим пользователем, повышая удобство работы.

  1. После обновления страницы: панель автоматически загрузит данные, связанные с авторизованным пользователем. (Не забудьте добавить условие фильтрации по пользователю к нужным графикам.)


10.3 Перестройка фильтрации задач

Возможно, Вы заметили проблему:

После прямого «Установить диапазон данных» в табличном блоке задачи будут заранее ограничены конкретным статусом, и при попытке выбрать другой статус данные окажутся пустыми!

Что делать? Уберём такую фильтрацию данных и попробуем другой подход!

  1. Уберите фильтр по диапазону данных: чтобы статус не блокировался, и Вы могли гибко менять условия фильтрации.

  1. Настройте значение по умолчанию для блока фильтра-формы.

Помните наш блок фильтра?

Создайте новый блок-форму для фильтрации задач, добавьте поле Статус и другие нужные поля — будем использовать их для подстановки значений из URL. (Не забудьте соединить блок фильтра с целевым блоком задач.)

  • Установите значение по умолчанию для поля «Статус» — URL search params/task_status.

  1. Тестирование новой фильтрации: меняйте статус сколько угодно, всё переключается свободно.

  • Опционально: чтобы каждый пользователь видел только свои задачи, установите для поля «Ответственный» значение по умолчанию — «Текущий пользователь».

10.4 Новости, объявления и фокус информации

Доработаем нашу базу документов и выведем нужную информацию на панель!

При длительном управлении документацией материалов становится всё больше, и появляются разные потребности:

  • News: фокус на динамике проекта, достижениях, вехах
  • Временные объявления и напоминания

10.4.1 Горячая информация (News)

  1. Добавьте поле «Горячая информация»: в таблицу документов добавьте чекбокс «Горячая информация», отмечающий, является ли документ важной новостью.

  1. Отметка документа как новости: выберите любой документ, в форме редактирования добавьте поле «Горячая информация» и поставьте галочку.

  1. Создание блока «Список»: вернитесь на панель и создайте блок «Список» > выберите таблицу документов.

Перетащите блок вправо, выведите «Дата создания» и «Заголовок», подгоните ширину полей и отключите «Показывать заголовок».

  1. Отображение горячей информации:

Чтобы подчеркнуть актуальность, можно одновременно отображать время.

Сортируем по дате создания в обратном порядке — показываем самые свежие новости.

Простое горячее новостное окно готово — участники команды могут следить за важными событиями проекта в любое время!

10.4.2 Объявления

Теперь добавим простое публичное объявление: уверены, Вы видели его в нашем онлайн-Demo. Такие временные уведомления не нужно показывать долго и фиксировать в отчётах — это короткие напоминания и сообщения.

  1. Создайте блок Markdown: на свободной области панели добавьте блок Markdown с текстом объявления.

Подробнее о Markdown — в нашем официальном Demo, документации или учебнике «Лёгкая документация».

В качестве простого примера ниже — «Эффектное объявление» на HTML, чтобы продемонстрировать возможности блока Markdown.

  • Пример кода:
<div style="font-family: 'Arial', sans-serif; background-color: #e9f5ff; margin: 10px; padding: 10px; border: 2px solid #007bff; border-radius: 10px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);">
    <h1 style="color: #007bff; text-align: center; font-size: 2em; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);">Важное объявление</h1>
    <p style="font-size: 1.2em; line-height: 1.6; color: #333;">Уважаемые коллеги!</p>
    <p style="font-size: 1.2em; line-height: 1.6;">Чтобы повысить эффективность работы, <span style="color: red; font-weight: bold; font-size: 1.5em;">10 ноября</span> состоится общекорпоративный тренинг.</p>
    <p style="font-size: 1.2em; line-height: 1.6; font-style: italic;">Спасибо за участие!</p>
    <p style="font-size: 1.2em; line-height: 1.6;">С уважением,</p>
    <p style="font-size: 1.2em; line-height: 1.6;">Управленческая команда</p>
</div>

10.5 Итог

Мы успешно собрали персонализированную панель: команда может эффективнее управлять задачами, следить за прогрессом проекта и своевременно получать объявления и уведомления.

Фильтрация по статусам и ответственным, настройка горячих новостей — всё это направлено на улучшение пользовательского опыта, повышение удобства и гибкости системы.

Персонализированная панель готова — пробуйте, дорабатывайте под свои задачи и переходите в следующую главу!


Продолжайте экспериментировать! Если возникнут вопросы — не забывайте о официальной документации NocoBase и сообществе NocoBase.