Форматтеры
Форматтеры (formatters) определяют способ отображения значений атрибутов в ячейках колонок журнала. Каждый тип форматтера задаёт собственный внешний вид и поведение ячейки — от простого текста до цветных индикаторов, ссылок, дат и скриптовых вычислений. Форматтер задаётся в конфигурации колонки журнала в поле formatter.
Примечание
В форматтерах могут использоваться вычисляемые атрибуты.
Настройки
Перейти в раздел администрирования > Журналы > найти необходимый журнал > действие Редактировать. Перейти в Дополнительно.
Выберите форматтер из списка, заполните ключ-значение:
Типы
AssocFormatter / Ассоциация
Тип: assoc
Конфигурация:
Ключ |
Значение |
|---|---|
sourceId |
Идентификатор ассоциации |
openInBackground |
Открыть в новой вкладке ECOS |
openNewBrowserTab |
Открыть в новой вкладке браузера |
ActionFormatter / Действие
Тип: action
Конфигурация:
Ключ |
Значение |
|---|---|
type |
<тип действия> |
actionId |
<id типа действия> |
Предполагается в строке журнала наличие id или recordRef — ref записи, необходимый для выполнения действия.
Пример:
По клику на информацию в поле (1) в соседней вкладке Citeck открывать дашборд с данными документа (2):
Настройка форматтера:
где:
type —
viewactionId —
view-dashboard
BooleanFormatter / Логическое выражение
Тип: bool
Конфигурация:
Простой форматтер, который отдаёт «Да» или «Нет» в ячейке.
ColoredFormatter / Цвет
Тип: colored
Универсальный форматтер для отображения значений с цветовой индикацией.
Функции
Поддержка как предопределённых цветов (через классы CSS), так и пользовательских цветов HEX.
Использование идентификатора для сопоставления цветов и локализованного значения для отображения.
Возможность отображения цветного индикатора в качестве указателя или фона.
Если в
showPointerустановлено значение false, цвет фона отображается в виде закруглённого овала.Поддержка новых и старых форматов журналов.
Параметры конфигурации
Параметр |
Тип |
По умолчанию |
Описание |
color |
Object |
{} |
Сопоставление значений объектов с цветами. |
showPointer |
Boolean |
false |
Показывать ли цветной указатель. Если false, показывает закруглённый овальный фон. |
defaultColor |
String |
|
Цвет по умолчанию для значений, не найденных в color. Может быть HEX или именованным цветом. |
fn |
String/Function |
Скрипт или функция для определения цвета текста. |
Предопределённые цвета
Форматтер поддерживает следующие предопределённые цвета:
green;
yellow;
pink;
red.
Для пользовательских цветов используйте формат HEX (например, «#FF0000»).
Настройка условия отображения значения в определённом цвете в зависимости от значения данных в атрибуте
Функция должна вернуть строку с CSS-цветом (WebColor или HEX):
if (cell.disp.length > 2) return "red"
или:
if (cell.disp.length > 2) return "#FF0000"
Использование
Базовое использование с предопределёнными цветами
- id: priority
name:
ru: Приоритет
en: Priority
type: TEXT
editor:
type: select
formatter:
type: colored
config:
color:
low: green
medium: yellow
high: pink
urgent: red
Использование с цветами HEX
- id: priority
name:
ru: Приоритет
en: Priority
type: TEXT
editor:
type: select
formatter:
type: colored
config:
color:
low: '#00FF00'
medium: '#FFFF00'
high: '#FF69B4'
urgent: '#FF0000'
Использование с указателем на дисплее
- id: priority
name:
ru: Приоритет
en: Priority
type: TEXT
editor:
type: select
formatter:
type: colored
config:
color:
low: green
medium: yellow
high: pink
urgent: red
showPointer: true
Использование с цветом по умолчанию
- id: priority
name:
ru: Приоритет
en: Priority
type: TEXT
editor:
type: select
formatter:
type: colored
config:
color:
low: green
defaultColor: '#CCCCCC'
Использование с именованным цветом по умолчанию
- id: priority
name:
ru: Приоритет
en: Priority
type: TEXT
editor:
type: select
formatter:
type: colored
config:
color:
low: green
defaultColor: 'red'
Форматирование цвета на основе скрипта
- id: priority
name:
ru: Приоритет
en: Priority
type: TEXT
editor:
type: select
formatter:
type: colored
config:
fn: 'if (cell.value > 2) return "#e2e2e2"'
defaultColor: '#FFFFFF'
DateFormatter / Дата
Тип: date
Конфигурация:
Ключ |
Значение |
|---|---|
format |
Временной формат (по умолчанию |
DateTimeFormatter / Дата и время
Тип: datetime
Конфигурация:
Ключ |
Значение |
|---|---|
format |
Временной формат (по умолчанию |
relative |
Флаг, который будет отсчитывать время, которое прошло |
DefaultFormatter / По умолчанию
Тип: default
Конфигурация:
Всегда отдаёт строковое значение, полученное из значения атрибута. Если ячейка имеет булево значение, то отдаёт «Да» или «Нет».
DurationFormatter / Продолжительность
Тип: duration
Конфигурация:
Ключ |
Описание |
|---|---|
showSeconds |
При применении в журнале отображается запись в формате
1d 2h 30m 2s.Возможные значения:
true / false.По умолчанию секунды отображаются —
showSeconds = true. |
maxAsHours |
При применении в журнале продолжительность будет трансформироваться в часы, то есть
2d 3h 30m = 51h 30m.Возможные значения:
true / false. |
Пример:
formatter:
type: duration
config:
maxAsHours: true
FileNameFormatter / Имя файла
Тип: filename
Конфигурация:
Всегда отдаёт ссылку на документ вида:
<a href="${URL.DASHBOARD}?recordRef=${row.id}" target="_blank" rel="noopener noreferrer">
<icon />
{ НАЗВАНИЕ ЯЧЕЙКИ}
</a>
HtmlFormatter / HTML
Тип: html
Конфигурация:
Ключ |
Значение |
|---|---|
html |
Строка с HTML-кодом |
LinkFormatter / Ссылка
Тип: link
Link форматтер используется для ячеек журнала с использованием полей (колонок) в качестве переменных.
Варианты конфигурации открытия ссылки по форматтеру
Список вариантов:
updateUrl {boolean}
openNewTab {boolean}
openNewBrowserTab {boolean}
reopenBrowserTab {boolean}
closeActiveTab {boolean}
openInBackground {boolean}
pushHistory {boolean}
replaceHistory {boolean} - default true, if updateUrl is true
rerenderPage {boolean} - needed to replace link in the router and start rerendering page
Ссылка по шаблону с использованием переменных
Добавлена возможность строить ссылки по шаблону с использованием переменных (атрибутов записи/полей журнала). Шаблон адреса ссылки задаётся в параметрах форматтера для столбца в конфигурации журнала (Форматтер для колонки).
Пример шаблона ссылки:
urlTemplate: "https://example.com/path?var1=${columnId1}&var2=${columnId2}"
где columnId1 и columnId2 — колонки журнала.
В качестве наименования ссылки используется значение ячейки. Если значения нет, то наименование = url.
Ссылка не отображается, если ячейка журнала редактируемая (если в ячейку вводятся данные).
Например:
Выбрать форматтер Ссылка (1) и указать:
ключ (2) —
url,значение (3) —
${$computed.url}.
Указать:
id (4) —
url,type (5) —
value.
В конфигурации указать:
ключ (6) —
value,значение (7) —
https://host/${?id}&${?disp}.
В журнале выглядит следующим образом:
По клику на наименование будет открываться ссылка.
NumberFormatter / Число
Тип: number
Конфигурация:
Ключ |
Описание |
|---|---|
mask |
маска, где |
locales |
Какую локаль использовать для форматирования.
От неё зависит, как будут разделяться тысячи и дробные числа (точкой, запятой или пробелом). По умолчанию — текущая локаль.
|
maximumFractionDigits |
сколько чисел после запятой |
decimalSeparator |
как отделяются дробные числа. По умолчанию зависит от локали |
thousandSeparator |
как разделяются тысячи. По умолчанию зависит от локали. |
Пример:
mask: {value} руб.
locales: ru
maximumFractionDigits: 16
decimalSeparator: .
thousandSeparator: ,
Например:
Ключ |
Описание |
|---|---|
mask |
{value} руб |
maximumFractionDigits |
2 |
decimalSeparator |
. |
thousandSeparator |
_ |
ScriptFormatter / Скрипт
Тип: script
Конфигурация:
Ключ |
Значение |
|---|---|
fn |
Тип:
StringТело функции. В любом месте скрипта можно использовать
return.В теле функции доступны следующие параметры:
_ — библиотека Lodash (https://lodash.com/docs/)
t — вспомогательная функция локализации. Принимает ключ и возвращает локализованное значение, либо сам ключ, если перевод отсутствует.
vars — переменные из конфигурации.
cell — значение текущей ячейки.
row — вся строка.
index — индекс значения в ячейке (для множественных значений).
Функция может возвращать значения разных типов:
Булево — заменяется на локализованное значение по ключу
boolean.yes для true и boolean.no для false;Число или Строка — результат отображается в ячейке;
Объект — воспринимается как конфигурация для следующего форматтера в формате
{"type":"...", "config": {...}}.Если в объекте есть
cell, то значение оттуда используется как значение ячейки для следующего форматтера.Если в объекте нет
cell, то используется оригинальное значение ячейки. |
vars |
Тип:
ObjectДополнительные переменные, которые могут понадобиться при выполнении скрипта.
Внутри скрипта к ним можно обращаться через
vars.yourVariable, где yourVariable — это имя ключа в объекте vars.Это полезно, например, когда нужно динамически подгрузить дополнительные данные через функционал форматтеров,
заменяющий все вхождения вида
${...} на соответствующие значения атрибутов.Например, если указать
vars: { currency: "${currencyAssoc.code!'unknown'}" }, то в скрипте через vars.currencyможно получить код валюты из ассоциации
currencyAssoc. |
Пример использования:
formatter:
type: script
config:
vars:
processingStatus: ${processingStatus}
fn: return Citeck.messages.global[vars.processingStatus];
Если есть необходимость вызвать другой форматтер, например HtmlFormatter:
formatter:
type: script
config:
fn: |
const cellNum = _.parseInt(cell) || 0;
let link = "";
if (cellNum > 100000) {
link = "https://duckduckgo.com/";
} else if (cellNum > 1000) {
link = "https://www.yahoo.com/";
} else {
link = "https://www.google.com/";
}
return {
"type": "html",
"config": {
"html": "<a href='" + link + "' target='_blank'>" + link + "</a>"
}
};
WorkflowPriorityFormatter / Приоритет рабочего процесса
Тип: workflowPriority
to be updated