@opengis/admin 0.1.84 → 0.1.85

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 (146) hide show
  1. package/README.md +29 -29
  2. package/config.js +4 -4
  3. package/dist/{IconChevronDown-DoqykhvB.js → IconChevronDown-IrRpX-i0.js} +1 -1
  4. package/dist/{add-page-ChBpMfRU.js → add-page-DRXx4iOi.js} +1 -1
  5. package/dist/{admin-interface-SDtt7rqS.js → admin-interface-BY-D9Jvu.js} +4 -4
  6. package/dist/{admin-view-CKTriO6z.js → admin-view-BZ75rygK.js} +44 -44
  7. package/dist/admin.js +1 -1
  8. package/dist/admin.umd.cjs +7 -7
  9. package/dist/assets/logo.svg +41 -41
  10. package/dist/{card-page-BaSbgjMn.js → card-page-BAeSkHUO.js} +2 -2
  11. package/dist/{card-view-B8ohi0lw.js → card-view-p73B3Gbl.js} +1 -1
  12. package/dist/{edit-page-DLlbyyd_.js → edit-page-CZ8SDvjo.js} +1 -1
  13. package/dist/{import-file-CV5CU5lC.js → import-file-f46xrNIz.js} +22 -15
  14. package/dist/style.css +1 -1
  15. package/module/settings/card/admin.roles.table/access.hbs +27 -27
  16. package/module/settings/card/admin.roles.table/general_info.hbs +16 -16
  17. package/module/settings/card/admin.roles.table/index.yml +14 -14
  18. package/module/settings/card/admin.roles.table/users.hbs +27 -27
  19. package/module/settings/card/admin.routes.table/general_info.hbs +40 -40
  20. package/module/settings/card/admin.routes.table/index.yml +8 -8
  21. package/module/settings/card/admin.routes.table/users.hbs +33 -33
  22. package/module/settings/card/admin.users.table/general_info.hbs +25 -25
  23. package/module/settings/card/admin.users.table/index.yml +12 -12
  24. package/module/settings/card/admin.users.table/logs.hbs +30 -30
  25. package/module/settings/card/admin.users.table/user_roles.hbs +24 -24
  26. package/module/settings/cls/core.actions.json +17 -17
  27. package/module/settings/cls/core.scope.json +13 -13
  28. package/module/settings/cls/properties.site_status.json +13 -13
  29. package/module/settings/cls/properties.widget_status.json +13 -13
  30. package/module/settings/cls/users.user_type.json +13 -13
  31. package/module/settings/form/admin.access.form.json +36 -36
  32. package/module/settings/form/admin.custom_column.form.json +71 -71
  33. package/module/settings/form/admin.properties.form.json +15 -15
  34. package/module/settings/form/admin.roles.form.json +19 -19
  35. package/module/settings/form/admin.routes.form.json +25 -25
  36. package/module/settings/form/admin.user_properties.form.json +15 -15
  37. package/module/settings/form/admin.user_roles.form.json +21 -21
  38. package/module/settings/form/admin.users.form.json +153 -153
  39. package/module/settings/form/user.user_roles.form.json +13 -13
  40. package/module/settings/interface/admin.properties.json +4 -4
  41. package/module/settings/interface/admin.roles.json +4 -4
  42. package/module/settings/interface/admin.routes.json +4 -4
  43. package/module/settings/interface/admin.users.json +4 -4
  44. package/module/settings/menu.json +50 -50
  45. package/module/settings/select/core.roles.json +2 -2
  46. package/module/settings/select/core.routes.sql +1 -1
  47. package/module/settings/select/core.user_mentioned.sql +1 -1
  48. package/module/settings/select/core.user_uid.sql +1 -1
  49. package/module/settings/table/admin.access.table.json +83 -83
  50. package/module/settings/table/admin.custom_column.table.json +99 -99
  51. package/module/settings/table/admin.properties.table.json +39 -39
  52. package/module/settings/table/admin.roles.table.json +64 -64
  53. package/module/settings/table/admin.routes.table.json +68 -68
  54. package/module/settings/table/admin.user_properties.table.json +34 -34
  55. package/module/settings/table/admin.user_roles.table.json +72 -72
  56. package/module/settings/table/admin.users.table.json +121 -121
  57. package/package.json +82 -82
  58. package/plugin.js +29 -29
  59. package/server/helpers/controllers/badge.js +11 -11
  60. package/server/helpers/controllers/hb.js +2 -2
  61. package/server/helpers/controllers/map.js +2 -2
  62. package/server/helpers/controllers/mls.js +2 -2
  63. package/server/helpers/controllers/token.js +16 -16
  64. package/server/helpers/controllers/vue.js +2 -2
  65. package/server/helpers/index.mjs +29 -17
  66. package/server/helpers/list/buttonHelper.js +11 -0
  67. package/server/helpers/list/descriptionList.js +34 -0
  68. package/server/helpers/list/tableList.js +66 -0
  69. package/server/helpers/list/utils/button.js +6 -0
  70. package/server/plugins/access/funcs/getAdminAccess.js +14 -14
  71. package/server/plugins/access/index.mjs +6 -6
  72. package/server/plugins/adminHook.js +81 -93
  73. package/server/plugins/cron.js +10 -10
  74. package/server/plugins/docs.js +28 -28
  75. package/server/plugins/hook.js +223 -223
  76. package/server/plugins/vite.js +71 -71
  77. package/server/routes/access/controllers/access.group.js +29 -29
  78. package/server/routes/access/controllers/access.group.post.js +43 -43
  79. package/server/routes/access/index.mjs +63 -63
  80. package/server/routes/calendar/controllers/calendar.data.js +87 -87
  81. package/server/routes/calendar/index.mjs +7 -7
  82. package/server/routes/calendar/schema.js +21 -21
  83. package/server/routes/data/controllers/cardData.js +81 -81
  84. package/server/routes/data/controllers/cardTabData.js +49 -49
  85. package/server/routes/data/controllers/funcs/getFilterSQL/index.js +92 -92
  86. package/server/routes/data/controllers/funcs/getFilterSQL/util/formatValue.js +170 -170
  87. package/server/routes/data/controllers/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
  88. package/server/routes/data/controllers/funcs/getFilterSQL/util/getFilterQuery.js +64 -64
  89. package/server/routes/data/controllers/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
  90. package/server/routes/data/controllers/funcs/getFilterSQL/util/getTableSql.js +34 -34
  91. package/server/routes/data/controllers/tableData.js +20 -20
  92. package/server/routes/data/controllers/tableDataId.js +27 -27
  93. package/server/routes/data/controllers/tableFilter.js +63 -63
  94. package/server/routes/data/controllers/tokenInfo.js +9 -9
  95. package/server/routes/data/controllers/utils/assignTokens.js +30 -30
  96. package/server/routes/data/controllers/utils/getColumns.js +8 -8
  97. package/server/routes/data/index.mjs +17 -17
  98. package/server/routes/data/schema.js +54 -54
  99. package/server/routes/menu/controllers/getMenu.js +67 -67
  100. package/server/routes/menu/index.mjs +5 -5
  101. package/server/routes/notifications/controllers/readNotifications.js +27 -27
  102. package/server/routes/notifications/controllers/testEmail.js +35 -35
  103. package/server/routes/notifications/controllers/userNotifications.js +53 -53
  104. package/server/routes/notifications/funcs/addNotification.js +21 -21
  105. package/server/routes/notifications/funcs/sendNotification.js +105 -105
  106. package/server/routes/notifications/hook/onWidgetSet.js +57 -57
  107. package/server/routes/notifications/index.mjs +27 -27
  108. package/server/routes/notifications/schema.js +16 -16
  109. package/server/routes/properties/controllers/admin.properties.get.js +29 -29
  110. package/server/routes/properties/controllers/user.properties.get.js +30 -30
  111. package/server/routes/properties/controllers/user.properties.post.js +30 -30
  112. package/server/routes/properties/funcs/getSettings.js +56 -56
  113. package/server/routes/properties/funcs/setSettings.js +44 -44
  114. package/server/routes/properties/funcs/utils/dataInsert.js +26 -26
  115. package/server/routes/properties/index.mjs +14 -14
  116. package/server/routes/properties/schema.js +10 -10
  117. package/server/routes/root.mjs +3 -3
  118. package/server/routes/templates/controllers/getTemplate.js +26 -26
  119. package/server/routes/templates/index.mjs +16 -16
  120. package/server/routes/templates/schema.js +8 -8
  121. package/server/routes/user/controllers/user.cls.id.js +14 -14
  122. package/server/routes/user/controllers/user.cls.js +71 -71
  123. package/server/routes/user/controllers/user.cls.post.js +52 -52
  124. package/server/routes/user/controllers/user.info.js +17 -17
  125. package/server/routes/user/schema.js +14 -14
  126. package/server/routes/widget/controllers/utils/historyFormat.js +75 -75
  127. package/server/routes/widget/controllers/utils/obj2db.js +13 -13
  128. package/server/routes/widget/controllers/widget.del.js +41 -41
  129. package/server/routes/widget/controllers/widget.get.js +96 -96
  130. package/server/routes/widget/controllers/widget.set.js +76 -76
  131. package/server/routes/widget/index.mjs +11 -11
  132. package/server/routes/widget/schema.js +12 -12
  133. package/server/templates/cls/itree.recrzone_category.json +73 -73
  134. package/server/templates/cls/test.json +9 -9
  135. package/server/templates/form/admin.user_cls.data.form.json +49 -49
  136. package/server/templates/form/admin.user_group_rel.form.json +21 -21
  137. package/server/templates/form/cp_building.form.json +32 -32
  138. package/server/templates/form/form-user-pass.json +10 -10
  139. package/server/templates/form/form-user_group.json +39 -39
  140. package/server/templates/form/form-users.json +156 -156
  141. package/server/templates/form/user_group_access.form.json +22 -22
  142. package/server/templates/select/account_id.json +2 -2
  143. package/server/templates/table/gis.dataset.table.json +43 -43
  144. package/server/templates/table/management.user_group.table.json +112 -112
  145. package/server/templates/table/management.users.table.json +126 -126
  146. package/utils.js +29 -29
@@ -1,122 +1,122 @@
1
- {
2
- "key": "uid",
3
- "ua": "Користувачі",
4
- "table": "admin.users",
5
- "form": "admin.users.form",
6
- "order": "cdate desc",
7
- "access": "admin",
8
- "actions": [
9
- "add",
10
- "edit",
11
- "del"
12
- ],
13
- "meta": {
14
- "title": "user_name",
15
- "search": "sur_name,user_name,uid,father_name,email,phone,login"
16
- },
17
- "sql": [
18
- {
19
- "sql": "select count(*) as group_count from admin.user_roles where user_uid=t.uid and (case when expiration is not null then expiration > CURRENT_DATE else 1=1 end)",
20
- "name": "group_count_sql"
21
- },
22
- {
23
- "sql": "select concat(user_name, ' ', sur_name, ' ', father_name, ' ') as full_name",
24
- "name": "full_name_sql"
25
- },
26
- {
27
- "sql": "select string_agg(name,',') as groups from admin.roles where role_id in (select role_id from admin.user_roles where user_uid=t.uid)",
28
- "name": "group_list_sql"
29
- }
30
- ],
31
- "columns": [
32
- {
33
- "ua": "ПІБ",
34
- "name": "full_name",
35
- "format": "text"
36
- },
37
- {
38
- "ua": "Логін",
39
- "name": "login",
40
- "format": "text"
41
- },
42
- {
43
- "ua": "Email",
44
- "name": "email",
45
- "hidden": true,
46
- "format": "text"
47
- },
48
- {
49
- "ua": "РНОКПП",
50
- "name": "user_rnokpp",
51
- "hidden": true,
52
- "format": "text"
53
- },
54
- {
55
- "name": "group_count",
56
- "ua": "Кількість груп",
57
- "format": "text"
58
- },
59
- {
60
- "name": "groups",
61
- "ua": "Групи",
62
- "hidden": true,
63
- "format": "text"
64
- },
65
- {
66
- "name": "cdate",
67
- "ua": "Створено",
68
- "format": "date"
69
- },
70
- {
71
- "name": "editor_date",
72
- "ua": "Дата останньої активності",
73
- "format": "date"
74
- },
75
- {
76
- "name": "enabled",
77
- "ua": "Вимикач",
78
- "data": "yes_no",
79
- "format": "select"
80
- }
81
- ],
82
- "filter_list": [
83
- {
84
- "ua": "РНОКПП",
85
- "name": "user_rnokpp",
86
- "type": "Text"
87
- },
88
- {
89
- "ua": "Код ЄДРПОУ",
90
- "name": "organ_edrpou",
91
- "type": "Text"
92
- },
93
- {
94
- "ua": "Email",
95
- "name": "email",
96
- "type": "Text"
97
- },
98
- {
99
- "en": "Group",
100
- "ua": "Група",
101
- "name": "groups",
102
- "type": "Text"
103
- },
104
- {
105
- "en": "On/Off",
106
- "ua": "On/Off",
107
- "data": "enabled",
108
- "name": "enabled",
109
- "type": "Check"
110
- },
111
- {
112
- "ua": "Дата створення",
113
- "name": "cdate",
114
- "type": "Date"
115
- },
116
- {
117
- "name": "editor_date",
118
- "type": "Date",
119
- "ua": "Дата останньої активності"
120
- }
121
- ]
1
+ {
2
+ "key": "uid",
3
+ "ua": "Користувачі",
4
+ "table": "admin.users",
5
+ "form": "admin.users.form",
6
+ "order": "cdate desc",
7
+ "access": "admin",
8
+ "actions": [
9
+ "add",
10
+ "edit",
11
+ "del"
12
+ ],
13
+ "meta": {
14
+ "title": "user_name",
15
+ "search": "sur_name,user_name,uid,father_name,email,phone,login"
16
+ },
17
+ "sql": [
18
+ {
19
+ "sql": "select count(*) as group_count from admin.user_roles where user_uid=t.uid and (case when expiration is not null then expiration > CURRENT_DATE else 1=1 end)",
20
+ "name": "group_count_sql"
21
+ },
22
+ {
23
+ "sql": "select concat(user_name, ' ', sur_name, ' ', father_name, ' ') as full_name",
24
+ "name": "full_name_sql"
25
+ },
26
+ {
27
+ "sql": "select string_agg(name,',') as groups from admin.roles where role_id in (select role_id from admin.user_roles where user_uid=t.uid)",
28
+ "name": "group_list_sql"
29
+ }
30
+ ],
31
+ "columns": [
32
+ {
33
+ "ua": "ПІБ",
34
+ "name": "full_name",
35
+ "format": "text"
36
+ },
37
+ {
38
+ "ua": "Логін",
39
+ "name": "login",
40
+ "format": "text"
41
+ },
42
+ {
43
+ "ua": "Email",
44
+ "name": "email",
45
+ "hidden": true,
46
+ "format": "text"
47
+ },
48
+ {
49
+ "ua": "РНОКПП",
50
+ "name": "user_rnokpp",
51
+ "hidden": true,
52
+ "format": "text"
53
+ },
54
+ {
55
+ "name": "group_count",
56
+ "ua": "Кількість груп",
57
+ "format": "text"
58
+ },
59
+ {
60
+ "name": "groups",
61
+ "ua": "Групи",
62
+ "hidden": true,
63
+ "format": "text"
64
+ },
65
+ {
66
+ "name": "cdate",
67
+ "ua": "Створено",
68
+ "format": "date"
69
+ },
70
+ {
71
+ "name": "editor_date",
72
+ "ua": "Дата останньої активності",
73
+ "format": "date"
74
+ },
75
+ {
76
+ "name": "enabled",
77
+ "ua": "Вимикач",
78
+ "data": "yes_no",
79
+ "format": "select"
80
+ }
81
+ ],
82
+ "filter_list": [
83
+ {
84
+ "ua": "РНОКПП",
85
+ "name": "user_rnokpp",
86
+ "type": "Text"
87
+ },
88
+ {
89
+ "ua": "Код ЄДРПОУ",
90
+ "name": "organ_edrpou",
91
+ "type": "Text"
92
+ },
93
+ {
94
+ "ua": "Email",
95
+ "name": "email",
96
+ "type": "Text"
97
+ },
98
+ {
99
+ "en": "Group",
100
+ "ua": "Група",
101
+ "name": "groups",
102
+ "type": "Text"
103
+ },
104
+ {
105
+ "en": "On/Off",
106
+ "ua": "On/Off",
107
+ "data": "enabled",
108
+ "name": "enabled",
109
+ "type": "Check"
110
+ },
111
+ {
112
+ "ua": "Дата створення",
113
+ "name": "cdate",
114
+ "type": "Date"
115
+ },
116
+ {
117
+ "name": "editor_date",
118
+ "type": "Date",
119
+ "ua": "Дата останньої активності"
120
+ }
121
+ ]
122
122
  }
package/package.json CHANGED
@@ -1,82 +1,82 @@
1
- {
2
- "name": "@opengis/admin",
3
- "version": "0.1.84",
4
- "description": "This project Softpro Admin",
5
- "main": "dist/admin.js",
6
- "type": "module",
7
- "directories": {
8
- "test": "test"
9
- },
10
- "files": [
11
- "dist/*",
12
- "module/*",
13
- "server/*",
14
- "plugin.js",
15
- "utils.js",
16
- "config.js"
17
- ],
18
- "scripts": {
19
- "test": "node --test test/**/*.test.js",
20
- "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
21
- "build": "vite build",
22
- "build-app": "cross-env APP=true vite build",
23
- "admin": "cross-env NODE_ENV=admin npm run start",
24
- "prod": "cross-env NODE_ENV=production npm run start",
25
- "start": "node --watch-path=server server vite ",
26
- "docs:dev": "vitepress dev docs",
27
- "docs:build": "vitepress build docs",
28
- "docs:preview": "vitepress preview docs"
29
- },
30
- "keywords": [],
31
- "author": "Softpro",
32
- "license": "ISC",
33
- "dependencies": {
34
- "@fancyapps/ui": "^5.0.36",
35
- "@opengis/admin": "^0.1.69",
36
- "@opengis/fastify-auth": "^1.0.44",
37
- "@opengis/fastify-file": "^1.0.27",
38
- "@opengis/fastify-table": "^1.1.64",
39
- "@opengis/v3-core": "^0.2.36",
40
- "@opengis/v3-filter": "^0.0.39",
41
- "@tiptap/core": "^2.8.0",
42
- "@tiptap/extension-color": "^2.8.0",
43
- "@tiptap/extension-mention": "^2.8.0",
44
- "@tiptap/extension-placeholder": "^2.8.0",
45
- "@tiptap/extension-text": "^2.8.0",
46
- "@tiptap/extension-text-style": "^2.8.0",
47
- "@tiptap/extension-underline": "^2.8.0",
48
- "@tiptap/pm": "^2.8.0",
49
- "@tiptap/starter-kit": "^2.8.0",
50
- "@tiptap/suggestion": "^2.8.0",
51
- "@tiptap/vue-3": "^2.8.0",
52
- "@turf/turf": "^7.1.0",
53
- "@vitejs/plugin-vue": "^5.0.4",
54
- "close-with-grace": "^1.3.0",
55
- "cross-env": "^7.0.3",
56
- "fastify": "^4.26.1",
57
- "fastify-plugin": "^4.0.0",
58
- "maplibre-gl": "^4.7.0",
59
- "moment": "^2.30.1",
60
- "vite": "^5.1.4",
61
- "vue": "^3.4.21",
62
- "vue-router": "^4.3.0"
63
- },
64
- "devDependencies": {
65
- "@panzoom/panzoom": "^4.5.1",
66
- "@vue/eslint-config-typescript": "^12.0.0",
67
- "autoprefixer": "^10.4.20",
68
- "eslint": "^8.49.0",
69
- "eslint-config-airbnb": "^19.0.4",
70
- "eslint-plugin-import": "^2.25.3",
71
- "eslint-plugin-vue": "^9.17.0",
72
- "markdown-it-abbr": "^2.0.0",
73
- "mermaid": "^10.9.0",
74
- "postcss": "^8.4.47",
75
- "sass-embedded": "^1.79.1",
76
- "tailwindcss": "^3.4.13",
77
- "vitepress": "^1.1.3",
78
- "vitepress-plugin-mermaid": "^2.0.16",
79
- "vitepress-plugin-tabs": "^0.5.0",
80
- "vitepress-sidebar": "^1.22.0"
81
- }
82
- }
1
+ {
2
+ "name": "@opengis/admin",
3
+ "version": "0.1.85",
4
+ "description": "This project Softpro Admin",
5
+ "main": "dist/admin.js",
6
+ "type": "module",
7
+ "directories": {
8
+ "test": "test"
9
+ },
10
+ "files": [
11
+ "dist/*",
12
+ "module/*",
13
+ "server/*",
14
+ "plugin.js",
15
+ "utils.js",
16
+ "config.js"
17
+ ],
18
+ "scripts": {
19
+ "test": "node --test test/**/*.test.js",
20
+ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
21
+ "build": "vite build",
22
+ "build-app": "cross-env APP=true vite build",
23
+ "admin": "cross-env NODE_ENV=admin npm run start",
24
+ "prod": "cross-env NODE_ENV=production npm run start",
25
+ "start": "node --watch-path=server server vite ",
26
+ "docs:dev": "vitepress dev docs",
27
+ "docs:build": "vitepress build docs",
28
+ "docs:preview": "vitepress preview docs"
29
+ },
30
+ "keywords": [],
31
+ "author": "Softpro",
32
+ "license": "ISC",
33
+ "dependencies": {
34
+ "@fancyapps/ui": "^5.0.36",
35
+ "@opengis/admin": "^0.1.69",
36
+ "@opengis/fastify-auth": "^1.0.47",
37
+ "@opengis/fastify-file": "^1.0.27",
38
+ "@opengis/fastify-table": "^1.1.71",
39
+ "@opengis/v3-core": "^0.2.36",
40
+ "@opengis/v3-filter": "^0.0.39",
41
+ "@tiptap/core": "^2.8.0",
42
+ "@tiptap/extension-color": "^2.8.0",
43
+ "@tiptap/extension-mention": "^2.8.0",
44
+ "@tiptap/extension-placeholder": "^2.8.0",
45
+ "@tiptap/extension-text": "^2.8.0",
46
+ "@tiptap/extension-text-style": "^2.8.0",
47
+ "@tiptap/extension-underline": "^2.8.0",
48
+ "@tiptap/pm": "^2.8.0",
49
+ "@tiptap/starter-kit": "^2.8.0",
50
+ "@tiptap/suggestion": "^2.8.0",
51
+ "@tiptap/vue-3": "^2.8.0",
52
+ "@turf/turf": "^7.1.0",
53
+ "@vitejs/plugin-vue": "^5.0.4",
54
+ "close-with-grace": "^1.3.0",
55
+ "cross-env": "^7.0.3",
56
+ "fastify": "^4.26.1",
57
+ "fastify-plugin": "^4.0.0",
58
+ "maplibre-gl": "^4.7.0",
59
+ "moment": "^2.30.1",
60
+ "vite": "^5.1.4",
61
+ "vue": "^3.4.21",
62
+ "vue-router": "^4.3.0"
63
+ },
64
+ "devDependencies": {
65
+ "@panzoom/panzoom": "^4.5.1",
66
+ "@vue/eslint-config-typescript": "^12.0.0",
67
+ "autoprefixer": "^10.4.20",
68
+ "eslint": "^8.49.0",
69
+ "eslint-config-airbnb": "^19.0.4",
70
+ "eslint-plugin-import": "^2.25.3",
71
+ "eslint-plugin-vue": "^9.17.0",
72
+ "markdown-it-abbr": "^2.0.0",
73
+ "mermaid": "^10.9.0",
74
+ "postcss": "^8.4.47",
75
+ "sass-embedded": "^1.79.1",
76
+ "tailwindcss": "^3.4.13",
77
+ "vitepress": "^1.1.3",
78
+ "vitepress-plugin-mermaid": "^2.0.16",
79
+ "vitepress-plugin-tabs": "^0.5.0",
80
+ "vitepress-sidebar": "^1.22.0"
81
+ }
82
+ }
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.mjs'), 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
-
25
- fastify.register(import('./server/routes/user/index.mjs'), opts);
26
- fastify.register(import('./server/routes/widget/index.mjs'), opts);
27
-
28
- fastify.register(import('./server/routes/access/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.mjs'), 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
+
25
+ fastify.register(import('./server/routes/user/index.mjs'), opts);
26
+ fastify.register(import('./server/routes/widget/index.mjs'), opts);
27
+
28
+ fastify.register(import('./server/routes/access/index.mjs'), opts);
29
+ }
30
30
  export default fp(plugin)
@@ -1,12 +1,12 @@
1
- export default async function badge(data, options = {}) {
2
- if (!data) return '-';
3
- //const cls = await getSelect(options.data, { val: data, full: 1 });
4
-
5
- return data;
6
- /*const html = cls?.map((el) => {
7
- const color = bscolor[el.color] || el.color || '#aaa';
8
- return `<span class="el-tag el-tag--mini" style="color:${color || '#aaa'};border-color:${color || '#aaa'};background:unset;">
9
- ${funcs.locale(el.id, { lang: root.lang, prefix: opt.data, type: 'cls' }) || el.text}</span>`;
10
- }).join(', ');
11
- return html;*/
1
+ export default async function badge(data, options = {}) {
2
+ if (!data) return '-';
3
+ //const cls = await getSelect(options.data, { val: data, full: 1 });
4
+
5
+ return data;
6
+ /*const html = cls?.map((el) => {
7
+ const color = bscolor[el.color] || el.color || '#aaa';
8
+ return `<span class="el-tag el-tag--mini" style="color:${color || '#aaa'};border-color:${color || '#aaa'};background:unset;">
9
+ ${funcs.locale(el.id, { lang: root.lang, prefix: opt.data, type: 'cls' }) || el.text}</span>`;
10
+ }).join(', ');
11
+ return html;*/
12
12
  }
@@ -1,3 +1,3 @@
1
- export default async function _hb() {
2
- return '';
1
+ export default async function _hb() {
2
+ return '';
3
3
  }
@@ -1,3 +1,3 @@
1
- export default async function map() {
2
- return '';
1
+ export default async function map() {
2
+ return '';
3
3
  }
@@ -1,3 +1,3 @@
1
- export default async function _mls(data, options={}) {
2
- return data.hash?.ua || options?.hash?.ua || '';
1
+ export default async function _mls(data, options={}) {
2
+ return data.hash?.ua || options?.hash?.ua || '';
3
3
  }
@@ -1,17 +1,17 @@
1
- import { config, setToken } from "@opengis/fastify-table/utils.js";
2
-
3
- export default function token(params) {
4
- const { data, hash } = params;
5
- if (!data?.root?.user?.uid) return '';
6
- if (!hash || typeof hash !== 'object') return '-';
7
-
8
- // const id = hash?.edit ? hash?.id : data?.root?.id;
9
- // console.log(hash)
10
- const [token] = setToken({
11
- ids: [JSON.stringify(hash)],
12
-
13
- uid: data?.root?.user?.uid,
14
- array: 1,
15
- });
16
- return token;
1
+ import { config, setToken } from "@opengis/fastify-table/utils.js";
2
+
3
+ export default function token(params) {
4
+ const { data, hash } = params;
5
+ if (!data?.root?.user?.uid) return '';
6
+ if (!hash || typeof hash !== 'object') return '-';
7
+
8
+ // const id = hash?.edit ? hash?.id : data?.root?.id;
9
+ // console.log(hash)
10
+ const [token] = setToken({
11
+ ids: [JSON.stringify(hash)],
12
+
13
+ uid: data?.root?.user?.uid,
14
+ array: 1,
15
+ });
16
+ return token;
17
17
  }
@@ -1,3 +1,3 @@
1
- export default async function _vue() {
2
- return '';
1
+ export default async function _vue() {
2
+ return '';
3
3
  }
@@ -1,17 +1,29 @@
1
- import _hb from "./controllers/hb.js";
2
- import _vue from "./controllers/vue.js";
3
- import map from "./controllers/map.js";
4
- import _mls from "./controllers/mls.js";
5
- import badge from "./controllers/badge.js";
6
- import token from "./controllers/token.js";
7
-
8
- import { handlebars } from "@opengis/fastify-table/utils.js";
9
-
10
- export default async function route(fastify) {
11
- handlebars.registerHelper('_hb', _hb);
12
- handlebars.registerHelper('_vue', _vue);
13
- handlebars.registerHelper('map', map);
14
- handlebars.registerHelper('mls', _mls);
15
- handlebars.registerHelper('badge', badge);
16
- handlebars.registerHelper('token', token);
17
- }
1
+ import _hb from "./controllers/hb.js";
2
+ import _vue from "./controllers/vue.js";
3
+ import map from "./controllers/map.js";
4
+ import _mls from "./controllers/mls.js";
5
+ import badge from "./controllers/badge.js";
6
+ import token from "./controllers/token.js";
7
+
8
+ // list
9
+
10
+ import descriptionList from "./list/descriptionList.js";
11
+ import tableList from "./list/tableList.js";
12
+ import buttonHelper from "./list/buttonHelper.js";
13
+
14
+ import { handlebars } from "@opengis/fastify-table/utils.js";
15
+
16
+ export default async function route(fastify) {
17
+ handlebars.registerHelper('_hb', _hb);
18
+ handlebars.registerHelper('_vue', _vue);
19
+ handlebars.registerHelper('map', map);
20
+ handlebars.registerHelper('mls', _mls);
21
+ handlebars.registerHelper('badge', badge);
22
+ handlebars.registerHelper('token', token);
23
+
24
+
25
+ // list
26
+ handlebars.registerHelper('descriptionList', descriptionList);
27
+ handlebars.registerHelper('tableList', tableList);
28
+ handlebars.registerHelper('button', buttonHelper);
29
+ }
@@ -0,0 +1,11 @@
1
+
2
+ import button from './utils/button.js';
3
+ export default function buttonHelper(data, opt) {
4
+ const { hash } = opt;
5
+
6
+ // console.log(params)
7
+
8
+ if (!hash.token) return 'token empty';
9
+
10
+ return button(hash.token, hash.title);
11
+ }
@@ -0,0 +1,34 @@
1
+ import { handlebarsSync } from '@opengis/fastify-table/utils.js'
2
+
3
+ function format(d, key, data) {
4
+ if (!key?.includes) return '';
5
+ if (d === true) return 'так';
6
+ if (d === false) return 'ні'
7
+ if (key.includes('<')) {
8
+ return handlebarsSync.compile(key)(data);
9
+ }
10
+ if (!d) return '-';
11
+ return d;
12
+ }
13
+ export default function descriptionList(data, opt) {
14
+ const { hash } = opt;
15
+
16
+ // console.log(params)
17
+
18
+ if (!hash.columns) return 'columns empty'
19
+ const keys = hash.columns.replace(/\./g, ',').split(',').map(el => el.trim())
20
+ const result = [];
21
+
22
+ for (let i = 0; i < keys.length; i += 2) {
23
+ const name = keys[i];
24
+ const key = keys[i + 1];
25
+
26
+ result.push(`<tr class="bg-white even:bg-gray-50">
27
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase max-w-44">${name}</th>
28
+ <td class="px-6 py-2 text-sm text-gray-900 max-w-44 font-semibold">${format(data[key], key, data)}</td>
29
+ </tr>
30
+ `);
31
+
32
+ }
33
+ return '<table class="min-w-full divide-y divide-gray-200">' + result.join('') + '</table>';
34
+ }