3. Стилизация

В этой главе вы:

  • Создадите действия для управления видимостью колонок.

  • Добавите визуальные стили для компонента с помощью свойств.

  • Создадите рендереры для нижнего колонтитула колонок.

Добавление кнопок действий в столбец

Компонент Kanban поддерживает динамические изменения настроек отображения и видимости столбцов. Чтобы включить эту функцию, необходимо установить атрибут columnActionsEnabled. Этот атрибут добавляет кнопку управления видимостью столбца в заголовок. Чтобы иметь возможность свернуть столбец, необходимо установить атрибут collapsible.

Найдите файл kanban-task-list-view.xml в окне инструментов Jmix и дважды щелкните по нему. Выберите kanban в панели иерархии Jmix UI или в XML-дескрипторе. Затем отметьте флажки collapsible и columnActionsEnabled:

styling attributes

Нажмите Ctrl/Cmd+S и переключитесь на запущенное приложение. Откройте экран Kanban board. Теперь доступны элементы управления видимостью столбцов.

Чтобы сохранить состояние столбцов после закрытия экрана, вы можете использовать фасет Settings.

column controls buttons

Стилизация через свойства

Существует множество атрибутов Kanban, которые изменяют визуальный внешний вид компонента. Вам необходимо добавить следующие атрибуты:

  • columnSummaryEnabled, columnFooterVisible - для отображения сводки.

  • columnColorEntireSurfaceEnabled - для выделения фона столбцов контрастным цветом.

  • dropPlaceholderAllowed - для добавления заполнителя при перемещении карточек задач.

  • color для столбцов, applyColumnColorToTasks - для специального выделения каждого столбца.

Все эти атрибуты можно добавить с помощью панели инспектора компонентов Jmix UI или с помощью XML-разметки.

<kanban:kanban id="kanban"
               dataContainer="kanbanTasksDc"
               width="100%"
               height="100%"
               autoSave="true"
               taskDueDateVisible="true"
               taskProgressVisible="true"
               taskUserAvatarVisible="true"
               collapsible="true"
               columnActionsEnabled="true"
               applyColumnColorToTasks="true"
               columnFooterVisible="true"
               columnSummaryEnabled="true"
               columnColorEntireSurfaceEnabled="true"
               dropPlaceholderAllowed="true">
    <kanban:columns>
        <kanban:column dataField="todo"
                       label="msg://kanban.column.todo.label"
                       color="#006AF5"/>
        <kanban:column dataField="in-progress"
                       label="msg://kanban.column.in-progress.label"
                       color="#CA150C"/>
        <kanban:column dataField="verification"
                       label="msg://kanban.column.verification.label"
                       color="#FFCC00"/>
        <kanban:column dataField="done"
                       label="msg://kanban.column.done.label"
                       color="#192434"/>
    </kanban:columns>

    <!-- other elements -->
</kanban:kanban>

Нажмите Ctrl/Cmd+S и переключитесь на запущенное приложение. Внешний вид доски Kanban теперь изменится:

kanban task list view styled

Рендеринг нижнего колонтитула столбца

Компонент kanban поддерживает пользовательские JavaScript-рендереры для стилизации и отображения карточек задач и столбцов. Дополнительную информацию смотрите в разделе Рендереры.

Чтобы выделить столбец, в котором слишком много задач, необходимо определить рендерер для нижнего колонтитула столбца.

Для этого выберите kanban в панели иерархии Jmix UI или в XML-дескрипторе, а затем нажмите кнопку Add на панели инспектора компонентов. Из выпадающего списка выберите ColumnFooterRendererFunction:

add column footer render

Функция ColumnFooterRendererFunction определяется обратным вызовом, который можно использовать для настройки рендеринга нижнего колонтитула столбца. Обратный вызов принимает три аргумента: HTML-элемент нижнего колонтитула столбца, данные столбца и поле данных столбца.

Вам необходимо реализовать обратный вызов, который будет выделять цветом нижний колонтитул, если в столбце больше одной задачи:

<kanban:columnFooterRendererFunction>
    <![CDATA[(footer, data, dataField) => {
            // gets numbers
            const digitsString = footer.textContent.match(/(\d+)/)[0];
            const number = Number(digitsString);

            if (number > 1) {
                footer.style.color = '#CA150C';
            } else {
                footer.style.color = 'var(--smart-surface-color)';
            }
        }]]>
</kanban:columnFooterRendererFunction>

Нажмите Ctrl/Cmd+S и переключитесь на запущенное приложение.

column footer renderer result

Резюме

В этом разделе мы рассмотрели, как настроить визуальный внешний вид вашей доски Kanban в Jmix.

  • Стилизация с помощью свойств: Вы узнали, как использовать встроенные свойства дополнения Kanban для управления различными аспектами визуального стиля компонента Kanban, такими как цвета столбцов, отображение сводки и так далее.

  • Рендереры нижнего колонтитула столбца: Вы изучили, как определить пользовательские рендереры для нижнего колонтитула столбцов, позволяющие вам отображать дополнительную информацию или выделять важные аспекты каждого столбца.

  • Добавление кнопок действий столбца: Вы поняли, как реализовать кнопки, позволяющие пользователям управлять видимостью или другими действиями для отдельных столбцов.