@opengis/admin 0.1.96 → 0.1.97

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. package/README.md +29 -29
  2. package/config.js +4 -4
  3. package/dist/{IconChevronDown-uM7Af3-i.js → IconChevronDown-C6C2qgO7.js} +1 -1
  4. package/dist/{add-page-BgPkyqnr.js → add-page-Bz9AriTG.js} +14 -18
  5. package/dist/{admin-interface-x__pW8O9.js → admin-interface-QcGlLoY3.js} +5 -6
  6. package/dist/{admin-view-CApDgTHa.js → admin-view-AjnQFK-4.js} +148 -153
  7. package/dist/admin.js +1 -1
  8. package/dist/admin.umd.cjs +55 -55
  9. package/dist/assets/logo.svg +41 -41
  10. package/dist/{card-view-CUEAR-Gl.js → card-view-BFYrLzFg.js} +1 -1
  11. package/dist/{edit-page-Xu43ZBzj.js → edit-page-BlHpTvcw.js} +1 -1
  12. package/dist/{import-file-CLrvcYj9.js → import-file-2vpw3792.js} +5171 -5242
  13. package/dist/style.css +1 -1
  14. package/module/settings/card/admin.roles.table/access.hbs +27 -24
  15. package/module/settings/card/admin.roles.table/general_info.hbs +16 -16
  16. package/module/settings/card/admin.roles.table/index.yml +14 -18
  17. package/module/settings/card/admin.roles.table/users.hbs +27 -27
  18. package/module/settings/card/admin.routes.table/general_info.hbs +40 -40
  19. package/module/settings/card/admin.routes.table/index.yml +8 -8
  20. package/module/settings/card/admin.routes.table/users.hbs +33 -33
  21. package/module/settings/card/admin.users.table/general_info.hbs +25 -25
  22. package/module/settings/card/admin.users.table/index.yml +12 -12
  23. package/module/settings/card/admin.users.table/logs.hbs +30 -30
  24. package/module/settings/card/admin.users.table/user_roles.hbs +24 -24
  25. package/module/settings/cls/core.actions.json +17 -17
  26. package/module/settings/cls/core.scope.json +13 -13
  27. package/module/settings/cls/properties.site_status.json +13 -13
  28. package/module/settings/cls/properties.widget_status.json +13 -13
  29. package/module/settings/cls/users.user_type.json +13 -13
  30. package/module/settings/form/admin.access.form.json +36 -36
  31. package/module/settings/form/admin.custom_column.form.json +71 -71
  32. package/module/settings/form/admin.properties.form.json +15 -15
  33. package/module/settings/form/admin.roles.form.json +19 -21
  34. package/module/settings/form/admin.routes.form.json +25 -25
  35. package/module/settings/form/admin.user_properties.form.json +15 -15
  36. package/module/settings/form/admin.user_roles.form.json +21 -21
  37. package/module/settings/form/admin.users.form.json +153 -153
  38. package/module/settings/form/user.user_roles.form.json +13 -13
  39. package/module/settings/interface/admin.properties.json +4 -4
  40. package/module/settings/interface/admin.roles.json +4 -4
  41. package/module/settings/interface/admin.routes.json +4 -4
  42. package/module/settings/interface/admin.users.json +4 -4
  43. package/module/settings/menu.json +50 -60
  44. package/module/settings/select/core.roles.json +2 -2
  45. package/module/settings/select/core.routes.sql +1 -1
  46. package/module/settings/select/core.user_mentioned.sql +1 -1
  47. package/module/settings/select/core.user_uid.sql +1 -1
  48. package/module/settings/table/admin.access.table.json +83 -83
  49. package/module/settings/table/admin.custom_column.table.json +99 -99
  50. package/module/settings/table/admin.properties.table.json +39 -39
  51. package/module/settings/table/admin.roles.table.json +64 -64
  52. package/module/settings/table/admin.routes.table.json +68 -68
  53. package/module/settings/table/admin.user_properties.table.json +34 -34
  54. package/module/settings/table/admin.user_roles.table.json +72 -72
  55. package/module/settings/table/admin.users.table.json +121 -121
  56. package/package.json +82 -82
  57. package/plugin.js +29 -29
  58. package/server/helpers/controllers/badge.js +12 -0
  59. package/server/helpers/controllers/hb.js +3 -0
  60. package/server/helpers/controllers/map.js +3 -0
  61. package/server/helpers/controllers/mls.js +3 -0
  62. package/server/helpers/{core → controllers}/token.js +16 -16
  63. package/server/helpers/controllers/vue.js +3 -0
  64. package/server/helpers/index.mjs +29 -0
  65. package/server/helpers/list/buttonHelper.js +10 -10
  66. package/server/helpers/list/descriptionList.js +34 -43
  67. package/server/helpers/list/tableList.js +65 -78
  68. package/server/helpers/list/utils/button.js +5 -5
  69. package/server/plugins/access/funcs/getAdminAccess.js +14 -12
  70. package/server/plugins/access/index.mjs +6 -6
  71. package/server/plugins/adminHook.js +81 -81
  72. package/server/plugins/cron.js +10 -10
  73. package/server/plugins/docs.js +28 -28
  74. package/server/plugins/hook.js +226 -226
  75. package/server/plugins/vite.js +71 -71
  76. package/server/routes/access/controllers/access.group.js +29 -29
  77. package/server/routes/access/controllers/access.group.post.js +43 -48
  78. package/server/routes/access/index.mjs +63 -8
  79. package/server/routes/calendar/controllers/calendar.data.js +87 -87
  80. package/server/routes/calendar/index.mjs +7 -7
  81. package/server/routes/calendar/schema.js +21 -21
  82. package/server/routes/data/controllers/cardData.js +89 -89
  83. package/server/routes/data/controllers/cardTabData.js +49 -49
  84. package/server/routes/data/controllers/funcs/getFilterSQL/index.js +92 -92
  85. package/server/routes/data/controllers/funcs/getFilterSQL/util/formatValue.js +170 -170
  86. package/server/routes/data/controllers/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
  87. package/server/routes/data/controllers/funcs/getFilterSQL/util/getFilterQuery.js +64 -64
  88. package/server/routes/data/controllers/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
  89. package/server/routes/data/controllers/funcs/getFilterSQL/util/getTableSql.js +34 -34
  90. package/server/routes/data/controllers/tableData.js +20 -20
  91. package/server/routes/data/controllers/tableDataId.js +27 -27
  92. package/server/routes/data/controllers/tableFilter.js +67 -67
  93. package/server/routes/data/controllers/tokenInfo.js +9 -9
  94. package/server/routes/data/controllers/utils/assignTokens.js +30 -30
  95. package/server/routes/data/controllers/utils/conditions.js +20 -20
  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 +92 -92
  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
  147. package/server/helpers/core/badge.js +0 -16
  148. package/server/helpers/core/buttonHelper.js +0 -14
  149. package/server/helpers/core/select.js +0 -50
  150. package/server/helpers/index.js +0 -28
  151. package/server/helpers/temp/contentList.js +0 -58
  152. package/server/helpers/temp/ifCond.js +0 -101
  153. package/server/helpers/utils/button.js +0 -6
  154. package/server/helpers/utils/buttonDel.js +0 -6
  155. package/server/routes/access/schema.mjs +0 -58
@@ -1,113 +1,113 @@
1
- {
2
- "en": "Users group",
3
- "ru": "Групы пользователей",
4
- "ua": "Групи користувачів",
5
- "key": "user_group_id",
6
- "help": "https://docs.softpro.ua/admin/ManagementSystem/groups/",
7
- "model": "admin.user_group",
8
- "table": "admin.user_group",
9
- "title_column": "group_name",
10
- "search_column": "group_name,module",
11
- "action_deafult": [
12
- "edit",
13
- "del"
14
- ],
15
- "setting": [
16
- "export",
17
- "view",
18
- "import",
19
- "column_visible",
20
- "title",
21
- "add",
22
- "card"
23
- ],
24
- "sql": [
25
- {
26
- "sql": "SELECT array_agg(uid) as user_id,count(*) as user_count,json_agg(row_to_json(r)) user_list from\n(select user_name,uid::text,sur_name FROM admin.users where uid in (select user_uid from admin.user_group_rel where user_group_id=t.user_group_id))r",
27
- "name": "user_group_rel_sql"
28
- },
29
- {
30
- "sql": "select count(*) as permission_count,array_agg(doct_id) as permission_id from admin.user_group_access where user_group_id=t.user_group_id",
31
- "name": "user_group_access_sql"
32
- }
33
- ],
34
- "columns": [
35
- {
36
- "ru": "Название",
37
- "ua": "Назва",
38
- "name": "group_name",
39
- "format": "text"
40
- },
41
- {
42
- "ru": "Модуль",
43
- "ua": "Модуль",
44
- "name": "module",
45
- "format": "text"
46
- },
47
- {
48
- "ru": "Пользователи",
49
- "ua": "Користувачі",
50
- "html": "{{#each user_list}}\n <span class='label'>{{sur_name}} {{user_name}}</span>\n{{/each}}",
51
- "name": "user_id",
52
- "width": "200",
53
- "hidden": true,
54
- "option": "user_id",
55
- "format": "html"
56
- },
57
- {
58
- "ru": "Количество пользователей",
59
- "ua": "Кількість користувачів",
60
- "html": "<a title=\"{{#each user_list}}{{sur_name}} {{user_name}}, {{/each}}\"> {{user_count}}</a>",
61
- "name": "user_count",
62
- "format": "html"
63
- },
64
- {
65
- "en": "Interfaces",
66
- "ru": "Интерфейсы",
67
- "ua": "Інтерфейси",
68
- "html": "{{#each permission_id}}\n <span class='label label-default'> {{select this data='interface_list'}}</span>\n{{/each}}",
69
- "name": "permission_id",
70
- "hidden": true,
71
- "format": "html"
72
- },
73
- {
74
- "en": "rule",
75
- "ru": "Права",
76
- "ua": "Права",
77
- "html": "<a title=\"{{#each i_title}}{{this}}&#13;{{/each}}\"> {{permission_count}}</a>\n\n<!--<a class='link' modal-info='permission_list/user_group?id={{{user_group_id}}}'>{{{permission_count}}}</a>-->",
78
- "name": "permission_count",
79
- "format": "html"
80
- },
81
- {
82
- "ru": "Описание",
83
- "ua": "Опис",
84
- "name": "info",
85
- "format": "text"
86
- }
87
- ],
88
- "filterList": [
89
- {
90
- "en": "User",
91
- "ru": "Пользователь",
92
- "ua": "Користувач",
93
- "data": "user_id",
94
- "name": "user_id",
95
- "type": "Select"
96
- },
97
- {
98
- "en": "Interface",
99
- "ru": "Интерфейс",
100
- "ua": "Інтерфейс",
101
- "data": "core.interface_list",
102
- "name": "permission_id",
103
- "type": "Autocomplete"
104
- },
105
- {
106
- "en": "Module",
107
- "ru": "Модуль",
108
- "ua": "Модуль",
109
- "name": "module",
110
- "type": "Check"
111
- }
112
- ]
1
+ {
2
+ "en": "Users group",
3
+ "ru": "Групы пользователей",
4
+ "ua": "Групи користувачів",
5
+ "key": "user_group_id",
6
+ "help": "https://docs.softpro.ua/admin/ManagementSystem/groups/",
7
+ "model": "admin.user_group",
8
+ "table": "admin.user_group",
9
+ "title_column": "group_name",
10
+ "search_column": "group_name,module",
11
+ "action_deafult": [
12
+ "edit",
13
+ "del"
14
+ ],
15
+ "setting": [
16
+ "export",
17
+ "view",
18
+ "import",
19
+ "column_visible",
20
+ "title",
21
+ "add",
22
+ "card"
23
+ ],
24
+ "sql": [
25
+ {
26
+ "sql": "SELECT array_agg(uid) as user_id,count(*) as user_count,json_agg(row_to_json(r)) user_list from\n(select user_name,uid::text,sur_name FROM admin.users where uid in (select user_uid from admin.user_group_rel where user_group_id=t.user_group_id))r",
27
+ "name": "user_group_rel_sql"
28
+ },
29
+ {
30
+ "sql": "select count(*) as permission_count,array_agg(doct_id) as permission_id from admin.user_group_access where user_group_id=t.user_group_id",
31
+ "name": "user_group_access_sql"
32
+ }
33
+ ],
34
+ "columns": [
35
+ {
36
+ "ru": "Название",
37
+ "ua": "Назва",
38
+ "name": "group_name",
39
+ "format": "text"
40
+ },
41
+ {
42
+ "ru": "Модуль",
43
+ "ua": "Модуль",
44
+ "name": "module",
45
+ "format": "text"
46
+ },
47
+ {
48
+ "ru": "Пользователи",
49
+ "ua": "Користувачі",
50
+ "html": "{{#each user_list}}\n <span class='label'>{{sur_name}} {{user_name}}</span>\n{{/each}}",
51
+ "name": "user_id",
52
+ "width": "200",
53
+ "hidden": true,
54
+ "option": "user_id",
55
+ "format": "html"
56
+ },
57
+ {
58
+ "ru": "Количество пользователей",
59
+ "ua": "Кількість користувачів",
60
+ "html": "<a title=\"{{#each user_list}}{{sur_name}} {{user_name}}, {{/each}}\"> {{user_count}}</a>",
61
+ "name": "user_count",
62
+ "format": "html"
63
+ },
64
+ {
65
+ "en": "Interfaces",
66
+ "ru": "Интерфейсы",
67
+ "ua": "Інтерфейси",
68
+ "html": "{{#each permission_id}}\n <span class='label label-default'> {{select this data='interface_list'}}</span>\n{{/each}}",
69
+ "name": "permission_id",
70
+ "hidden": true,
71
+ "format": "html"
72
+ },
73
+ {
74
+ "en": "rule",
75
+ "ru": "Права",
76
+ "ua": "Права",
77
+ "html": "<a title=\"{{#each i_title}}{{this}}&#13;{{/each}}\"> {{permission_count}}</a>\n\n<!--<a class='link' modal-info='permission_list/user_group?id={{{user_group_id}}}'>{{{permission_count}}}</a>-->",
78
+ "name": "permission_count",
79
+ "format": "html"
80
+ },
81
+ {
82
+ "ru": "Описание",
83
+ "ua": "Опис",
84
+ "name": "info",
85
+ "format": "text"
86
+ }
87
+ ],
88
+ "filterList": [
89
+ {
90
+ "en": "User",
91
+ "ru": "Пользователь",
92
+ "ua": "Користувач",
93
+ "data": "user_id",
94
+ "name": "user_id",
95
+ "type": "Select"
96
+ },
97
+ {
98
+ "en": "Interface",
99
+ "ru": "Интерфейс",
100
+ "ua": "Інтерфейс",
101
+ "data": "core.interface_list",
102
+ "name": "permission_id",
103
+ "type": "Autocomplete"
104
+ },
105
+ {
106
+ "en": "Module",
107
+ "ru": "Модуль",
108
+ "ua": "Модуль",
109
+ "name": "module",
110
+ "type": "Check"
111
+ }
112
+ ]
113
113
  }
@@ -1,127 +1,127 @@
1
- {
2
- "key": "uid",
3
- "help": "https://docs.softpro.ua/admin/ManagementSystem/users_action/",
4
- "en": "Users",
5
- "ru": "Пользователи",
6
- "ua": "Користувачі",
7
- "model": "admin.users",
8
- "table": "admin.users",
9
- "add_form": "form-users",
10
- "title_column": "user_name",
11
- "action": "<a edit='admin.users/{{uid}}' modal=1 title='Пароль' user_role='true' form='form-user-pass'>\r\n <i class=\"fa fa-keyboard-o\"></i> Змінити пароль\r\n</a>",
12
- "html_panel_right": "<div class=\"btn-group\">\n <div class=\"input-group pull-left input-group-sm m-l-xs\" style=\"width:auto\"><a class=\"dropdown-toggle btn btn-default btn-sm\" data-toggle=\"dropdown\">Сесія <i class=\"fa fa-caret-down\"></i></a>\n <ul class=\"dropdown-menu\">\n <li><a href=\"/api-user/session/list\" target=\"_blank\">Кількість активних</a></li>\n <li><a href=\"/api-user/session/list/*\" target=\"_blank\">Перелік активних</a></li>\n <li><a href=\"/api-user/session/clear\" target=\"_blank\">Закрити всі сесії</a></li>\n <li><a>Закрити вказану сесію</a></li>\n </ul>\n </div>\n</div>",
13
- "search_column": "sur_name,user_name,uid,father_name,email,phone,login",
14
- "action_deafult": [
15
- "edit",
16
- "del"
17
- ],
18
- "sql": [
19
- {
20
- "sql": "select count(*) as group_count from admin.user_group_rel where user_uid=t.uid",
21
- "name": "group_count_sql"
22
- },
23
- {
24
- "sql": "select coalesce(user_name,'') ||' '|| coalesce(sur_name,'') ||' '|| coalesce(father_name,'') as full_name",
25
- "name": "full_name_sql"
26
- },
27
- {
28
- "sql": "select string_agg(group_name,',') as groups from admin.user_group where user_group_id in (select user_group_id from admin.user_group_rel where user_uid=t.uid)",
29
- "name": "group_list_sql"
30
- }
31
- ],
32
- "columns": [
33
- {
34
- "ru": "ФИО",
35
- "ua": "ПІБ",
36
- "html": "{{full_name}}<br>\n{{email}}<br>\n{{phone}}",
37
- "icon": "fa fa-user",
38
- "name": "full_name",
39
- "format": "text"
40
- },
41
- {
42
- "ua": "Email",
43
- "name": "email",
44
- "hidden": true,
45
- "format": "text"
46
- },
47
- {
48
- "ru": "Фото",
49
- "ua": "Фото",
50
- "html": "<img src='{{#if avatar}}{{avatar}}{{^}}https://cdn.softpro.ua/tpl/module/core/images/user_default.png{{/if}}' alt=\"image\" class=\"img img-md\" file-show=1 file-path=\"{{#if avatar}}{{avatar}}{{^}}https://cdn.softpro.ua/tpl/module/core/images/user_default.png{{/if}}\">",
51
- "icon": "fa fa-user",
52
- "hidden": true,
53
- "name": "avatar",
54
- "format": "html"
55
- },
56
- {
57
- "en": "Логін",
58
- "ru": "Логин",
59
- "ua": "Логін",
60
- "name": "login",
61
- "hidden": true,
62
- "format": "text"
63
- },
64
- {
65
- "name": "group_count",
66
- "ua": "Кількість груп",
67
- "format": "text"
68
- },
69
- {
70
- "name": "groups",
71
- "ua": "Групи",
72
- "format": "text"
73
- },
74
- {
75
- "name": "cdate",
76
- "ua": "Створено",
77
- "format": "date"
78
- },
79
- {
80
- "name": "editor_date",
81
- "ua": "Дата останньої активності",
82
- "format": "date"
83
- },
84
- {
85
- "name": "enabled",
86
- "ua": "Вимикач",
87
- "format": "yes/no"
88
- }
89
- ],
90
- "filter_list": [
91
- {
92
- "ua": "РНОКПП",
93
- "name": "user_rnokpp",
94
- "type": "Text"
95
- },
96
- {
97
- "ua": "Email",
98
- "name": "email",
99
- "type": "Text"
100
- },
101
- {
102
- "en": "Group",
103
- "ru": "Группа",
104
- "ua": "Група",
105
- "name": "groups",
106
- "type": "Text"
107
- },
108
- {
109
- "en": "On/Off",
110
- "ru": "On/Off",
111
- "ua": "On/Off",
112
- "data": "enabled",
113
- "name": "enabled",
114
- "type": "Check"
115
- },
116
- {
117
- "ua": "Дата створення",
118
- "name": "cdate",
119
- "type": "Date"
120
- },
121
- {
122
- "name": "editor_date",
123
- "type": "Date",
124
- "ua": "Дата останньої активності"
125
- }
126
- ]
1
+ {
2
+ "key": "uid",
3
+ "help": "https://docs.softpro.ua/admin/ManagementSystem/users_action/",
4
+ "en": "Users",
5
+ "ru": "Пользователи",
6
+ "ua": "Користувачі",
7
+ "model": "admin.users",
8
+ "table": "admin.users",
9
+ "add_form": "form-users",
10
+ "title_column": "user_name",
11
+ "action": "<a edit='admin.users/{{uid}}' modal=1 title='Пароль' user_role='true' form='form-user-pass'>\r\n <i class=\"fa fa-keyboard-o\"></i> Змінити пароль\r\n</a>",
12
+ "html_panel_right": "<div class=\"btn-group\">\n <div class=\"input-group pull-left input-group-sm m-l-xs\" style=\"width:auto\"><a class=\"dropdown-toggle btn btn-default btn-sm\" data-toggle=\"dropdown\">Сесія <i class=\"fa fa-caret-down\"></i></a>\n <ul class=\"dropdown-menu\">\n <li><a href=\"/api-user/session/list\" target=\"_blank\">Кількість активних</a></li>\n <li><a href=\"/api-user/session/list/*\" target=\"_blank\">Перелік активних</a></li>\n <li><a href=\"/api-user/session/clear\" target=\"_blank\">Закрити всі сесії</a></li>\n <li><a>Закрити вказану сесію</a></li>\n </ul>\n </div>\n</div>",
13
+ "search_column": "sur_name,user_name,uid,father_name,email,phone,login",
14
+ "action_deafult": [
15
+ "edit",
16
+ "del"
17
+ ],
18
+ "sql": [
19
+ {
20
+ "sql": "select count(*) as group_count from admin.user_group_rel where user_uid=t.uid",
21
+ "name": "group_count_sql"
22
+ },
23
+ {
24
+ "sql": "select coalesce(user_name,'') ||' '|| coalesce(sur_name,'') ||' '|| coalesce(father_name,'') as full_name",
25
+ "name": "full_name_sql"
26
+ },
27
+ {
28
+ "sql": "select string_agg(group_name,',') as groups from admin.user_group where user_group_id in (select user_group_id from admin.user_group_rel where user_uid=t.uid)",
29
+ "name": "group_list_sql"
30
+ }
31
+ ],
32
+ "columns": [
33
+ {
34
+ "ru": "ФИО",
35
+ "ua": "ПІБ",
36
+ "html": "{{full_name}}<br>\n{{email}}<br>\n{{phone}}",
37
+ "icon": "fa fa-user",
38
+ "name": "full_name",
39
+ "format": "text"
40
+ },
41
+ {
42
+ "ua": "Email",
43
+ "name": "email",
44
+ "hidden": true,
45
+ "format": "text"
46
+ },
47
+ {
48
+ "ru": "Фото",
49
+ "ua": "Фото",
50
+ "html": "<img src='{{#if avatar}}{{avatar}}{{^}}https://cdn.softpro.ua/tpl/module/core/images/user_default.png{{/if}}' alt=\"image\" class=\"img img-md\" file-show=1 file-path=\"{{#if avatar}}{{avatar}}{{^}}https://cdn.softpro.ua/tpl/module/core/images/user_default.png{{/if}}\">",
51
+ "icon": "fa fa-user",
52
+ "hidden": true,
53
+ "name": "avatar",
54
+ "format": "html"
55
+ },
56
+ {
57
+ "en": "Логін",
58
+ "ru": "Логин",
59
+ "ua": "Логін",
60
+ "name": "login",
61
+ "hidden": true,
62
+ "format": "text"
63
+ },
64
+ {
65
+ "name": "group_count",
66
+ "ua": "Кількість груп",
67
+ "format": "text"
68
+ },
69
+ {
70
+ "name": "groups",
71
+ "ua": "Групи",
72
+ "format": "text"
73
+ },
74
+ {
75
+ "name": "cdate",
76
+ "ua": "Створено",
77
+ "format": "date"
78
+ },
79
+ {
80
+ "name": "editor_date",
81
+ "ua": "Дата останньої активності",
82
+ "format": "date"
83
+ },
84
+ {
85
+ "name": "enabled",
86
+ "ua": "Вимикач",
87
+ "format": "yes/no"
88
+ }
89
+ ],
90
+ "filter_list": [
91
+ {
92
+ "ua": "РНОКПП",
93
+ "name": "user_rnokpp",
94
+ "type": "Text"
95
+ },
96
+ {
97
+ "ua": "Email",
98
+ "name": "email",
99
+ "type": "Text"
100
+ },
101
+ {
102
+ "en": "Group",
103
+ "ru": "Группа",
104
+ "ua": "Група",
105
+ "name": "groups",
106
+ "type": "Text"
107
+ },
108
+ {
109
+ "en": "On/Off",
110
+ "ru": "On/Off",
111
+ "ua": "On/Off",
112
+ "data": "enabled",
113
+ "name": "enabled",
114
+ "type": "Check"
115
+ },
116
+ {
117
+ "ua": "Дата створення",
118
+ "name": "cdate",
119
+ "type": "Date"
120
+ },
121
+ {
122
+ "name": "editor_date",
123
+ "type": "Date",
124
+ "ua": "Дата останньої активності"
125
+ }
126
+ ]
127
127
  }
package/utils.js CHANGED
@@ -1,29 +1,29 @@
1
- import yamlSafe from 'js-yaml';
2
-
3
- import getSettings from './server/routes/properties/funcs/getSettings.js';
4
- import setSettings from './server/routes/properties/funcs/setSettings.js';
5
-
6
- import addNotification from './server/routes/notifications/funcs/addNotification.js';
7
- import sendNotification from './server/routes/notifications/funcs/sendNotification.js';
8
-
9
- import getAdminAccess from './server/plugins/access/funcs/getAdminAccess.js';
10
-
11
- function loadSafe (yml) {
12
- try {
13
- return yamlSafe.load(yml);
14
- } catch (err) {
15
- return { error: err.toString() };
16
- }
17
- };
18
-
19
- Object.assign(yamlSafe, { loadSafe });
20
-
21
- export default null;
22
- export {
23
- yamlSafe,
24
- getSettings,
25
- setSettings,
26
- addNotification,
27
- sendNotification,
28
- getAdminAccess,
29
- };
1
+ import yamlSafe from 'js-yaml';
2
+
3
+ import getSettings from './server/routes/properties/funcs/getSettings.js';
4
+ import setSettings from './server/routes/properties/funcs/setSettings.js';
5
+
6
+ import addNotification from './server/routes/notifications/funcs/addNotification.js';
7
+ import sendNotification from './server/routes/notifications/funcs/sendNotification.js';
8
+
9
+ import getAdminAccess from './server/plugins/access/funcs/getAdminAccess.js';
10
+
11
+ function loadSafe (yml) {
12
+ try {
13
+ return yamlSafe.load(yml);
14
+ } catch (err) {
15
+ return { error: err.toString() };
16
+ }
17
+ };
18
+
19
+ Object.assign(yamlSafe, { loadSafe });
20
+
21
+ export default null;
22
+ export {
23
+ yamlSafe,
24
+ getSettings,
25
+ setSettings,
26
+ addNotification,
27
+ sendNotification,
28
+ getAdminAccess,
29
+ };
@@ -1,16 +0,0 @@
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,14 +0,0 @@
1
-
2
- import button from '../utils/button.js';
3
- import buttonDel from '../utils/buttonDel.js';
4
- export default function buttonHelper(data, opt) {
5
- const { hash } = opt;
6
-
7
- // console.log(params)
8
-
9
- if (!hash.token) return 'token empty';
10
- if (hash.del) {
11
- return buttonDel(hash.token, hash.title)
12
- }
13
- return button(hash.token, hash.title);
14
- }
@@ -1,50 +0,0 @@
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
- if (classifier.sql && typeof classifier.sql === 'string') {
21
-
22
-
23
-
24
- const metaQuery = `SELECT * FROM (${classifier.sql})q LIMIT 0`;
25
- const meta = await pg.query(metaQuery);
26
- const idColumn = meta.fields[0].name;
27
- const textColumn = meta.fields[1].name;
28
-
29
- const sql = `SELECT "${idColumn}" AS id, "${textColumn}" AS text FROM (${classifier.sql}) q WHERE "${idColumn}" = ANY($1::text[])`;
30
- const values = [idsArray.map(id => String(id))];
31
-
32
- const { rows } = await pg.query(sql, values);
33
- classifier.arr = rows;
34
-
35
- }
36
-
37
- if (!Array.isArray(classifier?.arr) || !classifier.arr.length || !classifier.arr.every(item => typeof item === 'object' && item !== null)) {
38
- return ids;
39
- }
40
-
41
- const results = idsArray.map(id => {
42
- const result = classifier.arr.find(el => String(el.id) == String(id));
43
- return result ? result.text : '';
44
- });
45
-
46
- return results.filter(Boolean).join(', ');
47
- } catch (error) {
48
- return `Сталася помилка.<!-- err: ${error.toString()} -->`;
49
- }
50
- }
@@ -1,28 +0,0 @@
1
-
2
- import { handlebars, handlebarsSync } from "@opengis/fastify-table/utils.js";
3
-
4
- import token from "./core/token.js";
5
- import descriptionList from "./list/descriptionList.js";
6
- import tableList from "./list/tableList.js";
7
- import buttonHelper from "./core/buttonHelper.js";
8
- import select from "./core/select.js";
9
- import badge from "./core/badge.js";
10
-
11
-
12
- import ifCond from "./temp/ifCond.js";
13
- import contentList from "./temp/contentList.js";
14
-
15
-
16
-
17
- export default async function route() {
18
-
19
- handlebars.registerHelper('token', token);
20
- handlebars.registerHelper('descriptionList', descriptionList);
21
- handlebars.registerHelper('tableList', tableList);
22
- handlebars.registerHelper('button', buttonHelper);
23
- handlebars.registerHelper('select', select);
24
- handlebars.registerHelper('badge', badge);
25
- handlebars.registerHelper('contentList', contentList);
26
- handlebarsSync.registerHelper('ifCond', ifCond);
27
- handlebars.registerHelper('ifCond', ifCond);
28
- }