@opengis/fastify-table 1.1.51 → 1.1.52
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/card.md
CHANGED
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Card
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Картка таблиці
|
|
6
|
-
|
|
7
|
-
Карточка через налаштування
|
|
8
|
-
|
|
9
|
-
## Структура
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
templates/card
|
|
13
|
-
├── index.yml # налаштування картки
|
|
14
|
-
├── tab1.md
|
|
15
|
-
├── my-tab2.hbs
|
|
16
|
-
├── favorite.hbs
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Index.yml
|
|
20
|
-
|
|
21
|
-
```yml
|
|
22
|
-
component: default
|
|
23
|
-
panels:
|
|
24
|
-
- type: container
|
|
25
|
-
col: 3
|
|
26
|
-
items:
|
|
27
|
-
- component: vs-widget-position
|
|
28
|
-
title: Місце знаходження
|
|
29
|
-
- type: tab # tabs
|
|
30
|
-
items:
|
|
31
|
-
- passport # hbs or component name
|
|
32
|
-
- examination
|
|
33
|
-
- events
|
|
34
|
-
- component: vs-widget-gallery # component name
|
|
35
|
-
title: Галерея
|
|
36
|
-
col: 9
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
```yml
|
|
40
|
-
component: default
|
|
41
|
-
panels:
|
|
42
|
-
- col: 3 # type container default
|
|
43
|
-
items:
|
|
44
|
-
- general_info
|
|
45
|
-
- type: container # one by one
|
|
46
|
-
col: 9
|
|
47
|
-
items:
|
|
48
|
-
- vs-widget-map # name: vs-widget-map
|
|
49
|
-
- component: vs-widget-gallery
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## HBS
|
|
53
|
-
|
|
54
|
-
tab1.hbs, my-tab2.hbs
|
|
55
|
-
|
|
56
|
-
- [Helpers](../plugin/hb.md)
|
|
57
|
-
- [Plugins](https://apidocs.softpro.ua/v3-core/core/overlays/loading.html) - окрема папка
|
|
58
|
-
|
|
59
|
-
## API
|
|
60
|
-
|
|
61
|
-
/api/table-data/id
|
|
62
|
-
|
|
63
|
-
Повертає структуру index.yml
|
|
64
|
-
|
|
65
|
-
```js
|
|
66
|
-
{
|
|
67
|
-
component: default, // назва
|
|
68
|
-
panels: [ // структура
|
|
69
|
-
{name: 'card1', col: 3},
|
|
70
|
-
{type: 'tabs', col: 9, items: ['tab1', 'tab2', {component: 'vs-comments'} ]},
|
|
71
|
-
],
|
|
72
|
-
data: {
|
|
73
|
-
tab1: "html",
|
|
74
|
-
tab2: "html",
|
|
75
|
-
card1: "html"
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## Design
|
|
81
|
-
|
|
82
|
-
- <https://preline.co/pro/ecommerce/product-details.html>
|
|
83
|
-
- <https://preline.co/pro/dashboard/account-profile.html>
|
|
1
|
+
---
|
|
2
|
+
title: Card
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Картка таблиці
|
|
6
|
+
|
|
7
|
+
Карточка через налаштування
|
|
8
|
+
|
|
9
|
+
## Структура
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
templates/card
|
|
13
|
+
├── index.yml # налаштування картки
|
|
14
|
+
├── tab1.md
|
|
15
|
+
├── my-tab2.hbs
|
|
16
|
+
├── favorite.hbs
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Index.yml
|
|
20
|
+
|
|
21
|
+
```yml
|
|
22
|
+
component: default
|
|
23
|
+
panels:
|
|
24
|
+
- type: container
|
|
25
|
+
col: 3
|
|
26
|
+
items:
|
|
27
|
+
- component: vs-widget-position
|
|
28
|
+
title: Місце знаходження
|
|
29
|
+
- type: tab # tabs
|
|
30
|
+
items:
|
|
31
|
+
- passport # hbs or component name
|
|
32
|
+
- examination
|
|
33
|
+
- events
|
|
34
|
+
- component: vs-widget-gallery # component name
|
|
35
|
+
title: Галерея
|
|
36
|
+
col: 9
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```yml
|
|
40
|
+
component: default
|
|
41
|
+
panels:
|
|
42
|
+
- col: 3 # type container default
|
|
43
|
+
items:
|
|
44
|
+
- general_info
|
|
45
|
+
- type: container # one by one
|
|
46
|
+
col: 9
|
|
47
|
+
items:
|
|
48
|
+
- vs-widget-map # name: vs-widget-map
|
|
49
|
+
- component: vs-widget-gallery
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## HBS
|
|
53
|
+
|
|
54
|
+
tab1.hbs, my-tab2.hbs
|
|
55
|
+
|
|
56
|
+
- [Helpers](../plugin/hb.md)
|
|
57
|
+
- [Plugins](https://apidocs.softpro.ua/v3-core/core/overlays/loading.html) - окрема папка
|
|
58
|
+
|
|
59
|
+
## API
|
|
60
|
+
|
|
61
|
+
/api/table-data/id
|
|
62
|
+
|
|
63
|
+
Повертає структуру index.yml
|
|
64
|
+
|
|
65
|
+
```js
|
|
66
|
+
{
|
|
67
|
+
component: default, // назва
|
|
68
|
+
panels: [ // структура
|
|
69
|
+
{name: 'card1', col: 3},
|
|
70
|
+
{type: 'tabs', col: 9, items: ['tab1', 'tab2', {component: 'vs-comments'} ]},
|
|
71
|
+
],
|
|
72
|
+
data: {
|
|
73
|
+
tab1: "html",
|
|
74
|
+
tab2: "html",
|
|
75
|
+
card1: "html"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Design
|
|
81
|
+
|
|
82
|
+
- <https://preline.co/pro/ecommerce/product-details.html>
|
|
83
|
+
- <https://preline.co/pro/dashboard/account-profile.html>
|
package/docs/templates/cls.md
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Класифікатори
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Класифікатори
|
|
6
|
-
|
|
7
|
-
Всі класифікатори та селекти зберігаються у відповідному GIT проєкті в папці `server/templates/cls`.
|
|
8
|
-
|
|
9
|
-
Зберігаються значення у файлі формату .json, приклад
|
|
10
|
-
|
|
11
|
-
```json
|
|
12
|
-
[
|
|
13
|
-
{
|
|
14
|
-
"id": "1",
|
|
15
|
-
"text": "Комунальна",
|
|
16
|
-
"color": "red"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"id": "2",
|
|
20
|
-
"text": "Державна",
|
|
21
|
-
"data": "Державна"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"id": "3",
|
|
25
|
-
"text": "Приватна",
|
|
26
|
-
"data": "Приватна"
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
```
|
|
1
|
+
---
|
|
2
|
+
title: Класифікатори
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Класифікатори
|
|
6
|
+
|
|
7
|
+
Всі класифікатори та селекти зберігаються у відповідному GIT проєкті в папці `server/templates/cls`.
|
|
8
|
+
|
|
9
|
+
Зберігаються значення у файлі формату .json, приклад
|
|
10
|
+
|
|
11
|
+
```json
|
|
12
|
+
[
|
|
13
|
+
{
|
|
14
|
+
"id": "1",
|
|
15
|
+
"text": "Комунальна",
|
|
16
|
+
"color": "red"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "2",
|
|
20
|
+
"text": "Державна",
|
|
21
|
+
"data": "Державна"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "3",
|
|
25
|
+
"text": "Приватна",
|
|
26
|
+
"data": "Приватна"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
```
|
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Фільтри
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Фільтри
|
|
6
|
-
|
|
7
|
-
[Vue V3-Filter](https://apidocs.softpro.ua/v3-filter/)
|
|
8
|
-
|
|
9
|
-
## Налаштування
|
|
10
|
-
|
|
11
|
-
Фільтри налаштовуються в табличці `server/templates/table`. [Структура таблиці](./table.md)
|
|
12
|
-
|
|
13
|
-
Нижче наведено приклад налаштування фільтрів.
|
|
14
|
-
|
|
15
|
-
```json
|
|
16
|
-
"filterList": [
|
|
17
|
-
{
|
|
18
|
-
"ua": "Область", // Назва фільтра яка буде відображатися
|
|
19
|
-
"name": "region", // Назва колонки в БД по якій буде проводитися фільтрація
|
|
20
|
-
"data": "region_id", // Назва Класіфікатора або Селектора(якщо потрібно)
|
|
21
|
-
"format": "Autocomplete", // Формат фільтра
|
|
22
|
-
"order": "count" // Порядок
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
|
|
26
|
-
"filterInline": [ // Фільтри таблиці
|
|
27
|
-
{
|
|
28
|
-
"ua": "Назва", // Підпис фільтру
|
|
29
|
-
"name": "service_name", // Колонка таблиці
|
|
30
|
-
"type": "Check" // Тип фільтру
|
|
31
|
-
}
|
|
32
|
-
],
|
|
33
|
-
|
|
34
|
-
"filterState": [ // Фільтри статусу
|
|
35
|
-
{
|
|
36
|
-
"sql": "status=1", // sql
|
|
37
|
-
"name": "archive", // назва ключ або номер 1
|
|
38
|
-
"ua": "Підпис", // підпис
|
|
39
|
-
}
|
|
40
|
-
],
|
|
41
|
-
|
|
42
|
-
"filterCustom": [ // Фільтри користувача
|
|
43
|
-
{
|
|
44
|
-
"sql": "status=1", // Підпис фільтру
|
|
45
|
-
"name": "archive", // ключ або номер 1
|
|
46
|
-
"ua": "Підпис", // підпис
|
|
47
|
-
}
|
|
48
|
-
],
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
::: details Типи фільтрів
|
|
52
|
-
|
|
53
|
-
В інтерфейсі використовуються такі типи фільтри:
|
|
54
|
-
|
|
55
|
-
- `Text` - Просто ввід тексту.
|
|
56
|
-
- `Autocomplete` - Вибір декількох варіантів. При 8 і більше варіантах стає доступним рядок пошуку за значеннями.
|
|
57
|
-
- `Check` - Вибір значень без випадаючого списку. Зазвичай використовується для невеликої кількості значень (до 7).
|
|
58
|
-
- `Date` - Вибір проміжку дат. Є зручна панель для вибору екстра дат.
|
|
59
|
-
-`Radio` - Вибір зі списку лише одного значення. Зазвичай використовується для невеликої кількості значень (до 7).
|
|
60
|
-
- `Range` - Використовується для вказання проміжку ціни або будь-якого іншого числового значення. Працює як для цілих, так і для десяткових чисел.
|
|
61
|
-
- `Switcher` - Вибір значення між true/false. Відповідно, діє лише для колонок boolean
|
|
62
|
-
- `Tags` - Вибір значення у форматі кнопок. Зручно для поля тегів. Підтримують іконки та кольори з класифікатора.
|
|
63
|
-
- `Tree` - Деревоподібне відображення значень.
|
|
64
|
-
:::
|
|
65
|
-
|
|
66
|
-
## Використання API
|
|
67
|
-
|
|
68
|
-
Отримання [/api/filters/:table](../api/fastify-table/table/filter.md)
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
/api/filters/:table
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
Застосування [`/api/data/:table`](../api/fastify-table/table/data.md)
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
/api/data/:table?search=text&filter=inline,filter&state=1&custom=1
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
| Query Параметр | Опис |
|
|
81
|
-
| ------------------------ | --------------- |
|
|
82
|
-
| search | по замовчюванню |
|
|
83
|
-
| filter | inline + filter |
|
|
84
|
-
| state | tab таблички |
|
|
85
|
-
| custom | випадалка |
|
|
86
|
-
|
|
87
|
-
## Preview
|
|
88
|
-
|
|
89
|
-
<https://preline.co/pro/examples/tables-orders.html>
|
|
90
|
-
|
|
91
|
-

|
|
1
|
+
---
|
|
2
|
+
title: Фільтри
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Фільтри
|
|
6
|
+
|
|
7
|
+
[Vue V3-Filter](https://apidocs.softpro.ua/v3-filter/)
|
|
8
|
+
|
|
9
|
+
## Налаштування
|
|
10
|
+
|
|
11
|
+
Фільтри налаштовуються в табличці `server/templates/table`. [Структура таблиці](./table.md)
|
|
12
|
+
|
|
13
|
+
Нижче наведено приклад налаштування фільтрів.
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
"filterList": [
|
|
17
|
+
{
|
|
18
|
+
"ua": "Область", // Назва фільтра яка буде відображатися
|
|
19
|
+
"name": "region", // Назва колонки в БД по якій буде проводитися фільтрація
|
|
20
|
+
"data": "region_id", // Назва Класіфікатора або Селектора(якщо потрібно)
|
|
21
|
+
"format": "Autocomplete", // Формат фільтра
|
|
22
|
+
"order": "count" // Порядок
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
|
|
26
|
+
"filterInline": [ // Фільтри таблиці
|
|
27
|
+
{
|
|
28
|
+
"ua": "Назва", // Підпис фільтру
|
|
29
|
+
"name": "service_name", // Колонка таблиці
|
|
30
|
+
"type": "Check" // Тип фільтру
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
|
|
34
|
+
"filterState": [ // Фільтри статусу
|
|
35
|
+
{
|
|
36
|
+
"sql": "status=1", // sql
|
|
37
|
+
"name": "archive", // назва ключ або номер 1
|
|
38
|
+
"ua": "Підпис", // підпис
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
|
|
42
|
+
"filterCustom": [ // Фільтри користувача
|
|
43
|
+
{
|
|
44
|
+
"sql": "status=1", // Підпис фільтру
|
|
45
|
+
"name": "archive", // ключ або номер 1
|
|
46
|
+
"ua": "Підпис", // підпис
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
::: details Типи фільтрів
|
|
52
|
+
|
|
53
|
+
В інтерфейсі використовуються такі типи фільтри:
|
|
54
|
+
|
|
55
|
+
- `Text` - Просто ввід тексту.
|
|
56
|
+
- `Autocomplete` - Вибір декількох варіантів. При 8 і більше варіантах стає доступним рядок пошуку за значеннями.
|
|
57
|
+
- `Check` - Вибір значень без випадаючого списку. Зазвичай використовується для невеликої кількості значень (до 7).
|
|
58
|
+
- `Date` - Вибір проміжку дат. Є зручна панель для вибору екстра дат.
|
|
59
|
+
-`Radio` - Вибір зі списку лише одного значення. Зазвичай використовується для невеликої кількості значень (до 7).
|
|
60
|
+
- `Range` - Використовується для вказання проміжку ціни або будь-якого іншого числового значення. Працює як для цілих, так і для десяткових чисел.
|
|
61
|
+
- `Switcher` - Вибір значення між true/false. Відповідно, діє лише для колонок boolean
|
|
62
|
+
- `Tags` - Вибір значення у форматі кнопок. Зручно для поля тегів. Підтримують іконки та кольори з класифікатора.
|
|
63
|
+
- `Tree` - Деревоподібне відображення значень.
|
|
64
|
+
:::
|
|
65
|
+
|
|
66
|
+
## Використання API
|
|
67
|
+
|
|
68
|
+
Отримання [/api/filters/:table](../api/fastify-table/table/filter.md)
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
/api/filters/:table
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Застосування [`/api/data/:table`](../api/fastify-table/table/data.md)
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
/api/data/:table?search=text&filter=inline,filter&state=1&custom=1
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
| Query Параметр | Опис |
|
|
81
|
+
| ------------------------ | --------------- |
|
|
82
|
+
| search | по замовчюванню |
|
|
83
|
+
| filter | inline + filter |
|
|
84
|
+
| state | tab таблички |
|
|
85
|
+
| custom | випадалка |
|
|
86
|
+
|
|
87
|
+
## Preview
|
|
88
|
+
|
|
89
|
+
<https://preline.co/pro/examples/tables-orders.html>
|
|
90
|
+
|
|
91
|
+

|