@opengis/fastify-table 1.1.51 → 1.1.53
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 -352
- 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 +12 -10
- package/cron/schema.js +8 -0
- 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 -46
- 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 +31 -36
- package/crud/schema.js +11 -0
- 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 +27 -30
- package/notification/controllers/testEmail.js +46 -50
- package/notification/controllers/userNotifications.js +61 -64
- package/notification/funcs/addNotification.js +21 -21
- package/notification/funcs/sendNotification.js +112 -112
- package/notification/index.js +3 -8
- package/notification/schema.js +10 -0
- 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 -172
- package/server/migrations/users.sql +168 -168
- package/server.js +26 -26
- package/table/controllers/data.js +157 -150
- package/table/controllers/filter.js +61 -50
- package/table/controllers/form.js +42 -42
- package/table/controllers/search.js +76 -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 +72 -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 +64 -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 +71 -75
- package/user/controllers/user.cls.post.js +52 -55
- package/user/controllers/user.info.js +17 -21
- package/user/index.js +7 -36
- package/user/schema.js +17 -0
- package/util/controllers/logger.file.js +91 -91
- package/util/controllers/next.id.js +4 -4
- package/util/controllers/properties.add.js +56 -60
- package/util/controllers/properties.get.js +16 -19
- package/util/controllers/status.monitor.js +8 -8
- package/util/controllers/utils/checkUserAccess.js +20 -17
- package/util/controllers/utils/getRootDir.js +25 -25
- package/util/index.js +19 -23
- package/util/schema.js +19 -0
- package/utils.js +106 -104
- package/widget/controllers/utils/historyFormat.js +76 -76
- package/widget/controllers/utils/obj2db.js +13 -13
- package/widget/controllers/widget.del.js +41 -44
- package/widget/controllers/widget.get.js +96 -102
- package/widget/controllers/widget.set.js +74 -79
- package/widget/index.js +40 -40
package/docs/templates/forms.md
CHANGED
|
@@ -1,139 +1,139 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 6
|
|
3
|
-
title: Форми
|
|
4
|
-
displayed_sidebar: devDocsSidebar
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Форми
|
|
8
|
-
|
|
9
|
-
Використовується для створення та редагування даних у таблицях бази даних для користувачів. В папці `server/templates/form`
|
|
10
|
-
|
|
11
|
-
[Документація Form](https://apidocs.softpro.ua/v3-core/form/)
|
|
12
|
-
|
|
13
|
-
## Створення форми
|
|
14
|
-
|
|
15
|
-
Використовуємо компоненти форм на основі Vue.
|
|
16
|
-
|
|
17
|
-
Для формування форми створити у відповідній папці файл у форматі JSON, приклад:
|
|
18
|
-
|
|
19
|
-
``` json
|
|
20
|
-
{
|
|
21
|
-
"schema": {
|
|
22
|
-
"user_name": {
|
|
23
|
-
"type": "Text",
|
|
24
|
-
"ua": "ПІБ",
|
|
25
|
-
"i": "Заповніть у форматі Петренко Петро Петрович"
|
|
26
|
-
},
|
|
27
|
-
"contact.email": {
|
|
28
|
-
"type": "Email",
|
|
29
|
-
"ua": "Email",
|
|
30
|
-
"placeholder": {
|
|
31
|
-
"ua": "Email",
|
|
32
|
-
"en": "Email"
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
"message": {
|
|
36
|
-
"type": "richtext",
|
|
37
|
-
"title": false,
|
|
38
|
-
"ua": "Повідомлення",
|
|
39
|
-
"en": "Message",
|
|
40
|
-
"i": "Опишіть проблему, пропозицію чи коментар в даному полі",
|
|
41
|
-
"validators": [
|
|
42
|
-
"required"
|
|
43
|
-
]
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
"style": {
|
|
47
|
-
"label": "vertical",
|
|
48
|
-
"buttonPosition": "bottom-center"
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
::: details Типи полів
|
|
54
|
-
|
|
55
|
-
Значення типу форми бажано вказувати в нижньому регістрі. Хоча форма приймає значення в будь-якому регістрі.
|
|
56
|
-
|
|
57
|
-
- **`Text`** - Основний тип в формі - приймає текстові значення
|
|
58
|
-
- **`TextArea`** - Застосовується найчастіше для тізерів, коротких описів
|
|
59
|
-
- **`Number`** - Для числових значень, в т.ч. і для десяткових
|
|
60
|
-
- **`MarkedText`** - Передаються маска, якими мають бути значення. Може застосовуватися, наприклад, для мобільних номерів
|
|
61
|
-
- **`Password`** - Спеціальний тип форми для вводу та перевірки паролю
|
|
62
|
-
- **`Email`** - Спеціальний тип для email
|
|
63
|
-
- **`DataTable`** - Таблиця в формі
|
|
64
|
-
- **`File`** - Вибір файлів з можливістю перетягуванння елементів.
|
|
65
|
-
- **`FileList`** - Вибір файлів зі зручним переглядом всіх файлів.
|
|
66
|
-
- **`Checkbox`** - Вибір декількох значень без випадаючого списку
|
|
67
|
-
- **`Switcher`** - Переключення між значеннями false/true
|
|
68
|
-
- **`Radio`** - Вибір один одного значення без випадаючого списку
|
|
69
|
-
- **`Autocomplete`** - Вибір декількох значень із випадаючого списку
|
|
70
|
-
- **`Date`** - Вибір дати
|
|
71
|
-
- **`Datetime`** - Вибір дати та часу
|
|
72
|
-
- **`Timepicker`** - Вибір часу
|
|
73
|
-
- **`Colorpicker`** - Вибір кольору
|
|
74
|
-
- **`Richtext`** - Текстовий редактор з підтримкою markdown розмітки
|
|
75
|
-
- **`Geom`** - Створення геометрії (позначки на карті) для об'єкта
|
|
76
|
-
- **`Camera`** - Додавання живого фото з веб-камери
|
|
77
|
-
- **`Slider`** - Числове значення, що встановлюється по лінії-повзунку
|
|
78
|
-
- **`Tree`** - Створення значень поля у форматі деревоподібного структурованого списку
|
|
79
|
-
|
|
80
|
-
:::
|
|
81
|
-
|
|
82
|
-
::: details Параметри поля
|
|
83
|
-
|
|
84
|
-
- `pin` - для основних полів, можна прикріприти в правій частині. Допустимі значення: `true`, `false`
|
|
85
|
-
- `col` - ширина поля в формі. Допустимі значення: `діапазон від 1 до 12`, цілі числа.
|
|
86
|
-
- `title` - показ назви поля (ua) в формі. За замовчуванням `false`. Допустимі значення: `true`, `false`
|
|
87
|
-
- `i` - інформація. Приймається будь-який текстовий масив. HTML не читається.
|
|
88
|
-
- `help` - блок допомоги в полі форми. Приймається будь-який текстовий масив. HTML не читається.
|
|
89
|
-
- `multi` - можливість вибору декількох значень. Допустимі значення: `true`, `false`
|
|
90
|
-
- `default` - значення поля за замовчуванням. Значення відрізняються в залежності від типу поля форми.
|
|
91
|
-
- `min` - мінімальне значення
|
|
92
|
-
- `max` - максимальне значення
|
|
93
|
-
- `behavior` - показ/приховання певного поля.
|
|
94
|
-
- `mask` - маска для `type: MarkedText`
|
|
95
|
-
- `parent` - батьківське поле форми.
|
|
96
|
-
- `validators`
|
|
97
|
-
- `placeholder` - текст, що виводиться в полі
|
|
98
|
-
|
|
99
|
-
:::
|
|
100
|
-
|
|
101
|
-
### Параметри стилів
|
|
102
|
-
|
|
103
|
-
Форма може змінювати зовнішній вигляд, нижче наведені параметри стилів. Працює як через вміст style{...}, так і як самостійні значення на одному рівні із schema
|
|
104
|
-
|
|
105
|
-
``` json
|
|
106
|
-
{
|
|
107
|
-
"schema": {},
|
|
108
|
-
"style": {
|
|
109
|
-
"layout": "tabs", // accordion, wizard, default,
|
|
110
|
-
"label": "inline" // vertical, horizontal
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Вивід форми
|
|
116
|
-
|
|
117
|
-
Існує декілька опцій, за допомогою яких можна виводити форму.
|
|
118
|
-
|
|
119
|
-
**handlebars**
|
|
120
|
-
|
|
121
|
-
```hbs
|
|
122
|
-
{{{__form form="form_name" model='table_name' id=id}}}
|
|
123
|
-
{{{_vue "vs-form" form="form_name"}}}
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
**html attribute - add, edit**
|
|
127
|
-
|
|
128
|
-
```html
|
|
129
|
-
<a add="{{_token id=id model=table form=form}}"> Стаття</a>
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
**В таблиці у форматі**
|
|
133
|
-
|
|
134
|
-
``` json
|
|
135
|
-
{
|
|
136
|
-
"table": "billing.service", // Таблиця
|
|
137
|
-
"add_form": "web.customize_menu.form" // Назва форми
|
|
138
|
-
}
|
|
139
|
-
```
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 6
|
|
3
|
+
title: Форми
|
|
4
|
+
displayed_sidebar: devDocsSidebar
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Форми
|
|
8
|
+
|
|
9
|
+
Використовується для створення та редагування даних у таблицях бази даних для користувачів. В папці `server/templates/form`
|
|
10
|
+
|
|
11
|
+
[Документація Form](https://apidocs.softpro.ua/v3-core/form/)
|
|
12
|
+
|
|
13
|
+
## Створення форми
|
|
14
|
+
|
|
15
|
+
Використовуємо компоненти форм на основі Vue.
|
|
16
|
+
|
|
17
|
+
Для формування форми створити у відповідній папці файл у форматі JSON, приклад:
|
|
18
|
+
|
|
19
|
+
``` json
|
|
20
|
+
{
|
|
21
|
+
"schema": {
|
|
22
|
+
"user_name": {
|
|
23
|
+
"type": "Text",
|
|
24
|
+
"ua": "ПІБ",
|
|
25
|
+
"i": "Заповніть у форматі Петренко Петро Петрович"
|
|
26
|
+
},
|
|
27
|
+
"contact.email": {
|
|
28
|
+
"type": "Email",
|
|
29
|
+
"ua": "Email",
|
|
30
|
+
"placeholder": {
|
|
31
|
+
"ua": "Email",
|
|
32
|
+
"en": "Email"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"message": {
|
|
36
|
+
"type": "richtext",
|
|
37
|
+
"title": false,
|
|
38
|
+
"ua": "Повідомлення",
|
|
39
|
+
"en": "Message",
|
|
40
|
+
"i": "Опишіть проблему, пропозицію чи коментар в даному полі",
|
|
41
|
+
"validators": [
|
|
42
|
+
"required"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"style": {
|
|
47
|
+
"label": "vertical",
|
|
48
|
+
"buttonPosition": "bottom-center"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
::: details Типи полів
|
|
54
|
+
|
|
55
|
+
Значення типу форми бажано вказувати в нижньому регістрі. Хоча форма приймає значення в будь-якому регістрі.
|
|
56
|
+
|
|
57
|
+
- **`Text`** - Основний тип в формі - приймає текстові значення
|
|
58
|
+
- **`TextArea`** - Застосовується найчастіше для тізерів, коротких описів
|
|
59
|
+
- **`Number`** - Для числових значень, в т.ч. і для десяткових
|
|
60
|
+
- **`MarkedText`** - Передаються маска, якими мають бути значення. Може застосовуватися, наприклад, для мобільних номерів
|
|
61
|
+
- **`Password`** - Спеціальний тип форми для вводу та перевірки паролю
|
|
62
|
+
- **`Email`** - Спеціальний тип для email
|
|
63
|
+
- **`DataTable`** - Таблиця в формі
|
|
64
|
+
- **`File`** - Вибір файлів з можливістю перетягуванння елементів.
|
|
65
|
+
- **`FileList`** - Вибір файлів зі зручним переглядом всіх файлів.
|
|
66
|
+
- **`Checkbox`** - Вибір декількох значень без випадаючого списку
|
|
67
|
+
- **`Switcher`** - Переключення між значеннями false/true
|
|
68
|
+
- **`Radio`** - Вибір один одного значення без випадаючого списку
|
|
69
|
+
- **`Autocomplete`** - Вибір декількох значень із випадаючого списку
|
|
70
|
+
- **`Date`** - Вибір дати
|
|
71
|
+
- **`Datetime`** - Вибір дати та часу
|
|
72
|
+
- **`Timepicker`** - Вибір часу
|
|
73
|
+
- **`Colorpicker`** - Вибір кольору
|
|
74
|
+
- **`Richtext`** - Текстовий редактор з підтримкою markdown розмітки
|
|
75
|
+
- **`Geom`** - Створення геометрії (позначки на карті) для об'єкта
|
|
76
|
+
- **`Camera`** - Додавання живого фото з веб-камери
|
|
77
|
+
- **`Slider`** - Числове значення, що встановлюється по лінії-повзунку
|
|
78
|
+
- **`Tree`** - Створення значень поля у форматі деревоподібного структурованого списку
|
|
79
|
+
|
|
80
|
+
:::
|
|
81
|
+
|
|
82
|
+
::: details Параметри поля
|
|
83
|
+
|
|
84
|
+
- `pin` - для основних полів, можна прикріприти в правій частині. Допустимі значення: `true`, `false`
|
|
85
|
+
- `col` - ширина поля в формі. Допустимі значення: `діапазон від 1 до 12`, цілі числа.
|
|
86
|
+
- `title` - показ назви поля (ua) в формі. За замовчуванням `false`. Допустимі значення: `true`, `false`
|
|
87
|
+
- `i` - інформація. Приймається будь-який текстовий масив. HTML не читається.
|
|
88
|
+
- `help` - блок допомоги в полі форми. Приймається будь-який текстовий масив. HTML не читається.
|
|
89
|
+
- `multi` - можливість вибору декількох значень. Допустимі значення: `true`, `false`
|
|
90
|
+
- `default` - значення поля за замовчуванням. Значення відрізняються в залежності від типу поля форми.
|
|
91
|
+
- `min` - мінімальне значення
|
|
92
|
+
- `max` - максимальне значення
|
|
93
|
+
- `behavior` - показ/приховання певного поля.
|
|
94
|
+
- `mask` - маска для `type: MarkedText`
|
|
95
|
+
- `parent` - батьківське поле форми.
|
|
96
|
+
- `validators`
|
|
97
|
+
- `placeholder` - текст, що виводиться в полі
|
|
98
|
+
|
|
99
|
+
:::
|
|
100
|
+
|
|
101
|
+
### Параметри стилів
|
|
102
|
+
|
|
103
|
+
Форма може змінювати зовнішній вигляд, нижче наведені параметри стилів. Працює як через вміст style{...}, так і як самостійні значення на одному рівні із schema
|
|
104
|
+
|
|
105
|
+
``` json
|
|
106
|
+
{
|
|
107
|
+
"schema": {},
|
|
108
|
+
"style": {
|
|
109
|
+
"layout": "tabs", // accordion, wizard, default,
|
|
110
|
+
"label": "inline" // vertical, horizontal
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Вивід форми
|
|
116
|
+
|
|
117
|
+
Існує декілька опцій, за допомогою яких можна виводити форму.
|
|
118
|
+
|
|
119
|
+
**handlebars**
|
|
120
|
+
|
|
121
|
+
```hbs
|
|
122
|
+
{{{__form form="form_name" model='table_name' id=id}}}
|
|
123
|
+
{{{_vue "vs-form" form="form_name"}}}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**html attribute - add, edit**
|
|
127
|
+
|
|
128
|
+
```html
|
|
129
|
+
<a add="{{_token id=id model=table form=form}}"> Стаття</a>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**В таблиці у форматі**
|
|
133
|
+
|
|
134
|
+
``` json
|
|
135
|
+
{
|
|
136
|
+
"table": "billing.service", // Таблиця
|
|
137
|
+
"add_form": "web.customize_menu.form" // Назва форми
|
|
138
|
+
}
|
|
139
|
+
```
|
package/docs/templates/index.md
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
---
|
|
2
|
-
order: -1
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Список шаблонів
|
|
6
|
-
|
|
7
|
-
- **[card](card.md)** - картка таблиці.
|
|
8
|
-
- **[cls](cls.md)** - класифікатори.
|
|
9
|
-
- **[select](select.md)** - селекти.
|
|
10
|
-
- **[filters](filters.md)** - фільтри.
|
|
11
|
-
- **[forms](forms.md)** - створення та редагування даних у таблицях бази даних для користувачів.
|
|
12
|
-
- **[table](table.md)** - для виводу інформації з бази даних.
|
|
13
|
-
|
|
14
|
-
::: details Типова структура проекту GIT
|
|
15
|
-
|
|
16
|
-
Всі шаблони знаходяться в GIT проекті в папці `templates`
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
|
|
20
|
-
server # module SITE
|
|
21
|
-
└── templates # шаблони
|
|
22
|
-
├── cls # незмінні класифікатори
|
|
23
|
-
├── select # класифікатори запити
|
|
24
|
-
├── form # форми json
|
|
25
|
-
└── table # таблиці
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
:::
|
|
1
|
+
---
|
|
2
|
+
order: -1
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Список шаблонів
|
|
6
|
+
|
|
7
|
+
- **[card](card.md)** - картка таблиці.
|
|
8
|
+
- **[cls](cls.md)** - класифікатори.
|
|
9
|
+
- **[select](select.md)** - селекти.
|
|
10
|
+
- **[filters](filters.md)** - фільтри.
|
|
11
|
+
- **[forms](forms.md)** - створення та редагування даних у таблицях бази даних для користувачів.
|
|
12
|
+
- **[table](table.md)** - для виводу інформації з бази даних.
|
|
13
|
+
|
|
14
|
+
::: details Типова структура проекту GIT
|
|
15
|
+
|
|
16
|
+
Всі шаблони знаходяться в GIT проекті в папці `templates`
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
|
|
20
|
+
server # module SITE
|
|
21
|
+
└── templates # шаблони
|
|
22
|
+
├── cls # незмінні класифікатори
|
|
23
|
+
├── select # класифікатори запити
|
|
24
|
+
├── form # форми json
|
|
25
|
+
└── table # таблиці
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
:::
|
package/docs/templates/select.md
CHANGED
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
# Select
|
|
2
|
-
|
|
3
|
-
Зберігаються файли у форматі .sql. Принцип виклику відрізняється від класифікаторів - запит значень йде у базу даних до конкретної таблиці.
|
|
4
|
-
В папці `server/templates/select`
|
|
5
|
-
|
|
6
|
-
Складається з 1 або 2-х файлів
|
|
7
|
-
|
|
8
|
-
1. `select.sql` - SQL запит
|
|
9
|
-
2. `select.json` - Налаштування select
|
|
10
|
-
|
|
11
|
-
```sql
|
|
12
|
-
select conformity from data_barlessness.entrance_group
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Налаштування + Оптимізація
|
|
16
|
-
|
|
17
|
-
```json
|
|
18
|
-
{
|
|
19
|
-
"db": "geo_atu", // інша база
|
|
20
|
-
|
|
21
|
-
// для оптимізації
|
|
22
|
-
"only": "sql", // sql, redis
|
|
23
|
-
"searchColumn": "name_nominative,katottg", // колонки пошуку
|
|
24
|
-
"minLengthSql": 4, //
|
|
25
|
-
"limit": 20, // максимальний ліміт пошуку
|
|
26
|
-
"count": 0, // загальна кількість число, не буде робити запит кількості
|
|
27
|
-
"minLength": 4 // мінімальна кількість символів пошуку
|
|
28
|
-
}
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
::: details Приклад `edrato.atu.katottg`
|
|
32
|
-
|
|
33
|
-
```sql
|
|
34
|
-
select atu_id,
|
|
35
|
-
coalesce(edrato.atu_full_name(atu_id),'')||coalesce(' #'||katottg,''),
|
|
36
|
-
name_nominative,
|
|
37
|
-
katottg
|
|
38
|
-
from edrato.atu a
|
|
39
|
-
where version=(select max(version) from edrato.atu where atu_id=a.atu_id)
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
```json
|
|
45
|
-
{
|
|
46
|
-
"only": "sql",
|
|
47
|
-
"searchColumn1": "name_nominative,katottg",
|
|
48
|
-
"limit": 2,
|
|
49
|
-
"minLength": 4
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
:::
|
|
54
|
-
|
|
55
|
-
::: warning
|
|
56
|
-
|
|
57
|
-
1. Якщо запит працює більше 100ms - це баг і треба робити оптимізацію.
|
|
58
|
-
2. searchColumn - пошук має бути по нативній колонці щоб індекс спрацював. Порядок searchColumn = `searchColumn` || колонка `search` || колонка `text`
|
|
59
|
-
3. не намагатись загаянти статистику в пошук
|
|
60
|
-
:::
|
|
61
|
-
|
|
62
|
-
## Використання API
|
|
63
|
-
|
|
64
|
-
Викликається через команду [suggest](../api/fastify-table/table/suggest.md) `/api/suggest/{name}` на конкретному порталі.
|
|
65
|
-
|
|
66
|
-
Повертаються значення **id** та **text**. Приклад:
|
|
67
|
-
|
|
68
|
-
```json
|
|
69
|
-
{
|
|
70
|
-
"limit": 50,
|
|
71
|
-
"count": 2,
|
|
72
|
-
"mode": "array",
|
|
73
|
-
"time": 2,
|
|
74
|
-
"data": [
|
|
75
|
-
{
|
|
76
|
-
"id": "1",
|
|
77
|
-
"text": "Комунальна"
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
"id": "2",
|
|
81
|
-
"text": "Державна"
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
"id": "3",
|
|
85
|
-
"text": "Приватна"
|
|
86
|
-
}
|
|
87
|
-
]
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
```
|
|
1
|
+
# Select
|
|
2
|
+
|
|
3
|
+
Зберігаються файли у форматі .sql. Принцип виклику відрізняється від класифікаторів - запит значень йде у базу даних до конкретної таблиці.
|
|
4
|
+
В папці `server/templates/select`
|
|
5
|
+
|
|
6
|
+
Складається з 1 або 2-х файлів
|
|
7
|
+
|
|
8
|
+
1. `select.sql` - SQL запит
|
|
9
|
+
2. `select.json` - Налаштування select
|
|
10
|
+
|
|
11
|
+
```sql
|
|
12
|
+
select conformity from data_barlessness.entrance_group
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Налаштування + Оптимізація
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"db": "geo_atu", // інша база
|
|
20
|
+
|
|
21
|
+
// для оптимізації
|
|
22
|
+
"only": "sql", // sql, redis
|
|
23
|
+
"searchColumn": "name_nominative,katottg", // колонки пошуку
|
|
24
|
+
"minLengthSql": 4, //
|
|
25
|
+
"limit": 20, // максимальний ліміт пошуку
|
|
26
|
+
"count": 0, // загальна кількість число, не буде робити запит кількості
|
|
27
|
+
"minLength": 4 // мінімальна кількість символів пошуку
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
::: details Приклад `edrato.atu.katottg`
|
|
32
|
+
|
|
33
|
+
```sql
|
|
34
|
+
select atu_id,
|
|
35
|
+
coalesce(edrato.atu_full_name(atu_id),'')||coalesce(' #'||katottg,''),
|
|
36
|
+
name_nominative,
|
|
37
|
+
katottg
|
|
38
|
+
from edrato.atu a
|
|
39
|
+
where version=(select max(version) from edrato.atu where atu_id=a.atu_id)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"only": "sql",
|
|
47
|
+
"searchColumn1": "name_nominative,katottg",
|
|
48
|
+
"limit": 2,
|
|
49
|
+
"minLength": 4
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
:::
|
|
54
|
+
|
|
55
|
+
::: warning
|
|
56
|
+
|
|
57
|
+
1. Якщо запит працює більше 100ms - це баг і треба робити оптимізацію.
|
|
58
|
+
2. searchColumn - пошук має бути по нативній колонці щоб індекс спрацював. Порядок searchColumn = `searchColumn` || колонка `search` || колонка `text`
|
|
59
|
+
3. не намагатись загаянти статистику в пошук
|
|
60
|
+
:::
|
|
61
|
+
|
|
62
|
+
## Використання API
|
|
63
|
+
|
|
64
|
+
Викликається через команду [suggest](../api/fastify-table/table/suggest.md) `/api/suggest/{name}` на конкретному порталі.
|
|
65
|
+
|
|
66
|
+
Повертаються значення **id** та **text**. Приклад:
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"limit": 50,
|
|
71
|
+
"count": 2,
|
|
72
|
+
"mode": "array",
|
|
73
|
+
"time": 2,
|
|
74
|
+
"data": [
|
|
75
|
+
{
|
|
76
|
+
"id": "1",
|
|
77
|
+
"text": "Комунальна"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "2",
|
|
81
|
+
"text": "Державна"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "3",
|
|
85
|
+
"text": "Приватна"
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
```
|