Перейти к содержанию

Порталы: бизнес-логика

Обзор

Портал — это настраиваемое внутреннее рабочее пространство пользователя/организации, собранное из страниц и блоков.

Базовая иерархия:

Портал (template) -> Страница/лейаут -> Блоки -> Фильтры/параметры -> Данные

Бизнес-объекты

  • Шаблон портала (PortalGridTemplates).
  • Блок портала (PortalGridBlocks).
  • Фильтры блока (PortalGridBlockFilters, PortalGridFilterParams).
  • Доступ групп к порталу (PortalGridTemplateGroups).
  • Пользовательский шаблон (PortalGridUserTemplates).

Основные сценарии

1. Открытие портала

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

2. Загрузка данных блока

Каждый блок получает данные из своего backend-источника и отображает их в соответствии с типом блока.

3. Изменение конфигурации блока

Администратор меняет параметры/фильтры блока; пользователь видит обновлённый контент после повторной загрузки.

4. Управление доступом

Доступ к порталу задаётся группами; изменение списка групп сразу меняет круг видимости.

5. Пользовательская персонализация

Пользователь может иметь собственный layout (user template) поверх админского шаблона.

Бизнес-правила

  1. Если у пользователя нет прав на template, портал не должен отображаться в списке.
  2. Блок отображается только при валидной конфигурации и доступном data-source.
  3. Фильтры блока не должны нарушать права доступа пользователя к исходным данным.
  4. Массовый апдейт user templates используется для синхронизации после изменений базового шаблона.

Структура портала

Уровень Описание
Группа Объединяет секции в виде вкладок
Секция Конкретный портал, с заголовком или без
Блок (виджет) Контент в секции

Главный портал системы — стартовая страница (по клику на логотип). Помимо главного, отдельные порталы могут быть у подразделений и групп — ссылки на них обычно добавляются в боковую панель «Избранное».

Каталог виджетов

Виджет Назначение
Баннер-кнопка (с 2.261) Баннер с переходом по ссылке (модалка / Ctrl+клик — новая вкладка)
График Сводные данные в табличном или графическом виде: линейная диаграмма, столбчатая, секторная (круговая), спидометр, воронка продаж, линейная с накоплением (вертикальная и горизонтальная)
Группа виджетов Несколько виджетов как вкладки. Сохраняются настройки каждого. При переполнении — кнопка «Ещё» с выпадающим списком
Диаграмма Ганта Список задач в виде Ганта прямо на портале
Избранное (с 2.263) Избранное пользователя по выбранным типам объектов (задачи, пользователи, пространства, категории, чаты, отчёты, ссылки)
Календарь Данные с привязкой к дате (задачи, дни рождения и т.п.). При выборе даты в календаре обновляется список под ним. Если выбран месяц — данные за месяц. Лимит 20 записей
Календарь New (с 2.262) Полноценный календарь как в профиле. Соответствует часовому поясу пользователя
Контакты (с 2.262) Список, карусель или круги: недавние/звонки/коллеги/избранные/отдел/преднастроенный список. Звонки учитывают p2p-вызовы
Лента социальной сети Последние публикации сообществ. Несколько лент в виде вкладок. Полный функционал (просмотр, комментарии, создание/редактирование/удаление по правам). Кнопка «Перейти ко всем постам» — на источник
Кнопка-Тикер (с 2.262) Счётчик с иконкой или кнопка создания задачи. Открывает ссылку (модалка / Ctrl+клик — вкладка)
Меню Произвольное число кнопок-переходов на страницы
Новости Задачи новостных категорий — большой блок, список или карусель. От 1 до 6 (кроме 4). Опции: автор, рубрика, аннотация, дата, лайки, просмотры. Кнопка справа открывает галерею с фильтром по тегам и карточкой новости (с правом редактирования — кнопка перехода в табличный вид)
Поиск задач Список задач по условиям отбора. На каждой строке могут быть кнопки для действий (приоритет, переход по статусу)
Список задач (с 2.262) Задачи текущего пользователя: на сегодня / активные / недавние / новые из категории / просроченные / на подписи / избранные. Динамическое обновление без перезагрузки
Степпер Пошаговый процесс с вариантами развития; в конце — действие
Счётчики (с 2.262) Различные счётчики на странице
Таблица Произвольная информация в табличном виде

Подробные настройки виджетов — admin.md и portal-api-cookbook.md.

Зависимости

  • grids, reports, tasks, notifications, auth.

Операционные риски

  • Пустые блоки из-за битых фильтров/невалидного SQL-источника.
  • Расхождение между admin template и user template.
  • Ошибки доступа к порталу при неконсистентных групповых правах.

Что проверять при инцидентах

  1. Запрос загрузки портала и полученный список блоков.
  2. Данные конфигурации блока и его фильтров.
  3. Таблицу PortalGridTemplateGroups для пользователя.
  4. Наличие устаревшего PortalGridUserTemplates.