Преднастроенные доски из скриптового модуля приложения "Интерактивная доска" 2.8.0 и выше
Каждая интерактивная доска отображается в отдельном контенте, см. Размещение контента с приложением "Интерактивная доска" на карточке объекта.
Код контента и текст скрипта в модуле определяют настройку доски. В разделе приведено описание примеров досок, которые содержатся в скриптовом модуле.
При настройке скриптового модуля используйте коды атрибутов, соответствующие объектной модели Вашего приложения.
- По ответственным сотрудникам
- По статусам
- По дедлайнам
- По статусам и ответственным сотрудникам
- Доска-пример
Встроенное приложение размещено в контенте с кодом teamServiceCallsByEmployeesBoard.
На доске отображаются запросы (serviceCall) сотрудников команды с разделением запросов по ответственным. Для каждого ответственного отображается отдельный столбец. В столбце "Без ответственного" находятся запросы, где не назначен конкретный сотрудник. При переносе запроса между столбцами меняется ответственный за запрос.
На плашке запроса отображается название и тема запроса, дедлайн, аватар ответственного, иконка запроса (если есть), цветовой индикатор приоритета (если задан). При наведении курсора на аватар ответственного отображается всплывающая подсказка с именем ответственного, при наведении на иконку запроса — подсказка с названием иконки, при наведении на цветовой индикатор приоритета — подсказка с названием приоритета.
final KanboardParams teamServiceCallsByEmployeesBoard = new KanboardParams(
contentCode: 'teamServiceCallsByEmployeesBoard',
columnParams: { String subjectUuid ->
Collection<ISDtObject> members = utils.get(subjectUuid).members.grep({ !it.removed })
return [new ColumnParam(title: 'Без ответственного', linkValues: [null])] + members.collect(
{
new ColumnParam(title: it.title, linkValues: [it.UUID])
}
)
},
valueToLink : { String subjectUuid, ISDtObject item -> item.responsibleEmployee?.UUID },
attributeCodeForEditing: 'responsibleEmployee'
)
Встроенное приложение размещено в контенте с кодом teamServiceCallsByStatesBoard.
На доске отображаются запросы (serviceCall) сотрудников команды с разделением запросов по статусам. Для каждого статуса, кроме "Закрыт" (closed), отображается отдельная столбец. При переносе запроса между столбцами меняется статус запроса.
На плашке запроса отображается название и тема запроса, дедлайн, аватар ответственного, иконка запроса (если есть), цветовой индикатор приоритета (если задан). При наведении курсора на аватар ответственного отображается всплывающая подсказка с именем ответственного, при наведении на иконку запроса — подсказка с названием иконки, при наведении на цветовой индикатор приоритета — подсказка с названием приоритета.
final KanboardParams teamServiceCallsByStatesBoard = new KanboardParams(
contentCode: 'teamServiceCallsByStatesBoard'
)
Встроенное приложение размещено в контенте с кодом teamServiceCallsByDeadlinesBoard.
На доске отображаются запросы (serviceCall) сотрудников команды, разделенные по времени наступления дедлайна по столбцам:
- "Дедлайн не задан";
- "Дедлайн уже наступил!";
- "Текущая дата (в формате dd.MM.yyyy)";
- "Текущая дата + 1 день (в формате dd.MM.yyyy)";
- "Текущая дата + 2 дня (в формате dd.MM.yyyy)";
- "Текущая дата + 3 дня (в формате dd.MM.yyyy)";
- "Текущая дата + 4 дня (в формате dd.MM.yyyy)";
- "5 дней и более".
На плашке запроса отображается название и тема запроса, дедлайн, аватар ответственного, иконка запроса (если есть), цветовой индикатор приоритета (если задан). При наведении курсора на аватар ответственного отображается всплывающая подсказка с именем ответственного, при наведении на иконку запроса — подсказка с названием иконки, при наведении на цветовой индикатор приоритета — подсказка с названием приоритета.
final KanboardParams teamServiceCallsByDeadlinesBoard = new KanboardParams(
contentCode: 'teamTasksByDeadlinesBoard',
columnParams: { String subjectUuid ->
Date now = new Date()
ArrayList<ColumnParam> result = [
new ColumnParam(
title: 'Дедлайн не задан',
color: '#808080',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
return extractor.deadline(subjectUUID, item) == null
}
),
new ColumnParam(
title: 'Дедлайн уже наступил!',
color: '#FF0000',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) < COMPARE_DATE_FORMAT.format(now)
}
)
] + (0..4).collect {
new ColumnParam(
title: PRESENTATION_DATE_FORMAT.format(now + it),
color: '#FFFF99',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) == COMPARE_DATE_FORMAT.format(now + it)
})
} + [new ColumnParam(
title: '5 дней и более',
color: '#00CC66',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) >= COMPARE_DATE_FORMAT.format(now + 5)
}
)]
return result
},
attributeCodeForEditing: 'timeAllowanceTimer'
)
По статусам и ответственным сотрудникам
Встроенное приложение размещено в контенте с кодом teamServiceCallsByStatesAndResponsibleBoard.
На доске отображаются запросы (serviceCall) сотрудников команды с разделением по статусам и ответственным. Для каждого статуса отображается отдельный столбец, для каждого ответственного отображается отдельная дорожка (горизонтально). При переносе запроса между столбцами меняется его статус, при переносе запроса между дорожками меняется ответственный за запрос.
На плашке запроса отображается название и тема запроса, дедлайн, аватар ответственного, иконка запроса (если есть), цветовой индикатор приоритета (если задан). При наведении курсора на аватар ответственного отображается всплывающая подсказка с именем ответственного, при наведении на иконку запроса — подсказка с названием иконки, при наведении на цветовой индикатор приоритета — подсказка с названием приоритета.
final KanboardParams teamServiceCallsByStatesAndResponsibleBoard = new KanboardParams(
items: { String subjectUuid ->
return utils.find(
'serviceCall',
['responsible': subjectUuid, 'removed': false, 'state': op.not('closed')]
)
},
contentCode: 'teamServiceCallsByStatesAndResponsibleBoard',
rowParams: { String subjectUuid ->
utils.find('employee', [teams: subjectUuid, removed: false])
.collect {
new RowParam(title: it.title as String,
linkValues: [it.UUID] as List<String>)
}
}
)
Встроенное приложение размещено в контенте с кодом teamTasksByStatesAndDeadlinesExtendedExampleBoard.
На доске отображаются задачи (task) сотрудников команды, разделенные столбцам и дорожкам.
Столбцы соответствуют статусам:
- "Запланирована" (registered);
- "Остальные открытые";
- "Выполнена" (closed).
Дорожки соответствуют времени наступления дедлайна:
- "Дедлайн не задан";
- "Дедлайн уже наступил!";
- "Текущая дата (в формате dd.MM.yyyy)";
- "Текущая дата + 1 день (в формате dd.MM.yyyy)";
- "Текущая дата + 2 дня (в формате dd.MM.yyyy)";
- "Текущая дата + 3 дня (в формате dd.MM.yyyy)";
- "Текущая дата + 4 дня (в формате dd.MM.yyyy)";
- "5 дней и более".
При переносе задачи между столбцами меняется статус задачи.
На плашке задачи отображается название задачи, описание, дедлайн, аватар ответственного. При наведении курсора на аватар отображается всплывающая подсказка с именем ответственного.
Иконка задачи и цветовой индикатор приоритета отображаются при выполнении условий:
-
в классе "Задача" настроены атрибуты с кодами icon и colorIndicator, к которым привязана настройка иконки и индикатора в модуле;
-
настроены справочники, на которые ссылаются атрибуты;
-
у задачи заполнены настроенные атрибуты.
final KanboardParams teamTasksByStatesAndDeadlinesExtendedExampleBoard = new KanboardParams(
contentCode: 'teamTasksByStatesAndDeadlinesExtendedExampleBoard',
/**
* Выводим на доску все неархивные объекты класса 'Задача' (task) в ответственности
* команды.
*/
items: { String subjectUuid ->
utils.find('task', ['responsible': subjectUuid, 'removed': false])
},
/**
* В качестве дедлайна на доске будет выводиться значение атрибута 'Дедлайн' (deadline)
* класса 'Задача' (task).
*/
deadline: { String subjectUuid, ISDtObject item ->
item.hasProperty('deadline') ? item.deadline : null
},
/**
* В качестве описания на доске будет выводиться значение атрибута 'Описание' (description)
* класса 'Задача' (task). Значение очищается от html-тегов с помощью метода api.string.htmlToText.
*/
description: { String subjectUuid, ISDtObject item
->
item.hasProperty('description') ? api.string.htmlToText(item.description) ?: '' : ''
},
columnParams: { String subjectUuid ->
return [new ColumnParam(
/**
* Определяем заголовок колонки.
*/
title: 'Запланирована',
/** Определяем статусы, задачи с которыми будут попадать в данную колонку.
* Может быть задано несколько кодов статусов. В этом случае, при
* перетаскивании в колонку, надо будет выбрать, в какой именно статус из
* предложенных будет произведен переход. Набор предлагаемых статусов можно
* урезать с помощью параметра колонки customStatesCodes.
*/
linkValues: ['registered'],
/**
* Определяем цвет колонки.
*/
color: '#33CCFF'
),
new ColumnParam(
title: 'Остальные открытые',
linkValues: api.metainfo.getMetaClass('task').workflow.states.findResults{
if (!['registered', 'closed'].contains(it.code))
{
return it.code
}
},
color: '#808080'
),
new ColumnParam(
title: 'Выполнена',
linkValues: ['closed'],
color: '#00CC66'
)
]
},
/**
* Пример настройки вывода на карточку задачи на доске иконки из справочника из атрибута с
* кодом 'icon'. При необходимости использования какого-то другого атрибута - нужно
* указать его код.
*/
iconUUID: { String subjectUuid, ISDtObject item
->
item.hasProperty('icon') ? item.icon?.icon?.getAt(0)?.UUID : ''
},
/**
* Пример настройки названия, которое будет появляться при наведении мыши на иконку,
* настроенную выше. При необходимости использования какого-то другого атрибута - нужно
* указать его код.
*/
iconTitle: { String subjectUuid, ISDtObject item
->
item.hasProperty('icon') ? item.icon?.title : ''
},
/**
* Пример настройки вывода на карточку задачи на доске цветового индикатора, который берется
* из справочника из атрибута с кодом 'colorIndicator'. При необходимости использования
* какого-то другого атрибута - нужно указать его код.
*/
indicatorColor: { String subjectUuid, ISDtObject item
->
item.hasProperty('colorIndicator') ? item.colorIndicator?.color : ''
},
/**
* Пример настройки названия, которое будет появляться при наведении мыши на цветовой индикатор,
* который берется из справочника из атрибута с кодом 'colorIndicator'. При необходимости
* использования какого-то другого атрибута - нужно указать его код.
*/
indicatorTitle: { String subjectUuid, ISDtObject item
->
item.hasProperty('colorIndicator') ? item.colorIndicator.title : ''
},
rowParams: { String subjectUuid ->
Date now = new Date()
List<RowParam> params = [
new RowParam(
title: 'Дедлайн не задан',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
return extractor.deadline(subjectUUID, item) == null
}
),
new RowParam(
title: 'Дедлайн уже наступил!',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) < COMPARE_DATE_FORMAT.format(now)
}
)]+ (0..4).collect {
new RowParam(
title: PRESENTATION_DATE_FORMAT.format(now + it),
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) == COMPARE_DATE_FORMAT.format(now + it)
}
)
} + [
new RowParam(
title: '5 дней и более',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) >= COMPARE_DATE_FORMAT.format(now + 5)
}
)
]
return params
}
)
Встроенное приложение размещено в контенте с кодом employeeServiceCallsByStatesBoard.
На доске отображаются запросы (serviceCall) в ответственности сотрудника с разделением запросов по статусам. Для каждого статуса, кроме "Закрыт" (closed), отображается отдельный столбец. При переносе запроса между столбцами меняется статус запроса.
На плашке запроса отображается название и тема запроса, дедлайн, иконка запроса (если есть), цветовой индикатор приоритета (если задан). Аватар ответственного не отображается. При наведении курсора на иконку запроса отображается всплывающая подсказка с названием иконки, при наведении на цветовой индикатор приоритета — подсказка с названием приоритета.
final KanboardParams employeeServiceCallsByStatesBoard = new KanboardParams(
contentCode: 'employeeServiceCallsByStatesBoard',
assigneeUUID: { String subjectUuid, ISDtObject item -> null },
assigneeTitle: { String subjectUuid, ISDtObject item -> null },
assigneeAvatarUUID: { String subjectUuid, ISDtObject item -> null }
)
Встроенное приложение размещено в контенте с кодом employeeServiceCallsByDeadlinesBoard.
На доске отображаются запросы (serviceCall) в ответственности сотрудника, разделенные по времени наступления дедлайна по столбцам:
- "Дедлайн не задан";
- "Дедлайн уже наступил!";
- "Текущая дата (в формате dd.MM.yyyy)";
- "Текущая дата + 1 день (в формате dd.MM.yyyy)";
- "Текущая дата + 2 дня (в формате dd.MM.yyyy)";
- "Текущая дата + 3 дня (в формате dd.MM.yyyy)";
- "Текущая дата + 4 дня (в формате dd.MM.yyyy)";
- "5 дней и более".
На плашке запроса отображается название и тема запроса, дедлайн, иконка запроса (если есть), цветовой индикатор приоритета (если задан). Аватар ответственного не отображается. При наведении курсора на иконку запроса отображается всплывающая подсказка с названием иконки, при наведении на цветовой индикатор приоритета — подсказка с названием приоритета.
final KanboardParams employeeServiceCallsByDeadlinesBoard = new KanboardParams(
contentCode: 'employeeServiceCallsByDeadlinesBoard',
assigneeUUID: { String subjectUuid, ISDtObject item -> null},
assigneeTitle: { String subjectUuid, ISDtObject item -> null},
assigneeAvatarUUID: { String subjectUuid, ISDtObject item -> null},
columnParams: { String subjectUuid ->
Date now = new Date()
ArrayList<ColumnParam> result = [
new ColumnParam(
title: 'Дедлайн не задан',
color: '#808080',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
return extractor.deadline(subjectUUID, item) == null
}
),
new ColumnParam(
title: 'Дедлайн уже наступил!',
color: '#FF0000',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) < COMPARE_DATE_FORMAT.format(now)
})
] + (0..4).collect {
new ColumnParam(
title: PRESENTATION_DATE_FORMAT.format(now + it),
color: '#FFFF99',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) == COMPARE_DATE_FORMAT.format(now + it)
})
} + [new ColumnParam(
title: '5 дней и более',
color: '#00CC66',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) >= COMPARE_DATE_FORMAT.format(now + 5)
}
)]
return result
},
attributeCodeForEditing: 'timeAllowanceTimer'
)
Встроенное приложение размещено в контенте с кодом employeeServiceCallsByStatesAndDeadlinesBoard.
На доске отображаются запросы (serviceCall) в ответственности сотрудника, разделенные столбцам и дорожкам.
Столбцы соответствуют статусам запроса, кроме "Закрыт" (closed).
Дорожки соответствуют времени наступления дедлайна:
- "Дедлайн не задан";
- "Дедлайн уже наступил!";
- "Сегодня";
- "Завтра";
- "Ближайшая неделя";
- "Больше, чем через неделю".
При переносе запроса между столбцами меняется его статус.
На плашке запроса отображается название и тема запроса, дедлайн, иконка запроса (если есть), цветовой индикатор приоритета (если задан). Аватар ответственного не отображается. При наведении курсора на иконку запроса отображается всплывающая подсказка с названием иконки, при наведении на цветовой индикатор приоритета — подсказка с названием приоритета.
final KanboardParams employeeServiceCallsByStatesAndDeadlinesBoard = new KanboardParams(
contentCode: 'employeeServiceCallsByStatesAndDeadlinesBoard',
assigneeUUID: { String subjectUuid, ISDtObject item -> null },
assigneeTitle: { String subjectUuid, ISDtObject item -> null },
assigneeAvatarUUID: { String subjectUuid, ISDtObject item -> null },
rowParams: { String subjectUuid ->
Date now = new Date()
List<RowParam> params = [
new RowParam(
title: 'Дедлайн не задан',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
return extractor.deadline(subjectUUID, item) == null
}
),
new RowParam(
title: 'Дедлайн уже наступил!',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) < COMPARE_DATE_FORMAT.format(now)
}
)]+ (0..4).collect {
new RowParam(
title: PRESENTATION_DATE_FORMAT.format(now + it),
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) == COMPARE_DATE_FORMAT.format(now + it)
}
)
} + [
new RowParam(
title: '5 дней и более',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) >= COMPARE_DATE_FORMAT.format(now + 5)
}
)
]
return params
}
)
Встроенное приложение размещено в контенте с кодом employeeTasksByStatesAndDeadlinesExtendedExampleBoard.
На доске отображаются задачи (task) в ответственности сотрудника, разделенные столбцам и дорожкам.
Столбцы соответствуют статусам:
- "Запланирована" (registered);
- "Остальные открытые";
- "Выполнена" (closed).
Дорожки соответствуют времени наступления дедлайна:
- "Дедлайн не задан";
- "Дедлайн уже наступил!";
- "Текущая дата (в формате dd.MM.yyyy)";
- "Текущая дата + 1 день (в формате dd.MM.yyyy)";
- "Текущая дата + 2 дня (в формате dd.MM.yyyy)";
- "Текущая дата + 3 дня (в формате dd.MM.yyyy)";
- "Текущая дата + 4 дня (в формате dd.MM.yyyy)";
- "5 дней и более".
При переносе задачи между столбцами меняется статус задачи.
На плашке задачи отображается название задачи, описание, дедлайн.
Иконка задачи и цветовой индикатор приоритета отображаются при выполнении условий:
- в классе "Задача" настроены атрибуты с кодами icon и colorIndicator, к которым привязана настройка иконки и индикатора в модуле;
- настроены справочники, на которые ссылаются атрибуты;
- настроенные атрибуты заполнены у задачи.
Аватар ответственного не отображается.
final KanboardParams employeeTasksByStatesAndDeadlinesExtendedExampleBoard = new KanboardParams(
contentCode: 'employeeTasksByStatesAndDeadlinesExtendedExampleBoard',
/**
* Выводим на доску все неархивные объекты класса 'Задача' (task) в ответственности сотрудника.
*/
items: { String subjectUuid ->
utils.find('task', ['responsible': subjectUuid, 'removed': false])
},
/**
* В качестве дедлайна на доске будет выводиться значение атрибута 'Дедлайн' (deadline)
* класса 'Задача' (task).
*/
deadline: { String subjectUuid, ISDtObject item ->
item.hasProperty('deadline') ? item.deadline : null
},
/**
* В качестве описания на доске будет выводиться значение атрибута 'Описание' (description)
* класса 'Задача' (task). Значение очищается от html-тегов с помощью метода api.string.htmlToText.
*/
description: { String subjectUuid, ISDtObject item
->
item.hasProperty('description') ? api.string.htmlToText(item.description) ?: '' : ''
},
columnParams: { String subjectUuid ->
return [new ColumnParam(
/**
* Определяем заголовок колонки.
*/
title: 'Запланирована',
/** Определяем статусы, задачи с которыми будут попадать в данную колонку.
* Может быть задано несколько кодов статусов. В этом случае, при
* перетаскивании в колонку, надо будет выбрать, в какой именно статус из
* предложенных будет произведен переход. Набор предлагаемых статусов можно
* урезать с помощью параметра колонки customStatesCodes.
*/
linkValues: ['registered'],
/**
* Определяем цвет колонки.
*/
color: '#33CCFF'
),
new ColumnParam(
title: 'Остальные открытые',
linkValues: api.metainfo.getMetaClass('task').workflow.states.findResults {
if (!['registered', 'closed'].contains(it.code))
{
return it.code
}
},
color: '#808080'
),
new ColumnParam(
title: 'Выполнена',
linkValues: ['closed'],
color: '#00CC66'
)
]
},
rowParams: { String subjectUuid ->
Date now = new Date()
List<RowParam> params = [
new RowParam(
title: 'Дедлайн не задан',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
return extractor.deadline(subjectUUID, item) == null
}
),
new RowParam(
title: 'Дедлайн уже наступил!',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) < COMPARE_DATE_FORMAT.format(now)
}
)]+ (0..4).collect {
new RowParam(
title: PRESENTATION_DATE_FORMAT.format(now + it),
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) == COMPARE_DATE_FORMAT.format(now + it)
}
)
} + [
new RowParam(
title: '5 дней и более',
matchingCondition: { ISDtObject item,
String subjectUUID,
Object column,
Object extractor
->
Date deadLineTime = extractor.deadline(subjectUUID, item)
return deadLineTime && COMPARE_DATE_FORMAT.format(deadLineTime) >= COMPARE_DATE_FORMAT.format(now + 5)
}
)
]
return params
},
/**
* Пример настройки вывода на карточку задачи на доске иконки из справочника из атрибута с
* кодом 'icon'. При необходимости использования какого-то другого атрибута - нужно
* указать его код.
*/
iconUUID: { String subjectUuid, ISDtObject item
->
item.hasProperty('icon') ? item.icon?.icon?.getAt(0)?.UUID : ''
},
/**
* Пример настройки названия, которое будет появляться при наведении мыши на иконку,
* настроенную выше. При необходимости использования какого-то другого атрибута - нужно
* указать его код.
*/
iconTitle: { String subjectUuid, ISDtObject item
->
item.hasProperty('icon') ? item.icon?.title : ''
},
/**
* Пример настройки вывода на карточку задачи на доске цветового индикатора, который берется
* из справочника из атрибута с кодом 'colorIndicator'. При необходимости использования
* какого-то другого атрибута - нужно указать его код.
*/
indicatorColor: { String subjectUuid, ISDtObject item
->
item.hasProperty('colorIndicator') ? item.colorIndicator?.color : ''
},
/**
* Пример настройки названия, которое будет появляться при наведении мыши на цветовой
* индикатор, который берется из справочника из атрибута с кодом 'colorIndicator'.
* При необходимости использования какого-то другого атрибута - нужно указать его код.
*/
indicatorTitle: { String subjectUuid, ISDtObject item
->
item.hasProperty('colorIndicator') ? item.colorIndicator.title : ''
},
assigneeUUID: { String subjectUuid, ISDtObject item -> null },
assigneeTitle: { String subjectUuid, ISDtObject item -> null },
assigneeAvatarUUID: { String subjectUuid, ISDtObject item -> null }
)