Show/Hide Toolbars

Руководство администратора

Настройка канбана с помощью публикации

Ссылки Назад Вверх Вперед

В примере, рассмотренном ниже, на Канбан-доске отображаются задачи из одной категории, а перемещение задач между столбцами соответствует смене статуса задачи. В целом такого ограничения нет, и набор данных может формироваться произвольно, если в этом есть бизнес-смысл.

Публикации удобно настраивать с помощью SVELTE.

Реализация

Для вывода Канбан-доски нужно настроить три публикации пакетов действий:

1. Публикация, которая описывает структуру данных.

2. Публикация, которая возвращает данные.

3. Публикация, которая выполняет перемещение Канбан-карточки между столбцами.

Пусть в нашем примере название первой публикации — kanban-structure, название второй публикации — kanban-data, название третьей публикации — kanban-step.

Вызов Канбан-доски

Интерфейс Канбан-доски вызывается следующим образом:

~/spa/kanban/kanban-structure

где ~ — адрес приложения "Первая Форма", а kanban-structure — название публикации, возвращающей структуру данных.

1. Публикация, которая описывает структуру данных

В нашем примере это публикация kanban-structure.

Входящих параметров у публикации нет. Тип запроса — GET.

Пакет содержит единственное действие HTTP ответ, которое возвращает результат в формате JSON.

Тело ответа содержит описание структуры данных, строки вызова двух остальных публикаций и шаблоны вывода Канбан-карточек. Эти шаблоны описываются в формате HTML и mustache (по аналогии с виджетами Smart Html).

2. Публикация, возвращающая данные

В нашем примере это публикация kanban-data.

Входящих параметров у публикации нет. Тип запроса — GET.

Пакет содержит единственное действие HTTP ответ, которое возвращает результат в формате JSON.

Тело ответа формируется с помощью смарт-выражения.

3. Публикация, выполняющая перемещение карточки между столбцами

В нашем примере это публикация kanban-step. Тип запроса — POST.

У публикации есть один входящий параметр — строка requestBody. Она формируется автоматически — в ней передаются данные о перемещаемой карточке. При настройке смарт-пакета к содержимому строки requestBody можно обращаться из смарт-выражений как к параметру @eventParam0.

Структура строки requestBody имеет формат JSON и содержит два ключа: item и newColumn:

значение ключа item это структура, которая соответствует элементу elements из публикации с данными.

значение ключа newColumn — ID целевого столбца, в который перемещается карточка.

{
 "item":{
    "column":1,
    "label":"...",
    "style":"...",
    "canMove":true,
    "urlToOpen":"...",
    "info":{
       ...
    }
 },
 "newColumn":"2"
}

Пакет публикации должен содержать два смарт-действия: первое выполняет перемещение, а второе возвращает код ответа. Второе смарт-действие необходимо, чтобы после перемещения канбан-доска автоматически обновилась.

3.1. Смарт-действие Изменить статус задачи.

hmtoggle_arrow0 Пример настройки смарт-действия Изменить статус задачи

warning_icon  Поскольку в данном примере перемещение выполняется как принудительный переход в статус, не выполняются никакие проверки и смарт-автоматизации, настроенные на переходах.

Вместо действия Изменить статус задачи можно использовать действия Выполнить переход по маршруту или Перейти в заданный статус, но в этом случае будут выполняться проверки и действия, настроенные на переходах, и их нужно обрабатывать отдельно. Например, если на переходе запрашивается подпись, нужно выделить отдельный столбец Канбан-доски для промежуточного статуса На подписи. Если на переходе проверяется обязательность заполнения ДП, эти ДП лучше отображать в шаблоне карточки, и т.д.

Если условия перехода не выполняются, при перетаскивании карточки пользователю отобразится сообщение "Не удалось перенести элемент", а в журнал ошибок будет записано сообщение об ошибке.

warning_icon  Дополнительная возможность ограничить право перемещать задачи между столбцами Канбан-доски — установить ограничение по правам доступа к публикации.

3.2. Смарт-действие HTTP ответ

hmtoggle_arrow0 Пример настройки смарт-действия HTTP ответ

Возможные ошибки

Если при перетаскивании карточки задачи генерируется ошибка и отображается сообщение "Не удалось перенести элемент", рассмотрите возможные причины:

1. У пользователя недостаточно прав.

Если для перемещения карточки используется смарт-действие Изменить статус задачи, инициатором действия должен быть пользователь с правом Администратор задач в данной категории — только он имеет право выполнять принудительный переход.

Для публикации, которая отвечает за перемещение карточки, могут быть настроены ограничения по правам доступа.

2. Не пройдены проверки, настроенные на переходе.

Если для перемещения карточки используется смарт-действие Выполнить переход по маршруту или Перейти в заданный статус, то при переходе выполняются все проверки — заполнение обязательных ДП, корректность их заполнения и другие смарт-автоматизации. Если какая-то проверка не пройдена, генерируется ошибка.

3. Нет подходящего перехода.

Если для перемещения карточки используется смарт-действие Перейти в заданный статус, но в категории не настроен переход из исходного статуса в целевой, то при попытке переместить карточку генерируется ошибка. Чтобы ошибка не возникала, в настройках смарт-действия нужно отключить флажок Кинуть ошибку, если не найден переход.

Полезные ссылки