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

Настройка ресурсов с помощью шаблона задач

ℹ️ Настройка работает, начиная с версии 2.262 Весы

Вид карточки ресурса и вид подсказки можно настроить с помощью шаблона задач в соответствии со следующими шагами:

  1. Создание шаблонов задач

В режиме администрирования перейдите к странице Шаблоны задач в разделе МП. Нажмите кнопку Создать.

В открывшемся окне задайте параметры:

  • Контекст — Cell

  • Тип — dynamic

  • Категория — Категория, для которой создается шаблон

Имя шаблона, язык и описание могут иметь любое значение.

Для ресурсов требуется создать два шаблона задач:

1. Шаблон карточки ресурса

2. Шаблон подсказки

  1. Настройка шаблона карточки ресурса

Стандартное тело динамического шаблона — это 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": \
               {
               }
             \
           }
         ]
       }
     ]
   }
 ]
}
Для ключей "context" и "templateClass" требуется задать значение "resources".

Шаблон карточки ресурса описывается в блоке 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"
                }
... needToSeparate

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

Доступные значения:

  • 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": {}
               }
             \
           }
         ]
       }
     ]
   }
 ]
}
Сохраните созданный шаблон.

  1. Настройка шаблона подсказки

Стандартное тело динамического шаблона — это JSON трехуровневой структуры: sections -> blocks -> elements.

Базовый вид шаблона:

{
 "contexts": [
   {
     "context": "resources-tooltip",
     "settings": {
       "templateClass": "resources-tooltip",
       "columnB": {
         "align": "right"
       }
     },
     "sections": [
       {
         "blocks": [
           {
             "alias": "columnA",
             "elements": \
               {
               }
             \
           },
           {
             "alias": "columnB",
             "elements": \
               {
                 }
               }
             \
           }
         ]
       }
     ]
   }
 ]
}
Для ключей "context" и "templateClass" требуется задать значение "resources-tooltip"

Шаблон карточки ресурса описывается в блоке Sections — он содержит только один элемент, соответствующий карточке галереи. В блоке задаются параметры blocks и settings.

Секция Blocks

В секции Blocks задаются блоки внутри подсказки:

  • columnA — Первая колонка

  • columnB — Вторая колонка

Каждый блок содержит параметры:

  • alias — Определяет тип блока (leftIcon, rightIcon, leftTop и т.д.)

  • elements — Описывает элементы внутри карточки

Для второй колонки columnB можно задать выравнивание по правому или левому краю. Сделать это можно [внутри settings в первой секции шаблона](../.

   "columnB": {
         "align": "right"
}
Параметры elements соответствуют шаблону карточки ресурса, за исключением того, что для подсказок нет ограничения по высоте.

Пример настроенного шаблона подсказки:

{
 "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
                 }
               }
             /
           }
         /]
       }
     /]
   }
 /]
}
Сохраните созданный шаблон.

  1. Настройка шаблонизации в категории

В настройках категории в блоке Формы перейдите к настройкам шаблонизации.

Выберите в списке созданные шаблон. Задайте для них следующие настройки:

  • В колонке Клиент выберите значение all

  • Активируйте опцию Активность правила

  • Добавление кастомной настройки приложения

Для настройки ресурсов в кастомной настройке приложения custom-app-settings задается ключ resourcesSubcatDefaults.

Формат ключа:

"resourcesSubcatDefaults": [{"subcatId": int, "newTaskSubcatId": int, "postTaskMode": "newTaskForm", "ignoreCreateAllocation": bit, "resourceExtendAddEnable": bit, "performerExtParamId": int, "DatetimeFromExtParamId": int, "DatetimeToExtParamId": int, "createOnly": bit}]
Параметры: subcatId — ID категории в представлении "Ресурсы". newTaskSubcatId — ID категории, в которой будут поставлены новые задачи. Примечание: при указании newTaskSubcatId кнопка "+" в представлении Ресурсы будет доступна только если у пользователя есть право на создание задач в указанной категории. Если право отсутствует, кнопка скрывается — даже если у пользователя есть право создания в других категориях представления. postTaskMode — Режим формы создания задачи. Возможное значение: newTaskForm — открывать карточку создания новой задачи. Если параметр не задан, в качестве формы создания отображается стандартное окно добавления ресурсов с возможностью ввода текста задачи. ignoreCreateAllocation — Отключение возможности создания. Возможные значения: true (Возможность создания задач по кнопке в правой части представления будет недоступна) / false (Создание задач доступно). resourceExtendAddEnable — Включение возможности расширенного добавления. При активации в пользовательском интерфейсе опция добавляет дополнительное пространство в каждую строку, что делает доступной кнопку добавления ресурсов даже при наличии уже назначенных ресурсов в слоте. Возможные значения: true (В списке доступных действий по кнопке с многоточием станет доступен пункт "Расширенное добавление") / false (Расширенное добавление недоступно). performerExtParamId — ID ДП с типом "Lookup", источником которого является категория со значениями исполнителей. DatetimeFromExtParamId — ID ДП с типом "Дата и время", которое при создании автоматически будет заполнено датой начала распределения ресурса. DatetimeToExtParamId — ID ДП с типом "Дата и время", которое при создании автоматически будет заполнено датой окончания распределения ресурса. createOnly — Включение режима "Только создание", при котором в представлении категории доступно только создание и просмотр значений, а изменение их с помощью перетаскивания краев карточки ресурса запрещено. Пример:
"resourcesSubcatDefaults": [{"subcatId": 61360, "newTaskSubcatId": [61430\, "postTaskMode": "newTaskForm", "ignoreCreateAllocation": true, "resourceExtendAddEnable": true, "performerExtParamId": 96360, "DatetimeFromExtParamId": 96820, "DatetimeToExtParamId": 96830, "createOnly": true}]