@opengis/admin 0.2.102 → 0.2.103

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.
Files changed (122) hide show
  1. package/README.md +97 -97
  2. package/config.js +4 -4
  3. package/dist/{add-page-ng7vx4Nh.js → add-page-CMh32ZZh.js} +1 -1
  4. package/dist/{admin-interface-dNCM41Ed.js → admin-interface-B8AckDJy.js} +2 -2
  5. package/dist/{admin-view-8fTOFWCP.js → admin-view-CKx_gYed.js} +13 -13
  6. package/dist/admin.js +1 -1
  7. package/dist/admin.umd.cjs +51 -51
  8. package/dist/assets/logo.svg +41 -41
  9. package/dist/{card-view-LBKjcQpn.js → card-view-aRI-lTY-.js} +1 -1
  10. package/dist/{edit-page-Dl551-GP.js → edit-page-BdaoDbQ6.js} +1 -1
  11. package/dist/{import-file-DRlEx3gL.js → import-file-DZSTfkHs.js} +7085 -7099
  12. package/dist/style.css +1 -1
  13. package/module/settings/card/admin.accounts.table/index.yml +7 -7
  14. package/module/settings/card/admin.accounts.table/rules.hbs +18 -18
  15. package/module/settings/card/admin.accounts.table/users.hbs +13 -13
  16. package/module/settings/card/admin.routes.table/groups.hbs +11 -11
  17. package/module/settings/card/admin.routes.table/index.yml +11 -11
  18. package/module/settings/card/admin.routes.table/users.hbs +16 -16
  19. package/module/settings/card/admin.users.table/last_login.hbs +3 -1
  20. package/module/settings/card/admin.users.table/user_roles.hbs +22 -4
  21. package/module/settings/cls/core.actions.json +17 -17
  22. package/module/settings/cls/core.scope.json +13 -13
  23. package/module/settings/cls/properties.site_status.json +13 -13
  24. package/module/settings/cls/properties.widget_status.json +13 -13
  25. package/module/settings/cls/users.user_type.json +13 -13
  26. package/module/settings/cls/yes_no.json +11 -11
  27. package/module/settings/form/admin.accounts.form.json +13 -13
  28. package/module/settings/form/admin.properties.form.json +15 -15
  29. package/module/settings/form/admin.roles.form.json +21 -21
  30. package/module/settings/form/admin.user_properties.form.json +15 -15
  31. package/module/settings/form/admin.user_roles.form.json +1 -1
  32. package/module/settings/form/admin.user_roles_card.form.json +13 -13
  33. package/module/settings/interface/admin.properties.json +4 -4
  34. package/module/settings/interface/admin.roles.json +4 -4
  35. package/module/settings/interface/admin.routes.json +4 -4
  36. package/module/settings/interface/admin.users.json +4 -4
  37. package/module/settings/select/core.routes.sql +1 -1
  38. package/module/settings/select/core.user_mentioned.sql +1 -1
  39. package/module/settings/select/core.user_uid.sql +1 -1
  40. package/module/settings/table/admin.properties.table.json +39 -39
  41. package/module/settings/table/admin.user_properties.table.json +34 -34
  42. package/module/settings/table/admin.user_roles.table.json +72 -76
  43. package/package.json +3 -3
  44. package/plugin.js +29 -29
  45. package/server/helpers/core/badge.js +16 -16
  46. package/server/helpers/core/buttonHelper.js +21 -21
  47. package/server/helpers/core/select.js +48 -48
  48. package/server/helpers/core/token.js +18 -18
  49. package/server/helpers/index.js +31 -31
  50. package/server/helpers/list/buttonHelper.js +21 -21
  51. package/server/helpers/list/utils/button.js +5 -5
  52. package/server/helpers/temp/contentList.js +58 -58
  53. package/server/helpers/temp/ifCond.js +101 -101
  54. package/server/helpers/utils/button.js +5 -5
  55. package/server/plugins/access/index.mjs +6 -6
  56. package/server/plugins/adminHook.js +81 -81
  57. package/server/plugins/cron.js +10 -10
  58. package/server/plugins/docs.js +28 -28
  59. package/server/routes/access/controllers/access.group.js +29 -29
  60. package/server/routes/access/controllers/access.group.post.js +54 -54
  61. package/server/routes/access/index.mjs +11 -11
  62. package/server/routes/access/schema.mjs +67 -67
  63. package/server/routes/calendar/controllers/calendar.data.js +125 -125
  64. package/server/routes/calendar/index.mjs +7 -7
  65. package/server/routes/calendar/schema.js +21 -21
  66. package/server/routes/data/controllers/cardData.js +106 -106
  67. package/server/routes/data/controllers/cardTabData.js +49 -49
  68. package/server/routes/data/controllers/funcs/getFilterSQL/index.js +92 -92
  69. package/server/routes/data/controllers/funcs/getFilterSQL/util/formatValue.js +170 -170
  70. package/server/routes/data/controllers/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
  71. package/server/routes/data/controllers/funcs/getFilterSQL/util/getFilterQuery.js +64 -64
  72. package/server/routes/data/controllers/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
  73. package/server/routes/data/controllers/funcs/getFilterSQL/util/getTableSql.js +34 -34
  74. package/server/routes/data/controllers/tableData.js +29 -29
  75. package/server/routes/data/controllers/tableDataId.js +27 -27
  76. package/server/routes/data/controllers/tableFilter.js +96 -96
  77. package/server/routes/data/controllers/tokenInfo.js +9 -9
  78. package/server/routes/data/controllers/utils/assignTokens.js +30 -30
  79. package/server/routes/data/controllers/utils/conditions.js +20 -20
  80. package/server/routes/data/controllers/utils/getColumns.js +8 -8
  81. package/server/routes/data/index.mjs +20 -20
  82. package/server/routes/data/schema.js +54 -54
  83. package/server/routes/menu/controllers/getMenu.js +3 -3
  84. package/server/routes/menu/index.mjs +5 -5
  85. package/server/routes/notifications/controllers/readNotifications.js +27 -27
  86. package/server/routes/notifications/controllers/testEmail.js +35 -35
  87. package/server/routes/notifications/controllers/userNotifications.js +53 -53
  88. package/server/routes/notifications/funcs/addNotification.js +21 -21
  89. package/server/routes/notifications/funcs/sendNotification.js +92 -92
  90. package/server/routes/notifications/hook/onWidgetSet.js +56 -56
  91. package/server/routes/notifications/index.mjs +26 -26
  92. package/server/routes/notifications/schema.js +16 -16
  93. package/server/routes/print/controllers/cardPrint.js +134 -134
  94. package/server/routes/properties/funcs/getSettings.js +56 -56
  95. package/server/routes/properties/schema.js +10 -10
  96. package/server/routes/root.mjs +3 -3
  97. package/server/routes/templates/controllers/getTemplate.js +49 -49
  98. package/server/routes/templates/index.mjs +16 -16
  99. package/server/routes/templates/schema.js +8 -8
  100. package/server/routes/user/controllers/user.cls.id.js +14 -14
  101. package/server/routes/user/controllers/user.cls.js +71 -71
  102. package/server/routes/user/controllers/user.info.js +17 -17
  103. package/server/routes/user/schema.js +14 -14
  104. package/server/routes/widget/controllers/widget.del.js +47 -47
  105. package/server/routes/widget/controllers/widget.set.js +84 -84
  106. package/server/routes/widget/hook/onWidgetSet.js +12 -12
  107. package/server/routes/widget/index.mjs +16 -16
  108. package/server/routes/widget/schema.js +12 -12
  109. package/server/templates/cls/itree.recrzone_category.json +73 -73
  110. package/server/templates/cls/test.json +9 -9
  111. package/server/templates/form/admin.user_cls.data.form.json +49 -49
  112. package/server/templates/form/admin.user_group_rel.form.json +21 -21
  113. package/server/templates/form/form-user-pass.json +10 -10
  114. package/server/templates/form/form-user_group.json +39 -39
  115. package/server/templates/form/form-users.json +156 -156
  116. package/server/templates/form/user_group_access.form.json +22 -22
  117. package/server/templates/select/account_id.json +2 -2
  118. package/server/templates/setting/test.json +5 -5
  119. package/server/templates/table/gis.dataset.table.json +43 -43
  120. package/server/templates/table/management.user_group.table.json +112 -112
  121. package/server/templates/table/management.users.table.json +126 -126
  122. package/utils.js +29 -29
@@ -1,40 +1,40 @@
1
- {
2
- "ua": "Налаштування",
3
- "key": "property_id",
4
- "form": "admin.properties.form",
5
- "table": "admin.properties",
6
- "order": "cdate desc",
7
- "access": "admin",
8
- "actions": [
9
- "add",
10
- "edit",
11
- "del"
12
- ],
13
- "meta": {
14
- "search": "property_key,property_text"
15
- },
16
- "columns": [
17
- {
18
- "name": "property_key",
19
- "title": "Ключ",
20
- "format": "text"
21
- },
22
- {
23
- "name": "property_text",
24
- "title": "Значення",
25
- "format": "text"
26
- }
27
- ],
28
- "filters": [
29
- {
30
- "ua": "Ключ",
31
- "name": "property_key",
32
- "type": "text"
33
- },
34
- {
35
- "ua": "Значення",
36
- "name": "property_text",
37
- "type": "text"
38
- }
39
- ]
1
+ {
2
+ "ua": "Налаштування",
3
+ "key": "property_id",
4
+ "form": "admin.properties.form",
5
+ "table": "admin.properties",
6
+ "order": "cdate desc",
7
+ "access": "admin",
8
+ "actions": [
9
+ "add",
10
+ "edit",
11
+ "del"
12
+ ],
13
+ "meta": {
14
+ "search": "property_key,property_text"
15
+ },
16
+ "columns": [
17
+ {
18
+ "name": "property_key",
19
+ "title": "Ключ",
20
+ "format": "text"
21
+ },
22
+ {
23
+ "name": "property_text",
24
+ "title": "Значення",
25
+ "format": "text"
26
+ }
27
+ ],
28
+ "filters": [
29
+ {
30
+ "ua": "Ключ",
31
+ "name": "property_key",
32
+ "type": "text"
33
+ },
34
+ {
35
+ "ua": "Значення",
36
+ "name": "property_text",
37
+ "type": "text"
38
+ }
39
+ ]
40
40
  }
@@ -1,35 +1,35 @@
1
- {
2
- "ua": "Налаштування користувача",
3
- "key": "property_id",
4
- "form": "admin.user_properties.form",
5
- "table": "admin.user_properties",
6
- "order": "cdate desc",
7
- "access": "admin",
8
- "actions": [
9
- "add",
10
- "edit",
11
- "del"
12
- ],
13
- "meta": {
14
- "search": "property_key"
15
- },
16
- "columns": [
17
- {
18
- "name": "property_key",
19
- "title": "Ключ",
20
- "format": "text"
21
- },
22
- {
23
- "name": "property_json",
24
- "title": "Значення",
25
- "format": "text"
26
- }
27
- ],
28
- "filters": [
29
- {
30
- "ua": "Ключ",
31
- "name": "property_key",
32
- "type": "text"
33
- }
34
- ]
1
+ {
2
+ "ua": "Налаштування користувача",
3
+ "key": "property_id",
4
+ "form": "admin.user_properties.form",
5
+ "table": "admin.user_properties",
6
+ "order": "cdate desc",
7
+ "access": "admin",
8
+ "actions": [
9
+ "add",
10
+ "edit",
11
+ "del"
12
+ ],
13
+ "meta": {
14
+ "search": "property_key"
15
+ },
16
+ "columns": [
17
+ {
18
+ "name": "property_key",
19
+ "title": "Ключ",
20
+ "format": "text"
21
+ },
22
+ {
23
+ "name": "property_json",
24
+ "title": "Значення",
25
+ "format": "text"
26
+ }
27
+ ],
28
+ "filters": [
29
+ {
30
+ "ua": "Ключ",
31
+ "name": "property_key",
32
+ "type": "text"
33
+ }
34
+ ]
35
35
  }
@@ -1,78 +1,74 @@
1
1
  {
2
- "columns": [
3
- {
4
- "name": "role_id",
5
- "data": "core.roles",
6
- "title": "Група"
7
- },
8
- {
9
- "name": "user_uid",
10
- "data": "core.user_uid",
11
- "title": "Користувач"
12
- },
13
- {
14
- "name": "expiration",
15
- "title": "Закінчення терміну дії доступу до групи",
16
- "format": "date"
17
- },
18
- {
19
- "name": "actions",
20
- "title": "Доступ",
21
- "format": "text"
22
- },
23
- {
24
- "name": "access_granted",
25
- "data": "core.user_uid",
26
- "title": "Хто надав доступ"
27
- },
28
- {
29
- "name": "access_granted_time",
30
- "format": "date",
31
- "title": "Дата надання доступу"
32
- }
33
- ],
34
- "actions": [
35
- "add",
36
- "edit",
37
- "del"
38
- ],
39
- "access": "admin",
40
- "ua": "Зв'язок між користувачами та групами",
41
- "form": "admin.user_roles.form",
42
- "table": "admin.user_roles",
43
- "order": "cdate desc",
44
- "meta": {
45
- "title": "ugr_id",
46
- "search": "user_uid,role_id"
2
+ "access": "admin",
3
+ "ua": "Зв'язок між користувачами та групами",
4
+ "form": "admin.user_roles.form",
5
+ "table": "admin.user_roles",
6
+ "order": "cdate desc",
7
+ "actions": ["add", "edit", "del"],
8
+ "meta": {
9
+ "title": "ugr_id",
10
+ "search": "user_uid,role_id"
11
+ },
12
+ "columns": [
13
+ {
14
+ "name": "role_id",
15
+ "data": "core.roles",
16
+ "title": "Група"
47
17
  },
48
- "filters": [
49
- {
50
- "id": "role_id",
51
- "label": "Група",
52
- "data": "core.roles",
53
- "type": "Select"
54
- },
55
- {
56
- "id": "user_uid",
57
- "label": "Користувач",
58
- "data": "core.user_uid",
59
- "type": "Select"
60
- },
61
- {
62
- "id": "expiration",
63
- "label": "Закінчення терміну дії доступу до групи",
64
- "type": "Date"
65
- },
66
- {
67
- "id": "access_granted",
68
- "label": "Хто надав доступ",
69
- "data": "core.user_uid",
70
- "type": "Select"
71
- },
72
- {
73
- "id": "access_granted_time",
74
- "type": "Date",
75
- "label": "Дата надання доступу"
76
- }
77
- ]
78
- }
18
+ {
19
+ "name": "user_uid",
20
+ "data": "core.user_uid",
21
+ "title": "Користувач"
22
+ },
23
+ {
24
+ "name": "expiration",
25
+ "title": "Закінчення терміну дії доступу до групи",
26
+ "format": "date"
27
+ },
28
+ {
29
+ "name": "actions",
30
+ "title": "Доступ",
31
+ "format": "text"
32
+ },
33
+ {
34
+ "name": "access_granted",
35
+ "data": "core.user_uid",
36
+ "title": "Хто надав доступ"
37
+ },
38
+ {
39
+ "name": "access_granted_time",
40
+ "format": "date",
41
+ "title": "Дата надання доступу"
42
+ }
43
+ ],
44
+ "filters": [
45
+ {
46
+ "id": "role_id",
47
+ "label": "Група",
48
+ "data": "core.roles",
49
+ "type": "Select"
50
+ },
51
+ {
52
+ "id": "user_uid",
53
+ "label": "Користувач",
54
+ "data": "core.user_uid",
55
+ "type": "Select"
56
+ },
57
+ {
58
+ "id": "expiration",
59
+ "label": "Закінчення терміну дії доступу до групи",
60
+ "type": "Date"
61
+ },
62
+ {
63
+ "id": "access_granted",
64
+ "label": "Хто надав доступ",
65
+ "data": "core.user_uid",
66
+ "type": "Select"
67
+ },
68
+ {
69
+ "id": "access_granted_time",
70
+ "type": "Date",
71
+ "label": "Дата надання доступу"
72
+ }
73
+ ]
74
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengis/admin",
3
- "version": "0.2.102",
3
+ "version": "0.2.103",
4
4
  "description": "This project Softpro Admin",
5
5
  "main": "dist/admin.js",
6
6
  "type": "module",
@@ -48,7 +48,7 @@
48
48
  "@fullcalendar/vue3": "^6.1.15",
49
49
  "@opengis/fastify-auth": "^1.0.66",
50
50
  "@opengis/fastify-file": "^1.0.40",
51
- "@opengis/fastify-table": "^1.2.1",
51
+ "@opengis/fastify-table": "^1.2.3",
52
52
  "@opengis/v3-core": "^0.3.33",
53
53
  "@opengis/v3-filter": "^0.0.62",
54
54
  "@tabler/icons-vue": "^3.28.1",
@@ -96,4 +96,4 @@
96
96
  "vitepress-plugin-tabs": "^0.5.0",
97
97
  "vitepress-sidebar": "^1.22.0"
98
98
  }
99
- }
99
+ }
package/plugin.js CHANGED
@@ -1,30 +1,30 @@
1
- import fp from 'fastify-plugin';
2
-
3
- import config from './config.js';
4
-
5
- config.prefix = config.prefix || '/api';
6
-
7
- async function plugin(fastify, opts = config) {
8
- // const prefix = config.prefix || '/api';
9
-
10
- fastify.register(import('./server/helpers/index.js'), opts);
11
- // fastify.register(import('@opengis/fastify-auth'), config);
12
-
13
- fastify.register(import('./server/plugins/cron.js'), opts); // cron / scheduler
14
- fastify.register(import('./server/plugins/hook.js'), opts); // data / template hooks
15
- fastify.register(import('./server/plugins/access/index.mjs'), opts); // check access / analogue of policy
16
-
17
- // API
18
- fastify.register(import('./server/routes/properties/index.mjs'), opts);
19
- fastify.register(import('./server/routes/calendar/index.mjs'), opts);
20
- fastify.register(import('./server/routes/notifications/index.mjs'), opts);
21
- fastify.register(import('./server/routes/templates/index.mjs'), opts);
22
- fastify.register(import('./server/routes/menu/index.mjs'), opts);
23
- fastify.register(import('./server/routes/data/index.mjs'), opts);
24
- fastify.register(import('./server/routes/user/index.mjs'), opts);
25
- fastify.register(import('./server/routes/widget/index.mjs'), opts);
26
- fastify.register(import('./server/routes/access/index.mjs'), opts);
27
-
28
- fastify.register(import('./server/routes/print/index.mjs'), opts);
29
- }
1
+ import fp from 'fastify-plugin';
2
+
3
+ import config from './config.js';
4
+
5
+ config.prefix = config.prefix || '/api';
6
+
7
+ async function plugin(fastify, opts = config) {
8
+ // const prefix = config.prefix || '/api';
9
+
10
+ fastify.register(import('./server/helpers/index.js'), opts);
11
+ // fastify.register(import('@opengis/fastify-auth'), config);
12
+
13
+ fastify.register(import('./server/plugins/cron.js'), opts); // cron / scheduler
14
+ fastify.register(import('./server/plugins/hook.js'), opts); // data / template hooks
15
+ fastify.register(import('./server/plugins/access/index.mjs'), opts); // check access / analogue of policy
16
+
17
+ // API
18
+ fastify.register(import('./server/routes/properties/index.mjs'), opts);
19
+ fastify.register(import('./server/routes/calendar/index.mjs'), opts);
20
+ fastify.register(import('./server/routes/notifications/index.mjs'), opts);
21
+ fastify.register(import('./server/routes/templates/index.mjs'), opts);
22
+ fastify.register(import('./server/routes/menu/index.mjs'), opts);
23
+ fastify.register(import('./server/routes/data/index.mjs'), opts);
24
+ fastify.register(import('./server/routes/user/index.mjs'), opts);
25
+ fastify.register(import('./server/routes/widget/index.mjs'), opts);
26
+ fastify.register(import('./server/routes/access/index.mjs'), opts);
27
+
28
+ fastify.register(import('./server/routes/print/index.mjs'), opts);
29
+ }
30
30
  export default fp(plugin)
@@ -1,16 +1,16 @@
1
- import { getSelect } from "@opengis/fastify-table/utils.js";
2
-
3
-
4
-
5
- export default async function badge(id, options) {
6
- if (!id) return '-';
7
- const data = options.hash?.data;
8
- if (!data) return id;
9
- const classifier = await getSelect(data);
10
- if (!classifier?.arr) return id;
11
-
12
- const item = classifier?.arr.find(el => el.id == id);
13
- if (!item) return id;
14
- return `<span style='color:${item.color || '#14b8a6'};border-color:${item.color || '#14b8a6'};' class="inline-flex items-center gap-x-1.5 py-1.5 px-3 rounded-full text-xs font-medium border border-teal-500 text-teal-500">${item.text}</span>`
15
-
16
- }
1
+ import { getSelect } from "@opengis/fastify-table/utils.js";
2
+
3
+
4
+
5
+ export default async function badge(id, options) {
6
+ if (!id) return '-';
7
+ const data = options.hash?.data;
8
+ if (!data) return id;
9
+ const classifier = await getSelect(data);
10
+ if (!classifier?.arr) return id;
11
+
12
+ const item = classifier?.arr.find(el => el.id == id);
13
+ if (!item) return id;
14
+ return `<span style='color:${item.color || '#14b8a6'};border-color:${item.color || '#14b8a6'};' class="inline-flex items-center gap-x-1.5 py-1.5 px-3 rounded-full text-xs font-medium border border-teal-500 text-teal-500">${item.text}</span>`
15
+
16
+ }
@@ -1,21 +1,21 @@
1
- import buttonAdd from "../utils/buttonAdd.js";
2
- import buttonDel from "../utils/buttonDel.js";
3
- import buttonEdit from "../utils/buttonEdit.js";
4
- import button from "../utils/button.js";
5
- export default function buttonHelper(data, opt) {
6
- const { hash } = opt;
7
-
8
- // console.log(params)
9
-
10
- if (!hash.token) return "token empty";
11
- if (hash.add) {
12
- return buttonAdd(hash.token, hash.title);
13
- }
14
- if (hash.del) {
15
- return buttonDel(hash.token, hash.title);
16
- }
17
- if (hash.edit) {
18
- return buttonEdit(hash.token, hash.title);
19
- }
20
- return button(hash.token, hash.title);
21
- }
1
+ import buttonAdd from "../utils/buttonAdd.js";
2
+ import buttonDel from "../utils/buttonDel.js";
3
+ import buttonEdit from "../utils/buttonEdit.js";
4
+ import button from "../utils/button.js";
5
+ export default function buttonHelper(data, opt) {
6
+ const { hash } = opt;
7
+
8
+ // console.log(params)
9
+
10
+ if (!hash.token) return "token empty";
11
+ if (hash.add) {
12
+ return buttonAdd(hash.token, hash.title);
13
+ }
14
+ if (hash.del) {
15
+ return buttonDel(hash.token, hash.title);
16
+ }
17
+ if (hash.edit) {
18
+ return buttonEdit(hash.token, hash.title);
19
+ }
20
+ return button(hash.token, hash.title);
21
+ }
@@ -1,48 +1,48 @@
1
- import { getPG, getSelect } from "@opengis/fastify-table/utils.js";
2
- const pg = getPG();
3
-
4
- export default async function select(ids, options) {
5
- if (!ids || (Array.isArray(ids) && ids.length === 0) || ids === '') {
6
- return '';
7
- }
8
-
9
- const data = options.hash?.data;
10
- if (!data && data !== false && data !== 0) return '';
11
- try {
12
- const idsArray = Array.isArray(ids) ? ids : [ids];
13
-
14
- const classifier = await getSelect(data);
15
-
16
-
17
-
18
- if (!classifier) return `Не знайдено класифікатор ${data}`;
19
-
20
- const arr = classifier.arr || []
21
- if (classifier.sql && typeof classifier.sql === 'string') {
22
-
23
-
24
-
25
- const metaQuery = `SELECT * FROM (${classifier.sql})q LIMIT 0`;
26
- const meta = await pg.query(metaQuery);
27
- const idColumn = meta.fields[0].name;
28
- const textColumn = meta.fields[1].name;
29
-
30
- const sql = `SELECT "${idColumn}" AS id, "${textColumn}" AS text FROM (${classifier.sql}) q WHERE "${idColumn}" = ANY($1::text[])`;
31
- const values = [idsArray.map(id => String(id))];
32
-
33
- const { rows } = await pg.query(sql, values);
34
- Object.assign(arr, rows)
35
-
36
- }
37
- if (!arr.length) return idsArray
38
-
39
- const results = idsArray.map(id => {
40
- const result = arr.find(el => String(el.id) == String(id));
41
- return result ? result.text : '';
42
- });
43
-
44
- return results.filter(Boolean).join(', ');
45
- } catch (error) {
46
- return `Сталася помилка.<!-- err: ${error.toString()} -->`;
47
- }
48
- }
1
+ import { getPG, getSelect } from "@opengis/fastify-table/utils.js";
2
+ const pg = getPG();
3
+
4
+ export default async function select(ids, options) {
5
+ if (!ids || (Array.isArray(ids) && ids.length === 0) || ids === '') {
6
+ return '';
7
+ }
8
+
9
+ const data = options.hash?.data;
10
+ if (!data && data !== false && data !== 0) return '';
11
+ try {
12
+ const idsArray = Array.isArray(ids) ? ids : [ids];
13
+
14
+ const classifier = await getSelect(data);
15
+
16
+
17
+
18
+ if (!classifier) return `Не знайдено класифікатор ${data}`;
19
+
20
+ const arr = classifier.arr || []
21
+ if (classifier.sql && typeof classifier.sql === 'string') {
22
+
23
+
24
+
25
+ const metaQuery = `SELECT * FROM (${classifier.sql})q LIMIT 0`;
26
+ const meta = await pg.query(metaQuery);
27
+ const idColumn = meta.fields[0].name;
28
+ const textColumn = meta.fields[1].name;
29
+
30
+ const sql = `SELECT "${idColumn}" AS id, "${textColumn}" AS text FROM (${classifier.sql}) q WHERE "${idColumn}" = ANY($1::text[])`;
31
+ const values = [idsArray.map(id => String(id))];
32
+
33
+ const { rows } = await pg.query(sql, values);
34
+ Object.assign(arr, rows)
35
+
36
+ }
37
+ if (!arr.length) return idsArray
38
+
39
+ const results = idsArray.map(id => {
40
+ const result = arr.find(el => String(el.id) == String(id));
41
+ return result ? result.text : '';
42
+ });
43
+
44
+ return results.filter(Boolean).join(', ');
45
+ } catch (error) {
46
+ return `Сталася помилка.<!-- err: ${error.toString()} -->`;
47
+ }
48
+ }
@@ -1,19 +1,19 @@
1
- import { setToken } from "@opengis/fastify-table/utils.js";
2
-
3
- export default function token(params) {
4
-
5
- const { data, hash } = params;
6
-
7
- if (!data?.root?.user?.uid && !hash.uid) return '-';
8
- if (!hash || typeof hash !== 'object') return '-';
9
-
10
- // const id = hash?.edit ? hash?.id : data?.root?.id;
11
- // console.log(hash)
12
- const [token] = setToken({
13
- ids: [JSON.stringify(hash)],
14
-
15
- uid: data?.root?.user?.uid || hash.uid,
16
- array: 1,
17
- });
18
- return token;
1
+ import { setToken } from "@opengis/fastify-table/utils.js";
2
+
3
+ export default function token(params) {
4
+
5
+ const { data, hash } = params;
6
+
7
+ if (!data?.root?.user?.uid && !hash.uid) return '-';
8
+ if (!hash || typeof hash !== 'object') return '-';
9
+
10
+ // const id = hash?.edit ? hash?.id : data?.root?.id;
11
+ // console.log(hash)
12
+ const [token] = setToken({
13
+ ids: [JSON.stringify(hash)],
14
+
15
+ uid: data?.root?.user?.uid || hash.uid,
16
+ array: 1,
17
+ });
18
+ return token;
19
19
  }