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

Контейнер TabBar

Нижнее меню, или меню вкладок, представляет собой набор кнопок внизу экрана; по нажатию на кнопку открывается соответствующая вкладка. Нижнее меню — это контейнер, а кнопки на нем — блоки.

ℹ️ Нижнее меню всегда состоит из одного контейнера

Параметр Значение
Id контейнера TabBar
Шаблон контейнера toolbar
Шаблоны блоков toolbaritem
Максимальное число элементов 5 (максимально допустимое количество блоков в контейнере — 6)

Допустимые Id элементов — Calls, Chats, Contacts, Settings, Feed, Dashboard (главная), Folder. Подпись под кнопкой берется из настроек блока (поле title). Кнопка Лента меняет свой заголовок в зависимости от выбранной категории или раздела (если выбраны задачи — то заголовок будет "Задачи" и т.д.).

Элементы внутри блока

Type

Тип из дерева палитры в админке наполнения отдельного контейнера.

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

  • Syndicate (список сущностей)

  • Folder (для type null). Folder означает, что внутри блока есть массив блоков, задающих структуру верхнего горизонтального меню экрана табки

  • Dashboard обозначает шаблон дашборда. При тапе на элемент таббара с таким шаблоном происходит проваливание на дэш с определенным id

ℹ️ В таббаре пока возможно настроить только один элемент с "type": "dashboard"

Id

Задается в поле ID отдельного блока в дереве контейнера.

Template

Template — шаблон блока из палитры шаблонов в админке

1. "badgeItemColor": "", — цвет фона счетчика в hex формате, например #123456, цвет может включать в себя альфа канал #123456FF, также возможные краткие записи в стиле #000 или #000F — все 4 варианта нужно учесть в парсинге для получения цвета

2. "fallBackTitle": "", — подпись под иконкой элемента таббара

3. "groups": "", — строка id групп через запятую для фильтрации лишних элементов, пока пустая будет, просто заложить в модель как массив чисел, получаемых из строки чисел, разделенных запятой

4. "icon": "ContactsIcon", — название иконки табки

5. "isDefault": "0", — если = 1 ,то это дефолтная табка, на которой открывается приложение при старте. Если у всех ноль, то дефолтной является либо с id ="Dashboard", либо первая по порядку.

6. "topTitle": "Контакты", — текст для заголовка экрана, который открывается в данной табке. если пустой то берется fallBackTitle для заголовка

7. "id": "toolbaritem" — название шаблона (фактически тип шаблон, определяющий набор параметров описания), нужно завести enum типов шаблонов, и сейчас там будет toolbaritem, toolbar, tasksFeed

Сам TabBar в целом описывается аналогично блокам:

"id": "Tabbar", — название контейнера

"template": {

"badgeItemColor": "#496acc", — базовый цвет фонов счетчиков, может переопределяться в tabbarItem

"containerBackgroundColor": "", — фоноввый увет самого бара

"itemColor": "#404040", — цвет иконки неактивной табки

"selectedItemColor": "#555555", — цвет иконки выделенной табки

"id": "toolbar" — название шаблона (входит в enum названий шаблонов) }

Ключевая структура (без лишних ключей) для отрисовки UI сейчас следующая:

Структура в JSON:

{ "data": [ { "blocks": \ { "type": null, "id": "Chats", "template": { "badgeItemColor": "", "fallBackTitle": "", "groups": "", "isDefault": "0", "icon": "ChatsTabIcon", "topTitle": "Переписки", "id": "toolbaritem" } }, { "type": "Syndicate", "id": "Feed", "template": { "badgeItemColor": "", "fallBackTitle": "", "groups": "", "isDefault": "0", "icon": "FeedIcon", "topTitle": "Комментарии", "id": "toolbaritem" } }, { "type": "Dashboard", "id": "Dashboard", "template": { "badgeItemColor": "", "fallBackTitle": "", "groups": null, "icon": "DashboardIcon", "isDefault": "0", "topTitle": "", "id": "toolbaritem" } }, { "type": null, "id": "TasksFeed", "template": { "badgeItemColor": "#FD8787", "fallBackTitle": "", "groups": "", "icon": "TasksFeedIcon", "isDefault": "0", "topTitle": "Задачи", "id": "tasksFeed" } }, { "type": "Syndicate", "id": "Contacts", "template": { "badgeItemColor": "", "fallBackTitle": "", "groups": "", "icon": "ContactsIcon", "isDefault": "0", "topTitle": "Контакты", "id": "toolbaritem" } } \,

"id": "Tabbar",
"template": {
  "badgeItemColor": "\#496acc",
  "containerBackgroundColor": "",
  "itemColor": "\#404040",
  "selectedItemColor": "\#555555",
  "id": "toolbar"
}

} ] }

Настраиваемые элементы в контейнере

В системе есть возможность настраивать блоки контейнера в зависимости от выбранного id блока. В него входят 6 разных id:

  • TasksFeed --- дает возможность настроить отдачу в виде ленты (списка) задач конкретного типа или по конкретным параметрам. (Например, список задач текущего пользователя).

ℹ️ С помощью данного ID мы можем настраивать блок, который будет вести пользователя в календарь, на котором можно увидеть список его активных встреч

  • Chats — список Чатов пользователя — тот же самый список задач в ином представлении (для чатов), используется для внутрикорпоративных коммуникаций

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

  • Settings — настройки МП. Служит для навигации настроек мобильного приложения в целом.

  • Feed — лента комментариев. Список комментариев, сгруппированный по текущим задачам пользователя

  • Dashboard — ID блока, который перенаправляет пользователя в конкретный настроенный дэш (контейнер, который отображает настроенные в нем элементы на экране пользователя)

  • ToSign — блок с таким ID ведет пользователя на экран списка подписей текущего пользователя по всем задачам

  • Folder — папка, в которую можно помещать другие элементы и блоки для группировки

  • Subcat123, TaskSourse123 — категории и Task Sourse также можно открывать с нижнего таббара МП.

  • Calls — история звонков текущего пользователя, где отображается журнал вызовов с пользователями, вхождений в ВКС комнаты внутри задач.

  • CustomTaskSource — кастомный TaskSource, настроенный в системе

Этот id определяет навигацию — какой экран открыть при нажатии: контакты, лента задач, главная, лента комментов, чаты и др.

Настройка календаря в качестве элемента TabBar

Действия для настройки вкладки календаря в TabBar пользователя:

1. Выберите шаблон Синдикат

2. При настройке самого элемента укажите в качестве id SubcatXXX, где XXX — это номер системной категории календаря

Настройка кастомного source в качестве элемента TabBar

Действия для настройки вкладки кастомного source в TabBar пользователя:

1. Выберите шаблон Синдикат

2. При настройке самого элемента укажите в качестве id CustomTaskSource

3. Укажите в качестве значения для ключа dataSourceUrl ссылку на кастомный source в системе

Настройка меню действий через addButton

addButton — это список (массив) объектов onTap действий для создания задачи (openNewTask). Иными словами, с помощью addButton можно задать способы создания задачи, а именно, в какие категории мы можем их поставить.

Данный параметр возможно настроить как в шаблоне cell категории, так и в элементе контейнера toolbar'а.

// пример шаблона из элемента контейнера

{

"addButton": [

{

  "icon": "GroupChat",

  "action": "openNewTask",

  "title": "Групповой чат",

  "id": 978

},

{

  "icon": "Chat",

  "action": "openNewTask",

  "title": "Чат",

  "id": 969

},

{

  "icon": "Calendar",

  "action": "openNewTask",

  "title": "Встреча",

  "id": 1507

},

{

  "icon": "Task",

  "action": "openNewTask",

  "title": "Личная задача",

  "id": 43350

}

]

}

ℹ️ Как видно выше на примере, при настройке важен только action openNewTask и id с указанием номера категории, куда будет ставиться задачу