@opengis/fastify-table 1.1.50 → 1.1.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +42 -42
- package/.gitlab-ci.yml +18 -18
- package/Changelog.md +352 -351
- package/README.md +26 -26
- package/config.js +10 -10
- package/cron/controllers/cronApi.js +22 -22
- package/cron/controllers/utils/cronList.js +1 -1
- package/cron/funcs/addCron.js +132 -132
- package/cron/index.js +10 -10
- package/crud/controllers/deleteCrud.js +36 -36
- package/crud/controllers/insert.js +71 -71
- package/crud/controllers/update.js +76 -76
- package/crud/controllers/utils/xssInjection.js +72 -72
- package/crud/funcs/dataDelete.js +19 -19
- package/crud/funcs/dataInsert.js +30 -30
- package/crud/funcs/dataUpdate.js +48 -48
- package/crud/funcs/getAccess.js +46 -44
- package/crud/funcs/getOpt.js +10 -10
- package/crud/funcs/getToken.js +27 -27
- package/crud/funcs/isFileExists.js +13 -13
- package/crud/funcs/setOpt.js +16 -16
- package/crud/funcs/setToken.js +53 -53
- package/crud/funcs/utils/getFolder.js +9 -9
- package/crud/funcs/utils/logChanges.js +62 -62
- package/crud/index.js +36 -36
- package/docs/.vitepress/abbr.mjs +26 -26
- package/docs/.vitepress/config.mjs +127 -127
- package/docs/.vitepress/navigation.mjs +82 -82
- package/docs/.vitepress/theme/Layout.vue +17 -17
- package/docs/.vitepress/theme/components/NavigationLinks.vue +102 -102
- package/docs/.vitepress/theme/components/Panzoom.vue +169 -169
- package/docs/.vitepress/theme/index.mjs +15 -15
- package/docs/.vitepress/theme/style.scss +163 -163
- package/docs/abbr.json +4 -4
- package/docs/api/cron/cronApi.md +56 -56
- package/docs/api/crud/deleteCrud.md +58 -58
- package/docs/api/crud/insert.md +82 -82
- package/docs/api/crud/update.md +85 -85
- package/docs/api/index.md +47 -47
- package/docs/api/notification/testEmail.md +91 -91
- package/docs/api/table/card.md +73 -73
- package/docs/api/table/data.md +134 -134
- package/docs/api/table/export.md +60 -60
- package/docs/api/table/filter.md +104 -104
- package/docs/api/table/form.md +126 -126
- package/docs/api/table/search.md +123 -123
- package/docs/api/table/suggest.md +156 -156
- package/docs/api/table/table.md +107 -107
- package/docs/api/user/user.cls.id.md +77 -77
- package/docs/api/user/user.cls.md +49 -49
- package/docs/api/user/user.cls.post.md +62 -62
- package/docs/api/user/user.info.md +37 -37
- package/docs/api/utils/logger.file.md +60 -60
- package/docs/api/utils/next.id.md +34 -34
- package/docs/api/utils/properties.add.md +127 -127
- package/docs/api/utils/properties.get.md +73 -73
- package/docs/api/utils/status.monitor.md +36 -36
- package/docs/api/widget/widget.del.md +76 -76
- package/docs/api/widget/widget.get.md +233 -233
- package/docs/api/widget/widget.set.md +88 -88
- package/docs/db/admin.md +947 -947
- package/docs/db/crm.md +564 -564
- package/docs/db/index.md +9 -9
- package/docs/db/log.md +204 -204
- package/docs/hook/card/afterCard.md +20 -20
- package/docs/hook/card/preCard.md +25 -25
- package/docs/hook/data/afterData.md +26 -26
- package/docs/hook/data/preData.md +26 -26
- package/docs/hook/deleteCrud/afterDelete.md +21 -21
- package/docs/hook/deleteCrud/preDelete.md +26 -26
- package/docs/hook/form/afterForm.md +19 -19
- package/docs/hook/form/preForm.md +26 -26
- package/docs/hook/getTemplate/afterTemplate.md +24 -24
- package/docs/hook/getTemplate/preTemplate.md +29 -29
- package/docs/hook/index.md +45 -45
- package/docs/hook/insert/afterInsert.md +41 -41
- package/docs/hook/insert/preInsert.md +25 -25
- package/docs/hook/table/afterTable.md +20 -20
- package/docs/hook/table/preTable.md +25 -25
- package/docs/hook/update/afterUpdate.md +41 -41
- package/docs/hook/update/preUpdate.md +25 -25
- package/docs/index.md +42 -42
- package/docs/public/fastify-dark.svg +3 -3
- package/docs/public/logo-short-dark.svg +11 -11
- package/docs/public/logo-short.svg +10 -10
- package/docs/public/logo.svg +19 -19
- package/docs/readme/index.md +121 -121
- package/docs/templates/card.md +83 -83
- package/docs/templates/cls.md +29 -29
- package/docs/templates/filters.md +91 -91
- package/docs/templates/forms.md +139 -139
- package/docs/templates/index.md +28 -28
- package/docs/templates/select.md +90 -90
- package/docs/templates/table.md +162 -162
- package/docs/utils/cron/addCron.md +29 -29
- package/docs/utils/crud/dataInsert.md +51 -51
- package/docs/utils/crud/dataUpdate.md +52 -52
- package/docs/utils/crud/getOpt.md +33 -33
- package/docs/utils/crud/isFileExists.md +37 -37
- package/docs/utils/crud/setOpt.md +37 -37
- package/docs/utils/hook/addHook.md +74 -74
- package/docs/utils/hook/applyHook.md +64 -64
- package/docs/utils/index.md +47 -47
- package/docs/utils/notification/addNotification.md +28 -28
- package/docs/utils/notification/notification.md +41 -41
- package/docs/utils/pg/autoIndex.md +22 -22
- package/docs/utils/pg/getMeta.md +58 -58
- package/docs/utils/pg/getPG.md +34 -34
- package/docs/utils/pg/init.md +29 -29
- package/docs/utils/pg/pg.md +70 -70
- package/docs/utils/redis/getRedis.md +36 -36
- package/docs/utils/redis/rclient.md +74 -74
- package/docs/utils/table/getForm.md +68 -68
- package/docs/utils/table/getMeta.md +55 -55
- package/docs/utils/table/getSelect.md +38 -38
- package/docs/utils/table/getSelectMeta.md +46 -46
- package/docs/utils/table/getTable.md +77 -77
- package/helper.js +30 -30
- package/index.js +105 -105
- package/migration/exec.migrations.js +79 -79
- package/module/core/select/core.user_mentioned.sql +1 -1
- package/module/test/cls/itree.composition.json +25 -25
- package/module/test/table/test.rest_zone.table.json +265 -265
- package/notification/controllers/readNotifications.js +30 -30
- package/notification/controllers/testEmail.js +50 -50
- package/notification/controllers/userNotifications.js +64 -64
- package/notification/funcs/addNotification.js +21 -21
- package/notification/funcs/sendNotification.js +112 -112
- package/package.json +41 -41
- package/pg/funcs/getMeta.js +29 -29
- package/pg/funcs/getPG.js +30 -30
- package/pg/pgClients.js +20 -20
- package/policy/funcs/checkPolicy.js +92 -92
- package/policy/funcs/sqlInjection.js +33 -33
- package/policy/index.js +14 -14
- package/redis/client.js +8 -8
- package/redis/funcs/getRedis.js +23 -23
- package/redis/funcs/redisClients.js +2 -2
- package/redis/index.js +19 -19
- package/server/migrations/0.sql +78 -78
- package/server/migrations/cls.sql +39 -39
- package/server/migrations/log.sql +80 -80
- package/server/migrations/properties.sql +144 -144
- package/server/migrations/roles.sql +172 -166
- package/server/migrations/users.sql +168 -168
- package/server.js +26 -26
- package/table/controllers/data.js +150 -150
- package/table/controllers/filter.js +50 -50
- package/table/controllers/form.js +42 -42
- package/table/controllers/search.js +80 -80
- package/table/controllers/suggest.js +79 -79
- package/table/controllers/table.js +83 -83
- package/table/controllers/utils/addTemplateDir.js +8 -8
- package/table/controllers/utils/getSelect.js +19 -19
- package/table/controllers/utils/getSelectMeta.js +66 -66
- package/table/controllers/utils/getTemplate_old.js +28 -28
- package/table/controllers/utils/getTemplates.js +18 -18
- package/table/controllers/utils/gisIRColumn.js +67 -67
- package/table/controllers/utils/loadTemplate.js +1 -1
- package/table/controllers/utils/loadTemplatePath.js +1 -1
- package/table/controllers/utils/userTemplateDir.js +1 -1
- package/table/funcs/getFilterSQL/index.js +94 -94
- package/table/funcs/getFilterSQL/util/formatValue.js +170 -170
- package/table/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
- package/table/funcs/getFilterSQL/util/getFilterQuery.js +66 -66
- package/table/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
- package/table/funcs/getFilterSQL/util/getTableSql.js +34 -34
- package/table/funcs/metaFormat/getSelectVal.js +21 -21
- package/table/funcs/metaFormat/index.js +28 -28
- package/table/index.js +37 -37
- package/table/schema.js +54 -54
- package/test/api/applyHook.test.js +95 -95
- package/test/api/crud.test.js +89 -89
- package/test/api/crud.xss.test.js +80 -80
- package/test/api/suggest.test.js +66 -66
- package/test/api/table.test.js +134 -134
- package/test/api/user.test.js +85 -85
- package/test/api/widget.test.js +117 -117
- package/test/config.example +18 -18
- package/test/funcs/pg.test.js +34 -34
- package/test/funcs/redis.test.js +19 -19
- package/test/helper/formatDate.test.js +62 -62
- package/test/templates/cls/test.json +9 -9
- package/test/templates/form/cp_building.form.json +32 -32
- package/test/templates/select/account_id.json +3 -3
- package/test/templates/select/storage.data.json +2 -2
- package/test/templates/select/test.storage.data.json +3 -3
- package/test/templates/select/test.suggest.ato_new.json +3 -3
- package/test/templates/select/test.suggest.ato_new.sql +25 -25
- package/test/templates/select/test.suggest.data.json +4 -4
- package/test/templates/select/test.suggest.parent.sql +1 -1
- package/test/templates/table/gis.dataset.table.json +20 -20
- package/user/controllers/user.cls.id.js +14 -14
- package/user/controllers/user.cls.js +75 -75
- package/user/controllers/user.cls.post.js +55 -55
- package/user/controllers/user.info.js +21 -21
- package/util/controllers/logger.file.js +91 -91
- package/util/controllers/next.id.js +4 -4
- package/util/controllers/properties.add.js +60 -60
- package/util/controllers/properties.get.js +19 -19
- package/util/controllers/status.monitor.js +8 -8
- package/util/controllers/utils/checkUserAccess.js +17 -17
- package/util/controllers/utils/getRootDir.js +25 -25
- package/util/index.js +23 -23
- package/utils.js +104 -104
- package/widget/controllers/utils/historyFormat.js +76 -76
- package/widget/controllers/utils/obj2db.js +13 -13
- package/widget/controllers/widget.del.js +44 -44
- package/widget/controllers/widget.get.js +102 -102
- package/widget/controllers/widget.set.js +79 -79
- package/widget/index.js +40 -40
package/docs/templates/table.md
CHANGED
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Таблиця
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Таблиця
|
|
6
|
-
|
|
7
|
-
Використовується для виводу інформації з бази даних. В папці `server/templates/table`
|
|
8
|
-
|
|
9
|
-
::: info
|
|
10
|
-
Рекомендовано створювати окремі таблиці для виводу інформації до адміністративної, публічної частини та для виводу об'єктів на карту
|
|
11
|
-
:::
|
|
12
|
-
|
|
13
|
-
## Основні параметри **таблиці**
|
|
14
|
-
|
|
15
|
-
Таблиця формується у форматі `.json` та має бути розташована у відповідній папці `templates/table/{file}.json`
|
|
16
|
-
|
|
17
|
-
Нижче наведено приклад файлу таблиці інтерфейсу:
|
|
18
|
-
|
|
19
|
-
``` json
|
|
20
|
-
{
|
|
21
|
-
"table": "billing.service", // Таблиця БД, з якої беруться дані
|
|
22
|
-
"query": "service_name is not null", // Фільтрування даних
|
|
23
|
-
"sqlColumns": "*", // Віддає у об'єкті rows усі колонки із таблиці, використовується коли треба кастомну компоненту вивести як колонку в таблиці, щоб у цю компоненту передати усі колонки таблиці, і їх не прописувати в масиві columns
|
|
24
|
-
|
|
25
|
-
"order": "cdate", // колонка для сортування
|
|
26
|
-
|
|
27
|
-
"key": "service_id", // ID таблиці БД
|
|
28
|
-
|
|
29
|
-
"limit": 5, // Обмеження по кількості об'єктів
|
|
30
|
-
|
|
31
|
-
"form": "web.customize_menu.form", // Форма
|
|
32
|
-
|
|
33
|
-
"columns": [ // Колонки таблиці та їхні налаштування
|
|
34
|
-
{
|
|
35
|
-
"ua": "Назва", // Назва для відображення користувачам
|
|
36
|
-
"meta": "title", // Тип стандартизованого поля
|
|
37
|
-
"format": "text", // Тип даних
|
|
38
|
-
"name": "service_name", // Колонка таблиці Бд
|
|
39
|
-
"data": "service_name_cls", // Назва класифікатора/селекта
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"ua": "Контактні дані", // Заголовок колонки
|
|
43
|
-
"name": "email", // Колонка таблиці із цього шаблону
|
|
44
|
-
"format": "custom", // Форматування даних
|
|
45
|
-
"componentName": "admin-users-contacts" //Кастомна компонента vue для колонки
|
|
46
|
-
}
|
|
47
|
-
],
|
|
48
|
-
|
|
49
|
-
"filterList": [ // Фільтри таблиці
|
|
50
|
-
{
|
|
51
|
-
"ua": "Назва", // Підпис фільтру
|
|
52
|
-
"name": "service_name", // Колонка таблиці
|
|
53
|
-
"type": "Check" // Тип фільтру
|
|
54
|
-
}
|
|
55
|
-
],
|
|
56
|
-
|
|
57
|
-
"filterInline": [ // Фільтри таблиці
|
|
58
|
-
{
|
|
59
|
-
"ua": "Назва", // Підпис фільтру
|
|
60
|
-
"name": "service_name", // Колонка таблиці
|
|
61
|
-
"type": "Check" // Тип фільтру
|
|
62
|
-
}
|
|
63
|
-
],
|
|
64
|
-
|
|
65
|
-
"filterState": [ // Фільтри статусу
|
|
66
|
-
{
|
|
67
|
-
"sql": "status=1", // sql
|
|
68
|
-
"name": "archive", // назва ключ або номер 1
|
|
69
|
-
"ua": "Підпис", // підпис
|
|
70
|
-
}
|
|
71
|
-
],
|
|
72
|
-
|
|
73
|
-
"filterCustom": [ // Фільтри користувача
|
|
74
|
-
{
|
|
75
|
-
"sql": "status=1", // Підпис фільтру
|
|
76
|
-
"name": "archive", // ключ або номер 1
|
|
77
|
-
"ua": "Підпис", // підпис
|
|
78
|
-
}
|
|
79
|
-
],
|
|
80
|
-
|
|
81
|
-
"meta":{
|
|
82
|
-
"cls": {
|
|
83
|
-
"service_id": "billing.service_id",
|
|
84
|
-
"service_status": "billing.service_status"
|
|
85
|
-
}, // присвоєння колонкам класифікаторів для виведення даних (альтернатива columns)
|
|
86
|
-
"bbox": "geom", // колонка для пошуку по BBOX
|
|
87
|
-
"search":"name,address", // колоноки, за якими відбувається пошук
|
|
88
|
-
"title":"service_name", // колонка статус
|
|
89
|
-
"key":"service_key", // колонка ключ / code
|
|
90
|
-
"status":"service_status", // колонка статус
|
|
91
|
-
"type":"service_type", // колонка тип
|
|
92
|
-
"address":"address", // колонки адрес
|
|
93
|
-
"image":"image" // аватар, іконка і т.д.
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
- [Детально про фільтри](./filters.md)
|
|
99
|
-
|
|
100
|
-
## Format
|
|
101
|
-
|
|
102
|
-
| Формат | Опис |
|
|
103
|
-
| ------------------------ | --------------- |
|
|
104
|
-
| text | по замовчюванню |
|
|
105
|
-
| select | з класифікатора |
|
|
106
|
-
| tags | у вигляді label |
|
|
107
|
-
| badge | label з кольором |
|
|
108
|
-
| age | час |
|
|
109
|
-
| html | свій шаблон |
|
|
110
|
-
| number | число |
|
|
111
|
-
| boolean | switcher |
|
|
112
|
-
|
|
113
|
-
::: details Основні параметри **колонки**
|
|
114
|
-
|
|
115
|
-
- `ua` - Назва українською для відображення користувачам
|
|
116
|
-
- `format` - тип даних. Допустимі значення: `text`, `select`, `age`, `date`, `html`, `boolean`, `geom`, badge, tags, `number`
|
|
117
|
-
- `meta` - стандартизоване поле. Допустимі значення: `key`, `title`, `status`, `description`, `type`, category, `image`, `priority`, `teaser`, `start`, `end`, `deadline`, `address`
|
|
118
|
-
- `hidden` - приховати колонку зі стандартного вигляду. Допустимі значення: `true`, `false`
|
|
119
|
-
- `editable` - швидке редагування значення поля. Допустимі значення: `true`, `false`
|
|
120
|
-
- `data` - довідник, з якого беруться значення даних по колонці. Вказується назва селекту чи класифікатора.
|
|
121
|
-
|
|
122
|
-
:::
|
|
123
|
-
|
|
124
|
-
:::details Поле meta (стандартизоване поле)
|
|
125
|
-
|
|
126
|
-
Застосовуються для поля **meta**. Полегшують вивід даних в компоненти за даними від API.
|
|
127
|
-
|
|
128
|
-
Також може визначатися автоматично - за назвами колонок.
|
|
129
|
-
|
|
130
|
-
Перелік полів meta:
|
|
131
|
-
|
|
132
|
-
1. `key` - Код / номер
|
|
133
|
-
2. `title` - Назва
|
|
134
|
-
3. `status` - Статус
|
|
135
|
-
4. `description` - Повний опис
|
|
136
|
-
5. `type` - Тип
|
|
137
|
-
6. `category` - Категорія/Розділ
|
|
138
|
-
7. `image` - Зображення
|
|
139
|
-
8. `priority` - Пріоритет
|
|
140
|
-
9. `teaser` - Короткий опис
|
|
141
|
-
10. `start` - Дата початку
|
|
142
|
-
11. `end` - Дата закінчення
|
|
143
|
-
12. `deadline` - Дедлайн (очікувана дата завершення)
|
|
144
|
-
13. `address` - Адреса
|
|
145
|
-
14. `bbox` - BBOX
|
|
146
|
-
15. `cls` - Форматування даних за доп. класифікаторів
|
|
147
|
-
|
|
148
|
-
:::
|
|
149
|
-
|
|
150
|
-
:::details Службові колонки
|
|
151
|
-
|
|
152
|
-
При створенні таблиці потрібно створювати службові колонки:
|
|
153
|
-
|
|
154
|
-
| Підпис колонки | Назва | Тип |
|
|
155
|
-
| ------------------------------------------- | --------------- | ---------------------------------- |
|
|
156
|
-
| Дата створення | cdate | date_trunc('seconds'::text, now()) |
|
|
157
|
-
| Користувач, що востаннє відредагував об'єкт | editor_id | text |
|
|
158
|
-
| Дата редагування | editor_date | timestamp without time zone |
|
|
159
|
-
| Файли | files | json |
|
|
160
|
-
| Користувач, який створив | uid | text |
|
|
161
|
-
|
|
162
|
-
:::
|
|
1
|
+
---
|
|
2
|
+
title: Таблиця
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Таблиця
|
|
6
|
+
|
|
7
|
+
Використовується для виводу інформації з бази даних. В папці `server/templates/table`
|
|
8
|
+
|
|
9
|
+
::: info
|
|
10
|
+
Рекомендовано створювати окремі таблиці для виводу інформації до адміністративної, публічної частини та для виводу об'єктів на карту
|
|
11
|
+
:::
|
|
12
|
+
|
|
13
|
+
## Основні параметри **таблиці**
|
|
14
|
+
|
|
15
|
+
Таблиця формується у форматі `.json` та має бути розташована у відповідній папці `templates/table/{file}.json`
|
|
16
|
+
|
|
17
|
+
Нижче наведено приклад файлу таблиці інтерфейсу:
|
|
18
|
+
|
|
19
|
+
``` json
|
|
20
|
+
{
|
|
21
|
+
"table": "billing.service", // Таблиця БД, з якої беруться дані
|
|
22
|
+
"query": "service_name is not null", // Фільтрування даних
|
|
23
|
+
"sqlColumns": "*", // Віддає у об'єкті rows усі колонки із таблиці, використовується коли треба кастомну компоненту вивести як колонку в таблиці, щоб у цю компоненту передати усі колонки таблиці, і їх не прописувати в масиві columns
|
|
24
|
+
|
|
25
|
+
"order": "cdate", // колонка для сортування
|
|
26
|
+
|
|
27
|
+
"key": "service_id", // ID таблиці БД
|
|
28
|
+
|
|
29
|
+
"limit": 5, // Обмеження по кількості об'єктів
|
|
30
|
+
|
|
31
|
+
"form": "web.customize_menu.form", // Форма
|
|
32
|
+
|
|
33
|
+
"columns": [ // Колонки таблиці та їхні налаштування
|
|
34
|
+
{
|
|
35
|
+
"ua": "Назва", // Назва для відображення користувачам
|
|
36
|
+
"meta": "title", // Тип стандартизованого поля
|
|
37
|
+
"format": "text", // Тип даних
|
|
38
|
+
"name": "service_name", // Колонка таблиці Бд
|
|
39
|
+
"data": "service_name_cls", // Назва класифікатора/селекта
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"ua": "Контактні дані", // Заголовок колонки
|
|
43
|
+
"name": "email", // Колонка таблиці із цього шаблону
|
|
44
|
+
"format": "custom", // Форматування даних
|
|
45
|
+
"componentName": "admin-users-contacts" //Кастомна компонента vue для колонки
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
|
|
49
|
+
"filterList": [ // Фільтри таблиці
|
|
50
|
+
{
|
|
51
|
+
"ua": "Назва", // Підпис фільтру
|
|
52
|
+
"name": "service_name", // Колонка таблиці
|
|
53
|
+
"type": "Check" // Тип фільтру
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
|
|
57
|
+
"filterInline": [ // Фільтри таблиці
|
|
58
|
+
{
|
|
59
|
+
"ua": "Назва", // Підпис фільтру
|
|
60
|
+
"name": "service_name", // Колонка таблиці
|
|
61
|
+
"type": "Check" // Тип фільтру
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
|
|
65
|
+
"filterState": [ // Фільтри статусу
|
|
66
|
+
{
|
|
67
|
+
"sql": "status=1", // sql
|
|
68
|
+
"name": "archive", // назва ключ або номер 1
|
|
69
|
+
"ua": "Підпис", // підпис
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
|
|
73
|
+
"filterCustom": [ // Фільтри користувача
|
|
74
|
+
{
|
|
75
|
+
"sql": "status=1", // Підпис фільтру
|
|
76
|
+
"name": "archive", // ключ або номер 1
|
|
77
|
+
"ua": "Підпис", // підпис
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
|
|
81
|
+
"meta":{
|
|
82
|
+
"cls": {
|
|
83
|
+
"service_id": "billing.service_id",
|
|
84
|
+
"service_status": "billing.service_status"
|
|
85
|
+
}, // присвоєння колонкам класифікаторів для виведення даних (альтернатива columns)
|
|
86
|
+
"bbox": "geom", // колонка для пошуку по BBOX
|
|
87
|
+
"search":"name,address", // колоноки, за якими відбувається пошук
|
|
88
|
+
"title":"service_name", // колонка статус
|
|
89
|
+
"key":"service_key", // колонка ключ / code
|
|
90
|
+
"status":"service_status", // колонка статус
|
|
91
|
+
"type":"service_type", // колонка тип
|
|
92
|
+
"address":"address", // колонки адрес
|
|
93
|
+
"image":"image" // аватар, іконка і т.д.
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
- [Детально про фільтри](./filters.md)
|
|
99
|
+
|
|
100
|
+
## Format
|
|
101
|
+
|
|
102
|
+
| Формат | Опис |
|
|
103
|
+
| ------------------------ | --------------- |
|
|
104
|
+
| text | по замовчюванню |
|
|
105
|
+
| select | з класифікатора |
|
|
106
|
+
| tags | у вигляді label |
|
|
107
|
+
| badge | label з кольором |
|
|
108
|
+
| age | час |
|
|
109
|
+
| html | свій шаблон |
|
|
110
|
+
| number | число |
|
|
111
|
+
| boolean | switcher |
|
|
112
|
+
|
|
113
|
+
::: details Основні параметри **колонки**
|
|
114
|
+
|
|
115
|
+
- `ua` - Назва українською для відображення користувачам
|
|
116
|
+
- `format` - тип даних. Допустимі значення: `text`, `select`, `age`, `date`, `html`, `boolean`, `geom`, badge, tags, `number`
|
|
117
|
+
- `meta` - стандартизоване поле. Допустимі значення: `key`, `title`, `status`, `description`, `type`, category, `image`, `priority`, `teaser`, `start`, `end`, `deadline`, `address`
|
|
118
|
+
- `hidden` - приховати колонку зі стандартного вигляду. Допустимі значення: `true`, `false`
|
|
119
|
+
- `editable` - швидке редагування значення поля. Допустимі значення: `true`, `false`
|
|
120
|
+
- `data` - довідник, з якого беруться значення даних по колонці. Вказується назва селекту чи класифікатора.
|
|
121
|
+
|
|
122
|
+
:::
|
|
123
|
+
|
|
124
|
+
:::details Поле meta (стандартизоване поле)
|
|
125
|
+
|
|
126
|
+
Застосовуються для поля **meta**. Полегшують вивід даних в компоненти за даними від API.
|
|
127
|
+
|
|
128
|
+
Також може визначатися автоматично - за назвами колонок.
|
|
129
|
+
|
|
130
|
+
Перелік полів meta:
|
|
131
|
+
|
|
132
|
+
1. `key` - Код / номер
|
|
133
|
+
2. `title` - Назва
|
|
134
|
+
3. `status` - Статус
|
|
135
|
+
4. `description` - Повний опис
|
|
136
|
+
5. `type` - Тип
|
|
137
|
+
6. `category` - Категорія/Розділ
|
|
138
|
+
7. `image` - Зображення
|
|
139
|
+
8. `priority` - Пріоритет
|
|
140
|
+
9. `teaser` - Короткий опис
|
|
141
|
+
10. `start` - Дата початку
|
|
142
|
+
11. `end` - Дата закінчення
|
|
143
|
+
12. `deadline` - Дедлайн (очікувана дата завершення)
|
|
144
|
+
13. `address` - Адреса
|
|
145
|
+
14. `bbox` - BBOX
|
|
146
|
+
15. `cls` - Форматування даних за доп. класифікаторів
|
|
147
|
+
|
|
148
|
+
:::
|
|
149
|
+
|
|
150
|
+
:::details Службові колонки
|
|
151
|
+
|
|
152
|
+
При створенні таблиці потрібно створювати службові колонки:
|
|
153
|
+
|
|
154
|
+
| Підпис колонки | Назва | Тип |
|
|
155
|
+
| ------------------------------------------- | --------------- | ---------------------------------- |
|
|
156
|
+
| Дата створення | cdate | date_trunc('seconds'::text, now()) |
|
|
157
|
+
| Користувач, що востаннє відредагував об'єкт | editor_id | text |
|
|
158
|
+
| Дата редагування | editor_date | timestamp without time zone |
|
|
159
|
+
| Файли | files | json |
|
|
160
|
+
| Користувач, який створив | uid | text |
|
|
161
|
+
|
|
162
|
+
:::
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
# addCron
|
|
2
|
-
|
|
3
|
-
## Опис
|
|
4
|
-
|
|
5
|
-
Додає планувальник
|
|
6
|
-
|
|
7
|
-
## Параметри
|
|
8
|
-
|
|
9
|
-
```js
|
|
10
|
-
import updateParcelObjectGeometry from './cron/updateParcelObjectGeometry.js';
|
|
11
|
-
|
|
12
|
-
export default async function app(fastify, opts) {
|
|
13
|
-
// cron after core init
|
|
14
|
-
fastify.addHook('onReady', () => {
|
|
15
|
-
fastify.addCron(updateParcelObjectGeometry, 60 * 60 * 24, fastify);
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
:::tabs
|
|
21
|
-
== params
|
|
22
|
-
|
|
23
|
-
| Параметр | Тип | Опис |
|
|
24
|
-
| -------- | --------------- | ------------------------------------------------- |
|
|
25
|
-
| func | Object | Функція, яка буде викликатись планувальником |
|
|
26
|
-
| interval | String / Number | Інтервал часу між запусками |
|
|
27
|
-
| fastify | Object | Передача параметрів, в т.ч. funcs, log, config |
|
|
28
|
-
|
|
29
|
-
:::
|
|
1
|
+
# addCron
|
|
2
|
+
|
|
3
|
+
## Опис
|
|
4
|
+
|
|
5
|
+
Додає планувальник
|
|
6
|
+
|
|
7
|
+
## Параметри
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import updateParcelObjectGeometry from './cron/updateParcelObjectGeometry.js';
|
|
11
|
+
|
|
12
|
+
export default async function app(fastify, opts) {
|
|
13
|
+
// cron after core init
|
|
14
|
+
fastify.addHook('onReady', () => {
|
|
15
|
+
fastify.addCron(updateParcelObjectGeometry, 60 * 60 * 24, fastify);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
:::tabs
|
|
21
|
+
== params
|
|
22
|
+
|
|
23
|
+
| Параметр | Тип | Опис |
|
|
24
|
+
| -------- | --------------- | ------------------------------------------------- |
|
|
25
|
+
| func | Object | Функція, яка буде викликатись планувальником |
|
|
26
|
+
| interval | String / Number | Інтервал часу між запусками |
|
|
27
|
+
| fastify | Object | Передача параметрів, в т.ч. funcs, log, config |
|
|
28
|
+
|
|
29
|
+
:::
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
# dataInsert
|
|
2
|
-
|
|
3
|
-
## Опис
|
|
4
|
-
|
|
5
|
-
Імпорт даних у таблицю
|
|
6
|
-
|
|
7
|
-
```js
|
|
8
|
-
dataInsert({ table, data });
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Параметри
|
|
12
|
-
|
|
13
|
-
::: tabs
|
|
14
|
-
==params
|
|
15
|
-
|
|
16
|
-
| Параметр | Тип | Опис |
|
|
17
|
-
| -------- | ------ | ------- |
|
|
18
|
-
| table | String | Таблиця |
|
|
19
|
-
| data | String | Дані |
|
|
20
|
-
:::
|
|
21
|
-
|
|
22
|
-
## Приклад
|
|
23
|
-
|
|
24
|
-
```js
|
|
25
|
-
dataInsert({
|
|
26
|
-
table: "data_user.work", data: {
|
|
27
|
-
type_work: "2",
|
|
28
|
-
number_services: "25",
|
|
29
|
-
}
|
|
30
|
-
})
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Відповідь
|
|
34
|
-
|
|
35
|
-
:::details Приклад відповіді
|
|
36
|
-
|
|
37
|
-
```js
|
|
38
|
-
{
|
|
39
|
-
id_work: "3342501119648597051",
|
|
40
|
-
type_work: 2,
|
|
41
|
-
date_in: null,
|
|
42
|
-
date_out: null,
|
|
43
|
-
number_services: "25",
|
|
44
|
-
number_order: null,
|
|
45
|
-
shop: null,
|
|
46
|
-
geom: null,
|
|
47
|
-
editor_id: null,
|
|
48
|
-
uid: null,
|
|
49
|
-
editor_date: null,
|
|
50
|
-
}
|
|
51
|
-
```
|
|
1
|
+
# dataInsert
|
|
2
|
+
|
|
3
|
+
## Опис
|
|
4
|
+
|
|
5
|
+
Імпорт даних у таблицю
|
|
6
|
+
|
|
7
|
+
```js
|
|
8
|
+
dataInsert({ table, data });
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Параметри
|
|
12
|
+
|
|
13
|
+
::: tabs
|
|
14
|
+
==params
|
|
15
|
+
|
|
16
|
+
| Параметр | Тип | Опис |
|
|
17
|
+
| -------- | ------ | ------- |
|
|
18
|
+
| table | String | Таблиця |
|
|
19
|
+
| data | String | Дані |
|
|
20
|
+
:::
|
|
21
|
+
|
|
22
|
+
## Приклад
|
|
23
|
+
|
|
24
|
+
```js
|
|
25
|
+
dataInsert({
|
|
26
|
+
table: "data_user.work", data: {
|
|
27
|
+
type_work: "2",
|
|
28
|
+
number_services: "25",
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Відповідь
|
|
34
|
+
|
|
35
|
+
:::details Приклад відповіді
|
|
36
|
+
|
|
37
|
+
```js
|
|
38
|
+
{
|
|
39
|
+
id_work: "3342501119648597051",
|
|
40
|
+
type_work: 2,
|
|
41
|
+
date_in: null,
|
|
42
|
+
date_out: null,
|
|
43
|
+
number_services: "25",
|
|
44
|
+
number_order: null,
|
|
45
|
+
shop: null,
|
|
46
|
+
geom: null,
|
|
47
|
+
editor_id: null,
|
|
48
|
+
uid: null,
|
|
49
|
+
editor_date: null,
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
52
|
:::
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
# dataUpdate
|
|
2
|
-
|
|
3
|
-
## Опис
|
|
4
|
-
|
|
5
|
-
Оновлення даних у таблиці
|
|
6
|
-
|
|
7
|
-
```js
|
|
8
|
-
dataUpdate({table, id, data});
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Параметри
|
|
12
|
-
|
|
13
|
-
::: tabs
|
|
14
|
-
==params
|
|
15
|
-
|
|
16
|
-
| Параметр | Тип | Опис |
|
|
17
|
-
| -------- | ------ | ------------------- |
|
|
18
|
-
| table | String | Таблиця |
|
|
19
|
-
| id | String | Ідентифікатор рядка |
|
|
20
|
-
| data | Object | Дані для оновлення |
|
|
21
|
-
:::
|
|
22
|
-
|
|
23
|
-
## Приклад
|
|
24
|
-
|
|
25
|
-
```js
|
|
26
|
-
dataUpdate({
|
|
27
|
-
table: 'data_user.work', id: '3342439977240757305', data: {
|
|
28
|
-
type_work: "2",
|
|
29
|
-
number_services: "25",
|
|
30
|
-
}
|
|
31
|
-
})
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Відповідь
|
|
35
|
-
|
|
36
|
-
:::details Приклад відповіді
|
|
37
|
-
|
|
38
|
-
```js
|
|
39
|
-
{
|
|
40
|
-
id_work: "3342439977240757305",
|
|
41
|
-
type_work: 2,
|
|
42
|
-
date_in: null,
|
|
43
|
-
date_out: null,
|
|
44
|
-
number_services: "25",
|
|
45
|
-
number_order: null,
|
|
46
|
-
shop: null,
|
|
47
|
-
geom: null,
|
|
48
|
-
editor_id: null,
|
|
49
|
-
uid: null,
|
|
50
|
-
editor_date: "2024-04-09T12:22:09.000Z",
|
|
51
|
-
}
|
|
52
|
-
```
|
|
1
|
+
# dataUpdate
|
|
2
|
+
|
|
3
|
+
## Опис
|
|
4
|
+
|
|
5
|
+
Оновлення даних у таблиці
|
|
6
|
+
|
|
7
|
+
```js
|
|
8
|
+
dataUpdate({table, id, data});
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Параметри
|
|
12
|
+
|
|
13
|
+
::: tabs
|
|
14
|
+
==params
|
|
15
|
+
|
|
16
|
+
| Параметр | Тип | Опис |
|
|
17
|
+
| -------- | ------ | ------------------- |
|
|
18
|
+
| table | String | Таблиця |
|
|
19
|
+
| id | String | Ідентифікатор рядка |
|
|
20
|
+
| data | Object | Дані для оновлення |
|
|
21
|
+
:::
|
|
22
|
+
|
|
23
|
+
## Приклад
|
|
24
|
+
|
|
25
|
+
```js
|
|
26
|
+
dataUpdate({
|
|
27
|
+
table: 'data_user.work', id: '3342439977240757305', data: {
|
|
28
|
+
type_work: "2",
|
|
29
|
+
number_services: "25",
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Відповідь
|
|
35
|
+
|
|
36
|
+
:::details Приклад відповіді
|
|
37
|
+
|
|
38
|
+
```js
|
|
39
|
+
{
|
|
40
|
+
id_work: "3342439977240757305",
|
|
41
|
+
type_work: 2,
|
|
42
|
+
date_in: null,
|
|
43
|
+
date_out: null,
|
|
44
|
+
number_services: "25",
|
|
45
|
+
number_order: null,
|
|
46
|
+
shop: null,
|
|
47
|
+
geom: null,
|
|
48
|
+
editor_id: null,
|
|
49
|
+
uid: null,
|
|
50
|
+
editor_date: "2024-04-09T12:22:09.000Z",
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
53
|
:::
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
# getOpt
|
|
2
|
-
|
|
3
|
-
## Опис
|
|
4
|
-
|
|
5
|
-
Функція призначена для отримання опцій (налаштувань) за токеном. Повертає json.
|
|
6
|
-
|
|
7
|
-
```js
|
|
8
|
-
getOpt(token)
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Параметри
|
|
12
|
-
|
|
13
|
-
::: tabs
|
|
14
|
-
==params
|
|
15
|
-
|
|
16
|
-
| Параметр | Тип | Опис |
|
|
17
|
-
| -------- | ------ | ----- |
|
|
18
|
-
| token | String | Токен |
|
|
19
|
-
:::
|
|
20
|
-
|
|
21
|
-
## Приклад
|
|
22
|
-
|
|
23
|
-
```js
|
|
24
|
-
getOpt('UfTTVsVKxBXchKlzRKIg')
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Відповідь
|
|
28
|
-
|
|
29
|
-
:::details Приклад відповіді
|
|
30
|
-
|
|
31
|
-
```json
|
|
32
|
-
"data_user.work"
|
|
33
|
-
```
|
|
1
|
+
# getOpt
|
|
2
|
+
|
|
3
|
+
## Опис
|
|
4
|
+
|
|
5
|
+
Функція призначена для отримання опцій (налаштувань) за токеном. Повертає json.
|
|
6
|
+
|
|
7
|
+
```js
|
|
8
|
+
getOpt(token)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Параметри
|
|
12
|
+
|
|
13
|
+
::: tabs
|
|
14
|
+
==params
|
|
15
|
+
|
|
16
|
+
| Параметр | Тип | Опис |
|
|
17
|
+
| -------- | ------ | ----- |
|
|
18
|
+
| token | String | Токен |
|
|
19
|
+
:::
|
|
20
|
+
|
|
21
|
+
## Приклад
|
|
22
|
+
|
|
23
|
+
```js
|
|
24
|
+
getOpt('UfTTVsVKxBXchKlzRKIg')
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Відповідь
|
|
28
|
+
|
|
29
|
+
:::details Приклад відповіді
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
"data_user.work"
|
|
33
|
+
```
|
|
34
34
|
:::
|