Настройка ресурсов с помощью шаблона задач¶
ℹ️ Настройка работает, начиная с версии 2.262 Весы
Вид карточки ресурса и вид подсказки можно настроить с помощью шаблона задач в соответствии со следующими шагами:
- Создание шаблонов задач
В режиме администрирования перейдите к странице Шаблоны задач в разделе МП. Нажмите кнопку Создать.
В открывшемся окне задайте параметры:
-
Контекст — Cell
-
Тип — dynamic
-
Категория — Категория, для которой создается шаблон
Имя шаблона, язык и описание могут иметь любое значение.
Для ресурсов требуется создать два шаблона задач:
1. Шаблон карточки ресурса
2. Шаблон подсказки
- Настройка шаблона карточки ресурса
Стандартное тело динамического шаблона — это JSON трехуровневой структуры: sections -> blocks -> elements.
Базовый вид шаблона:
{
"contexts": [
{
"context": "resources",
"settings": {
"templateClass": "resources"
},
"sections": [
{
"blocks": [
{
"alias": "rightIcon",
"elements": \
{
}
}
\
},
{
"alias": "leftIcon",
"elements": \
{
}
}
\
},
{
"alias": "leftTop",
"elements": \
{
}
}
\
},
{
"alias": "rightTop",
"elements": \
{
}
}
\
},
{
"alias": "leftMid",
"elements": \
{
}
\
},
{
"alias": "rightMid",
"elements": \
{
}
\
},
{
"alias": "leftBottom",
"elements": \
{
}
\
},
{
"alias": "rightBottom",
"elements": \
{
}
\
}
]
}
]
}
]
}
Шаблон карточки ресурса описывается в блоке Sections — он содержит только один элемент, соответствующий карточке галереи. В блоке задаются параметры blocks и settings.
Секция Blocks
В секции Blocks задаются блоки внутри карточки ресурсов:
-
leftIcon — Большая левая иконка
-
rightIcon — Большая правая иконка
-
leftTop — Текст сверху слева
-
rightTop — Текст сверху справа
-
leftMid — Текст посередине слева
-
rightMid — Текст посередине справа
-
leftBottom — Текст снизу слева
-
rightBottom — Текст снизу справа
Текстовые элементы в правых блоках карточки ресурса выравниваются по правому краю. Если в шаблоне используются только правые блоки без левых, их содержимое всё равно прижимается к правому краю карточки.
Каждый блок содержит параметры:
-
alias — Определяет тип блока (leftIcon, rightIcon, leftTop и т.д.)
-
elements — Описывает элементы внутри карточки
При использовании иконок и мультизначных элементов платформа резервирует ширину блока так, чтобы правые текстовые элементы сохраняли выравнивание и не смещались внутрь карточки.
В карточке ресурса могут отображаться тексты и иконки задач из ДП Lookup и ДП Выбор нескольких задач из категории (Multilookup), а также аватары пользователей из ДП Выбор пользователей.
Описание параметров:
Параметр
Описание
type
Тип источника данных
extparam
ДП. В "dataKey" требуется указать ID ДП
barParam
Даты распределения ресурсов (дата начала, дата окончания, продолжительность, диапазон). В "dataKey" требуется указать "selfDatetime", а в параметре "style" тип нужного формата
name
Название ДП в категории
viewMode
Параметр вида. Принимает значения:
icon
Иконка
iconSet
Набор иконок
compact
Текст задачи значения ДП Lookup. Для ДП Multilookup значения отображаются через запятую.
userList
Значения ДП Выбор пользователей. В блоке "settings" в ключе "viewMode" потребуется задать вид значений: "userList1" или "userList2".
dataKey
ID ДП
Для ДП ("type":"extparam")
selfDatetime
Для дат распределения ресурсов ("type":"barParam")
style
Формат отображения даты и времени распределения ресурсов. Используется, когда "type":"barParam" и "dataKey":"selfDatetime".
Пример:
{
"contexts": [
{
"context": "resources",
"settings": {
"templateClass": "resources",
"rowHeight": "XXL"
},
"sections": [
{
"blocks": [
{
"alias": "rightIcon",
"elements": []
},
{
"alias": "leftIcon",
"elements": []
},
{
"alias": "leftTop",
"elements": \
{
"type": "barParam",
"dataKey": "selfDatetime",
"style": "dateTime"
}
\
},
{
"alias": "rightTop",
"elements": \
{
"type": "barParam",
"dataKey": "selfDatetime",
"style": "time"
}
\
},
{
"alias": "leftMid",
"elements": \
{
"type": "barParam",
"dataKey": "selfDatetime",
"style": "startTime"
}
\
},
{
"alias": "rightMid",
"elements": \
{
"type": "barParam",
"dataKey": "selfDatetime",
"style": "endTime"
}
\
},
{
"alias": "leftBottom",
"elements": \
{
"type": "barParam",
"dataKey": "selfDatetime",
"style": "duration"
}
\
},
{
"alias": "rightBottom",
"elements": \
{
"type": "barParam",
"dataKey": "selfDatetime",
"style": "date"
}
\
}
]
}
]
}
]
}
date
Отображение только даты.
Пример в пределах одного дня: "1 января".
Пример за пределами одного дня: "1 января - 10 декабря".
dateTime
Отображение даты и времени
Пример в пределах одного дня: "1 января с 10:00 до 18:00"
Пример за пределами одного дня: "С 1 января 10:00 до 10 декабря 18:00"
time
Отображение только времени начала и окончания вне зависимости от количества дней. Пример: "10:00-18:00"
startTime
Отображение только времени начала первого слота. Пример: "10:00"
endTime
Отображение только времени окончания последнего слота. Пример: "18:00"
duration
Отображение продолжительности в часах, днях или неделях.
Пример для одного дня: "9 ч". Указывается продолжительность в часах
Примеры для нескольких дней: "2 д", "2 д 4 ч". Продолжительность считается в рабочих днях.
fullDuration — отображение полной аллокации в часах без обрезки по рабочему времени/видимой части бара. Значение берётся из данных распределения ресурса. Используйте этот стиль, когда нужно показать фактически распределённый объём часов. При использовании fullDuration значение 24 часа (полный рабочий день 00:00–24:00) отображается корректно и не вызывает артефактов при редактировании бара вручную. Пример отображения: 24 ч.
settings
Секция настроек. Доступные параметры:
taskIcon
Отображение иконки самой задачи в ДП
valueGetter
Отдает значение "как есть" в API в результат шаблона. Значение "valueGetter": "\$self"
eventColor
Цвет карточки. Принимает одно из значений:
-
taskColor — Цвет задачи, в которой находится аллокация. Доступные значения: true/false. Используются настройки категории, откуда берется соответствующий цвет, так как задача автоматически наследует окраску категории.
-
extParam — Значение цвета берется из задачи, выбранной в ДП Lookup. В значении параметра указывается ID ДП. При создании задачи, когда значение параметра еще неизвестно, карточка окрашивается в серый. После сохранения проверяется наличие и значение ДП, и цвет обновляется соответственно. Если в задаче, которая выбрана в ДП Lookup, не установлен цвет, карточка будет окрашена в серый.
-
resourceTypeColor — Цвет из типа ресурсов. Доступные значения: true/false. Цвет карточки определяется типом ресурса, назначенного исполнителю. При этом стандартные синий и зеленый цвета не используются — вместо этого цвет берется из типа ресурса. При создании или редактировании задачи, а также при ее просмотре, карточки сразу окрашиваются в соответствующий цвет. Если задача создается из карточки, цвет типа ресурса применяется мгновенно, так как тип категории (и связанный с ним цвет) известен заранее.
Если в шаблоне заданы все три настройки, устанавливается следующий приоритет: сначала проверяется resourceTypeColor, затем taskColor, и в конце extParam. Если ни одно из этих свойств не задано, используются цвета по умолчанию: синий для плановых ресурсов и зеленый для фактических.
rowHeight
Высота строки. Настройка применяется как для карточек ресурсов, так и для пустых строк. Доступные значения:
-
XS
-
SM
-
MD
-
LG
-
XL
-
XXL
truncate
Обрезка текстовых значений полей и заголовков.
Возможные значения: true (обрезать, текст при достижении максимально доступного значения обрезается троеточием) / false (не обрезать, текст отображается полностью с переносом на следующую строку).
По умолчанию true.
showLabel
Отображать название (name) параметра. Доступные значения: true (отображать) / false (не отображать)
selectUsers
В качестве значения ДП Выбор пользователя отображаются только аватары. При "viewMode": "iconSet" (Вид отображения — Набор иконок)
Доступные значения: true (отображаются только аватары) / false (аватары не отображаются)
Вид отображения списка пользователей. Указывается в settings, если задано "viewMode": "userList". Доступные значения:
-
userList1 — Значения ДП Выбор пользователей отображаются в виде списка имен пользователей с аватарами
-
userList2 — Значения ДП Выбор пользователей отображаются в виде списка имен пользователей с аватарами и должностью, которая указана второй строкой
...
"viewMode": "userList",
"settings": {
"viewMode": "userList1"
}
Определяет, следует ли объединять полоски одного события или отображать их раздельно. Ключ представляет собой перечисление масштабов, позволяя настроить отображение событий для каждого уровня детализации. Например, можно указать все масштабы, при которых события будут дробиться по одному дню, или выбрать только один конкретный масштаб, чтобы сохранить сплошную линию подряд идущих задач без разбиения.
Доступные значения:
-
weekAndDay — Неделя.
-
weekAndMonth — Месяцы/недели.
-
weekDateAndMonth — Недели.
-
monthAndYear — Месяцы.
-
year — Годы.
-
hourAndDay — День.
-
weekAndDaySchedule — Расписание.
sourceSubcatId
ID категории, для которой будет применен данный шаблон. Опциональный параметр.
Если sourceSubcatId указан в шаблоне, он не будет применяться для других категорий.
Если в шаблоне не задан sourceSubcatId, он будет применен ко всем категориям без заданного шаблона, которые настроены на категорию, в которой находится данный шаблон. Если в категории добавлено несколько шаблонов без sourceSubcatId, будет применен первый из них.
Если в категории нет ни одного шаблона, будет применен шаблон по умолчанию.
Для одной категории (одного sourceSubcatId) не может существовать более одного шаблона — если для одной категории назначено несколько шаблонов с ее sourceSubcatId, будет применен случайный из них
Пример настроенного шаблона карточки ресурса:
{
"contexts": [
{
"context": "resources",
"settings": {
"templateClass": "resources",
"eventColor": {
"rowHeight": "XXL",
"taskColor": true
},
"sourceSubcatId": 61350
},
"sections": [
{
"blocks": [
{
"alias": "rightIcon",
"elements": \
{
"type": "extparam",
"name": " Ресурсы - Мультилукап для иконок",
"viewMode": "iconSet",
"dataKey": "94680",
"settings": {
"taskIcon": true,
"valueGetter": "\$self"
}
}
\
},
{
"alias": "leftIcon",
"elements": \
{
"type": "extparam",
"name": "Ресурсы - выбор пользователей",
"viewMode": "icon",
"dataKey": 94710,
"settings": {
"taskIcon": true,
"valueGetter": "\$self"
}
}
\
},
{
"alias": "leftTop",
"elements": \
{
"type": "extparam",
"name": "Ресурсы - выбор пользователей",
"viewMode": "iconSet",
"dataKey": 94710,
"settings": {
"taskIcon": true
}
}
\
},
{
"alias": "rightTop",
"elements": \
{
"type": "extparam",
"name": " Ресурсы - Мультилукап для иконок",
"viewMode": "iconSet",
"dataKey": 94680,
"settings": {
"taskIcon": true
}
}
\
},
{
"alias": "leftMid",
"elements": \
{
"type": "extparam",
"name": "Ресурсы - текст",
"viewMode": "compact",
"dataKey": 94690,
"settings": {}
}
\
},
{
"alias": "rightMid",
"elements": \
{
"type": "extparam",
"name": "Ресурсы - БТБФ",
"viewMode": "compact",
"dataKey": 94730,
"settings": {}
}
\
},
{
"alias": "leftBottom",
"elements": \
{
"type": "extparam",
"name": "Тест ресурсы - выпадающий список",
"viewMode": "compact",
"dataKey": 94220,
"settings": {}
}
\
},
{
"alias": "rightBottom",
"elements": \
{
"type": "extparam",
"name": "Ресурсы - лукап",
"viewMode": "compact",
"dataKey": 94700,
"settings": {}
}
\
}
]
}
]
}
]
}
- Настройка шаблона подсказки
Стандартное тело динамического шаблона — это JSON трехуровневой структуры: sections -> blocks -> elements.
Базовый вид шаблона:
{
"contexts": [
{
"context": "resources-tooltip",
"settings": {
"templateClass": "resources-tooltip",
"columnB": {
"align": "right"
}
},
"sections": [
{
"blocks": [
{
"alias": "columnA",
"elements": \
{
}
\
},
{
"alias": "columnB",
"elements": \
{
}
}
\
}
]
}
]
}
]
}
Шаблон карточки ресурса описывается в блоке Sections — он содержит только один элемент, соответствующий карточке галереи. В блоке задаются параметры blocks и settings.
Секция Blocks
В секции Blocks задаются блоки внутри подсказки:
-
columnA — Первая колонка
-
columnB — Вторая колонка
Каждый блок содержит параметры:
-
alias — Определяет тип блока (leftIcon, rightIcon, leftTop и т.д.)
-
elements — Описывает элементы внутри карточки
Для второй колонки columnB можно задать выравнивание по правому или левому краю. Сделать это можно [внутри settings в первой секции шаблона](../.
"columnB": {
"align": "right"
}
Пример настроенного шаблона подсказки:
{
"contexts": /[
{
"context": "resources-tooltip",
"settings": {
"templateClass": "resources-tooltip",
"columnB": {
"align": "right"
}
},
"sections": /[
{
"blocks": /[
{
"alias": "rightIcon",
"elements": /
{
"type": "extparam",
"name": " Ресурсы - Мультилукап для иконок",
"viewMode": "iconSet",
"dataKey": "94680",
"settings": {
"taskIcon": true,
"valueGetter": "/$self"
}
}
/
},
{
"alias": "columnA",
"elements": /
{
"type": "extparam",
"name": "Ресурсы - выбор пользователей",
"viewMode": "icon",
"dataKey": 94710,
"settings": {
"taskIcon": true,
"valueGetter": "/$self"
}
},
{
"type": "extparam",
"name": "Ресурсы - лукап",
"viewMode": "compact",
"dataKey": 94700,
"settings": {}
},
{
"type": "extparam",
"name": "Ресурсы - текст",
"viewMode": "compact",
"dataKey": 94690,
"settings": {}
},
{
"type": "extparam",
"name": "Ресурсы - БТБФ",
"viewMode": "compact",
"dataKey": 94730,
"settings": {}
}
/
},
{
"alias": "columnB",
"elements": /
{
"type": "extparam",
"name": "Ресурсы - выбор пользователей",
"viewMode": "iconSet",
"dataKey": 94710,
"settings": {
"taskIcon": true
}
},
{
"type": "extparam",
"name": "Тест ресурсы - выпадающий список",
"viewMode": "compact",
"dataKey": 94220,
"settings": {}
},
{
"type": "extparam",
"name": " Ресурсы - Мультилукап для иконок",
"viewMode": "iconSet",
"dataKey": 94680,
"settings": {
"taskIcon": true
}
}
/
}
/]
}
/]
}
/]
}
- Настройка шаблонизации в категории
В настройках категории в блоке Формы перейдите к настройкам шаблонизации.
Выберите в списке созданные шаблон. Задайте для них следующие настройки:
-
В колонке Клиент выберите значение all
-
Активируйте опцию Активность правила
-
Добавление кастомной настройки приложения
Для настройки ресурсов в кастомной настройке приложения custom-app-settings задается ключ resourcesSubcatDefaults.
Формат ключа:
"resourcesSubcatDefaults": [{"subcatId": int, "newTaskSubcatId": int, "postTaskMode": "newTaskForm", "ignoreCreateAllocation": bit, "resourceExtendAddEnable": bit, "performerExtParamId": int, "DatetimeFromExtParamId": int, "DatetimeToExtParamId": int, "createOnly": bit}]
"resourcesSubcatDefaults": [{"subcatId": 61360, "newTaskSubcatId": [61430\, "postTaskMode": "newTaskForm", "ignoreCreateAllocation": true, "resourceExtendAddEnable": true, "performerExtParamId": 96360, "DatetimeFromExtParamId": 96820, "DatetimeToExtParamId": 96830, "createOnly": true}]