/
Форматирование виджета "Фильтр"

Форматирование виджета "Фильтр"

Форматирование может применяться в поле Форматирование текста раздела Фильтр (активируется галочкой Включить форматирование):

При форматировании используются следующие зарезервированные команды:

  • @value - значение фильтра на уровне

  • @path - массив всех родительских уровней

    • @path[0]

      • самый первый родитель

    • @path[@level-1]

      • ближайший родитель

  • @level - уровень вложенности

Примеры форматирования

Добавление текста к заголовкам в зависимости от уровня

Вы можете добавить пояснительный текст к отображаемым в виджете значениям. В нашем примере мы добавим к числовому обозначению года слово год (нулевой уровень вложенности) и к остальным значениям - слово неделя. Для этого мы введем следующую команду в поле Форматирование текста раздела Фильтр:

@level == 0 ? @value + ' год' : @value + ' неделя'

Где
@level == 0 – уровень вложенности (в нашем примере это 0);
@value + ' год', @value + ' неделя' – текст, добавляемый к значениям.

Форматирование подписей значения фильтра в виде периода дней относительно недели в году

Для корректной работы, в иерархии измерений должны быть выбраны следующие атрибуты измерения:

  • Год для недели

  • Номер недели

Данный тип форматирования производится с помощью следующего скрипта:

@level === 0 ? @value : ((year, weekNo) => { var d1 = new Date(); d1.setFullYear(year); var numOfdaysPastSinceLastMonday = (d1.getDay() - 1); d1.setDate(d1.getDate() - numOfdaysPastSinceLastMonday); var weekNoToday = (dt => { var target = new Date(dt.valueOf()); var dayNr = (dt.getDay() + 6) % 7; target.setDate(target.getDate() - dayNr + 3); var firstThursday = target.valueOf(); target.setMonth(0, 1); if (target.getDay() != 4) { target.setMonth(0, 1 + ((4 - target.getDay()) + 7) % 7) } return 1 + Math.ceil((firstThursday - target) / 604800000) })(d1); var weeksInTheFuture = (weekNo - weekNoToday); d1.setDate(d1.getDate() + (7 * weeksInTheFuture)); var rangeIsFrom = weekNo + " неделя " + d1.getDate() + "." + (d1.getMonth() + 1); d1.setDate(d1.getDate() + 6); var rangeIsTo = d1.getDate() + "." + (d1.getMonth() + 1); return rangeIsFrom + " - " + rangeIsTo })(@path[0], @path[1])

Инвертирование формата даты с YYYY-MM-DD на DD-MM-YYYY

Для инвертирования формата даты необходимо выполнить следующую команду:

@value.split('-').reverse().join('-')

Результат применения команды показан ниже:



Related content

Форматирование виджета "Фильтр"
Форматирование виджета "Фильтр"
More like this
Форматирование виджета "Фильтр"
Форматирование виджета "Фильтр"
More like this
Форматирование виджета "Фильтр"
Форматирование виджета "Фильтр"
More like this
Форматирование виджета "Фильтр"
Форматирование виджета "Фильтр"
More like this
Форматирование виджета "Фильтр"
Форматирование виджета "Фильтр"
More like this
Форматирование виджета "Фильтр"
Форматирование виджета "Фильтр"
More like this