НАЧАЛО >> Workflow >> Модули Workflow >> WorkflowView📄 Скачать в DOCX
Модуль WorkflowView хранит представления списков, карточек, форм создания, досок и внешних страниц, а также строит универсальные страницы просмотра записей проекта.
| Поле | Назначение |
|---|---|
920 |
тип записи WORKFLOWVIEW |
1^A |
ключ workflow |
1^B |
ключ представления |
1^C |
название |
1^D |
активность |
1^E |
тип записи v920 |
1^F |
тип представления: list, detail, create, page, kanban или timebox |
1^G |
источник заголовка |
1^H |
модуль форматов по умолчанию |
1^I |
фильтр списка |
1^J |
записей на странице |
1^K |
текст пустого списка |
1^L |
страница карточки |
1^M |
ключ renderer-профиля для специализированного представления |
1^N |
формат проверки доступа |
1^O |
требовать авторизацию |
1^P |
формат заголовка страницы |
1^Q |
модуль формата заголовка страницы |
1^R |
группа верхней навигации |
1^S |
зарезервировано |
1^T |
порядок пункта в навигации |
1^U |
показывать пункт в навигации |
1^V |
фильтр для счетчика badge в навигации |
1^W |
подпись badge |
1^X |
подсказка badge |
1^Y |
административное описание представления |
1^Z |
canonical route страницы |
2 |
колонки списка |
3 |
секции карточки |
4 |
настройки формы создания для представлений типа create |
5 |
действия после создания записи |
6 |
варианты вывода desktop, tablet, mobile, print, embed |
Список состоит из колонок поля 2. Для каждой колонки задаются заголовок, формат, модуль формата, выравнивание, ширина, CSS-классы и признаки компактного отображения. Содержимое ячеек формируется форматами, поэтому прикладный модуль может управлять HTML без изменения WorkflowView.
Фильтр списка берется из самого представления или из WorkflowFilterScheme.
Состав верхней навигации задает WorkflowViewScheme: в меню попадают только страницы, у которых в активной схеме есть связь pageKey -> viewKey. WorkflowView хранит параметры показа связанного пункта: группа навигации в поле 1^R, порядок в 1^T, признак показа в 1^U, canonical route в 1^Z и badge-фильтр. Одинаковая группа навигации объединяет страницы в одну панель. Если 1^Z пусто, используется единый маршрут Workflow/Show.
Тип page используется для внешних страниц, которые должны отображаться в общей навигации, но не строят список или карточку через WorkflowView.
Типы kanban и timebox используются для досочных представлений проекта. Ключ записи WORKFLOWVIEW является ключом настройки доски, а пользовательский pageKey задается строкой WorkflowViewScheme. WorkflowView отвечает за страницу, заголовок, параметры пункта навигации, права на представление, колонки, карточки, быстрые фильтры и drag-and-drop.
Badge рядом с пунктом навигации считается через WorkflowFilter: в 1^V указывается ключ фильтра, в 1^W - короткая подпись, в 1^X - подсказка. При подсчете игнорируются текущие параметры формы фильтра и строка поиска, чтобы счетчик показывал устойчивое количество записей по настроенному фильтру.
Форма фильтров списковой страницы также строится универсально: проект, статус, строка поиска и дополнительные параметры берутся из выбранного WorkflowFilter.
Поле 6 задает variants одного представления для разных контекстов: desktop, tablet, mobile, print, embed. Variant может сузить базовое представление: изменить размер страницы, добавить CSS-контекст плотности и layout, оставить только часть базовых колонок или скрыть часть секций карточки. Variant не добавляет новые права, новые колонки, новые секции или новые действия.
Если variant отключен, может быть указан fallback на другой variant. Параметр variant передается в форматы колонок и секций, чтобы прикладной модуль мог адаптировать HTML без создания отдельного представления на каждый вариант вывода.
Карточка состоит из секций поля 3. Каждая секция может выводить формат, заголовок, CSS-класс и режим отображения. Стандартный блок истории Workflow выводится ядром Workflow и не должен дублироваться в прикладной странице.
Поддерживаемые типы секций:
| Тип | Назначение |
|---|---|
format |
выполнить формат ИРБИС 128/64 по текущей записи |
comments |
вывести общий блок комментариев Collaboration |
links |
вывести общий блок исходящих и входящих связей 113 LINK по типам связей WorkflowProject.linkTypes |
actions |
вывести доступные действия переходов Workflow |
Секция links не требует прикладного формата: WorkflowView сам показывает существующие связи, форму добавления и удаление связи при наличии права редактирования исходной записи. Заголовок связанной записи строится как [идентификатор] brief, где идентификатор берется по настройкам WorkflowProject, а brief - стандартный краткий формат типа записи.
Представление типа create строит страницу создания записи без показа полного редактора he3. Экран выбирается через WorkflowScreenScheme: в поле 4^A хранится операция, обычно create, а схема проекта связывает эту операцию с записью WorkflowScreen.
Публичный renderer читает ту же WS/WSS-схему, что и he3, но поддерживает только ограниченный набор безопасных элементов ввода: обычные строки, многострочный текст, переключатели и специальные поля 128001/128002 с JSON-настройками DopInf. На сервере схема читается повторно, поэтому лишние POST-поля игнорируются и не попадают в запись.
В поле 4 задаются renderer, право на проект, текст кнопки и сообщение после успешного создания. В поле 5 задаются post-create действия того же вида, что и действия перехода: command или gbl. Они выполняются после применения данных формы и начального статуса, но до сохранения записи.
WorkflowView предоставляет методы:
| Метод | Назначение |
|---|---|
List_RenderConfiguredListPage() |
полностью построить страницу списка по проекту, типу записи и ключу страницы |
Card_RenderConfiguredRecordPage() |
полностью построить карточку записи |
Create_RenderConfiguredCreatePage() |
полностью построить страницу создания записи |
Board_RenderConfiguredBoardPage() |
полностью построить страницу доски через профиль WorkflowView |
Page_RenderConfiguredPage() |
выбрать renderer по viewType и полностью построить страницу |
Navigation_RenderConfiguredNavigation() |
построить верхнюю навигацию по WorkflowViewScheme и фильтры страницы |
List_RenderConfiguredList() |
построить содержимое списка |
Card_RenderConfiguredRecord() |
построить содержимое карточки |
RenderRecordLinks() |
построить общий блок связей 113 LINK для карточки |
Create_RenderConfiguredCreate() |
построить и обработать содержимое формы создания |
Navigation_BuildCanonicalUrl() |
построить стабильный URL представления |
Прикладные .page обычно не нужны для списков, карточек, форм создания и досок: пользовательский маршрут Workflow/Show сам выбирает нужный renderer по viewType. Отдельная .page остается только для viewType=page, если страницу обслуживает внешний модуль.
Кнопки действий в карточке строятся из доступных переходов Workflow. Доступность определяется текущим статусом, правами и condition-форматом.