Таблиця
Використовується для виводу інформації з бази даних.
!!! info
Рекомендовано створювати окремі таблиці для виводу інформації до адміністративної, публічної частини та для виводу об'єктів на карту
Основні параметри таблиці
Таблиця формується у форматі .json
та має бути розташована у відповідній папці templates/table/{file}.json
Нижче наведено приклад файлу таблиці інтерфейсу:
{
"table": "billing.service", // Таблиця БД, з якої беруться дані
"modeList":["Table","Kanban","Calendar"], // Вигляди таблиці даних
"key": "service_id", // ID таблиці БД
"limit": 5, // Обмеження по кількості об'єктів
"title_full": { // Назва таблиці для показу в інтерфейсі
"ua": "Сервіси"
},
"query": "service_name is not null", // Фільтрування даних (запит після where)
"add_form": "web.customize_menu.form", // Форма, яка буде відкриватися при створенні нових або редагуванні існуючих об'єктів
"colModel": [ // Колонки таблиці та їхні налаштування
{
"ua": "Назва", // Назва для відображення користувачам
"meta": "title", // Тип стандартизованого поля
"format": "text", // Тип даних
"name": "service_name", // Колонка таблиці Бд
"data": "service_name_cls", // Назва класифікатора/селекта
}
],
"filter_list": [ // Фільтри таблиці
{
"ua": "Назва", // Назва фільтру для відображення користувачам
"name": "service_name", // Колонка таблиці, за якою відбувається фільтрування
"type": "Check" // Тип фільтру
}
]
}
modeList
- вигляди таблиці даних. Допустимі значення: "Table", "Kanban", "Calendar", "Map", "Changes", "Files". Передавати масивом. За замовчуванням тільки Table.search_column
- колонка або декілька колонок, за якими відбувається пошук в полі фільтрів "Введіть для пошуку"orderby
- колонка для сортуванняsetting
- налаштування таблиці. Допустимі значення: "add", "card", "export". Передавати масивом. За замовчуванням ввімкненоadd
іcard
.widget
- які віджети відображати в картках об'єктах - в інфо картці та в повній картці. Приклад виводу інформації:
"widget": {
"info": [
"history"
],
"card": [
"comment,history"
]
}
action_deafult
- Дії за замовчуванням. Приклад:
"action_deafult": [
"edit",
"del"
]
Основні параметри колонки
ua
- Назва українською для відображення користувачамformat
- тип даних. Допустимі значення:text
,select
,age
,date
,html
,boolean
,geom
, badge, tags,number
meta
- стандартизоване поле. Допустимі значення:key
,title
,status
,description
,type
, category,image
,priority
,teaser
,start
,end
,deadline
,address
hidden
- приховати колонку зі стандартного вигляду. Допустимі значення:true
,false
editable
- швидке редагування значення поля. Допустимі значення:true
,false
data
- довідник, з якого беруться значення даних по колонці. Вказується назва селекту чи класифікатора.options
- додатковий спосіб вказати значення по колонці. Вказуються у json форматі, ключіid
таtext
Поле format (тип даних)
Заповнюється значення поля format до кожної з вказаних колонок. Вказується тип даних, якими будуть відображені дані в інтерфейсі. Також читається поле cmode (зі старих версій програм), таблиця відповідностей cmode та format:
cmode | format |
---|---|
0 | text |
1 | select |
2 | age |
3 | date |
4 | html |
5 | boolean |
6 | geom |
7 | badge |
8 | tags |
9 | - |
10 | number |
11 | - |
!!! info
Вказуємо формат у нижньому регістрі (lowercase)
Поле meta (стандартизоване поле)
Застосовуються для поля meta. Полегшують вивід даних в компоненти за даними від API.
Також може визначатися автоматично - за назвами колонок.
Перелік полів meta:
key
- Код / номерtitle
- Назваstatus
- Статусdescription
- Повний описtype
- Типcategory
- Категорія/Розділimage
- Зображенняpriority
- Пріоритетteaser
- Короткий описstart
- Дата початкуend
- Дата закінченняdeadline
- Дедлайн (очікувана дата завершення)address
- Адреса
Типи фільтрів
Перелік фільтрів:
Text
- Просто ввід тексту.Autocomplete
- Вибір декількох варіантів. При 8 і більше варіантах стає доступним рядок пошуку за значеннями.Check
- Вибір значень без випадаючого списку. Зазвичай використовується для невеликої кількості значень (до 7).Date
- Вибір проміжку дат. Є зручна панель для вибору екстра дат.Radio
- Вибір зі списку лише одного значення. Зазвичай використовується для невеликої кількості значень (до 7).Range
- Використовується для вказання проміжку ціни або будь-якого іншого числового значення. Працює як для цілих, так і для десяткових чисел.Switcher
- Вибір значення між true/false. Відповідно, діє лише для колонок booleanTags
- Вибір значення у форматі кнопок. Зручно для поля тегів. Підтримують іконки та кольори з класифікатора.Tree
- Деревоподібне відображення значень.
Службові колонки
При створенні таблиці потрібно створювати службові колонки:
Назва поля | Латинська назва | тип колонки |
---|---|---|
Дата створення | cdate | date_trunc('seconds'::text, now()) |
Користувач, що востаннє відредагував об'єкт | editor_id | text |
Дата редагування | editor_date | timestamp without time zone |
Файли | files | json |
Користувач, який створив | uid | text |
!!! danger
Відсутність службових колонок може призвести до помилок при роботі з даними.
Колонки по меті
При створенні таблиці прикладні колонки потрібно називати згідно мети {table}_{meta} або просто {meta}. Приклади:
Назва поля | Латинська назва | тип колонки |
---|---|---|
Назва вулиці | street_name | text |
Категорія вулиці | street_category | text |
і т.д.
База даних
- Окрема схема для кожного модуля
- Правильний naming - колонок таблиць
- Склад: {table}_id, колонки по меті, службові колонки,
- PK, FK -
ModeList
Table
Стандартний вигляд хелпера table
.
Kanban
Відображення у вигляді дошки з можливістю перетягування за статусом.
Колонки дошки (зазвичай, статуси: To do, In progress, Done...) визначаються автоматично, у порядку класифікатора за meta: status
.
Map
Показ елементів таблиці у вигляді карти з відображеними на ній елементами. Є можливість вибору конкретного елемента та приближення до нього.
Якщо реєстр не містить об'єктів з геометрією - на карті буде відображене відповідне повідомлення.
Calendar
У вигляді календаря відображені елементи таблиці за датою створення, також є можливість відображення елементів за датою завершення роботи над ними.
Changes
Відображаються всі зміни стосовно обраної таблиці.
Files
Відображаються файли, які належать до таблиці.