@opengis/admin 0.3.22 → 0.3.24

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 (99) hide show
  1. package/dist/{add-page-DsqxZzEq.js → add-page-CY3jyjng.js} +29 -26
  2. package/dist/{admin-interface-C8SGlC1N.js → admin-interface-B09NhAi-.js} +259 -257
  3. package/dist/{admin-view-DtdqTUPa.js → admin-view-obFqHA0_.js} +29 -29
  4. package/dist/admin.js +1 -1
  5. package/dist/admin.umd.cjs +89 -89
  6. package/dist/{card-view-juhvChuX.js → card-view-CAnhvY0b.js} +3 -3
  7. package/dist/{edit-page-DB1hlRzp.js → edit-page-DOpbSZWg.js} +33 -31
  8. package/dist/{import-file-BSdaeh6s.js → import-file-DAyouRPm.js} +23212 -23090
  9. package/dist/{profile-page-B-RhB5JP.js → profile-page-Cm3oX_ZN.js} +2 -2
  10. package/dist/style.css +1 -1
  11. package/module/settings/card/admin.roles.table/access.hbs +11 -11
  12. package/module/settings/card/admin.roles.table/general_info.hbs +9 -9
  13. package/module/settings/card/admin.roles.table/index.yml +22 -22
  14. package/module/settings/card/admin.roles.table/users.hbs +12 -12
  15. package/module/settings/card/admin.routes.table/general_info.hbs +13 -13
  16. package/module/settings/card/admin.routes.table/index.yml +15 -15
  17. package/module/settings/card/admin.table_properties.table/custom_columns.hbs +22 -22
  18. package/module/settings/card/admin.table_properties.table/index.yml +12 -12
  19. package/module/settings/card/admin.table_properties.table/info.hbs +17 -17
  20. package/module/settings/card/admin.users.table/general_info.hbs +18 -18
  21. package/module/settings/card/admin.users.table/index.yml +20 -20
  22. package/module/settings/card/admin.users.table/last_login.hbs +17 -17
  23. package/module/settings/card/admin.users.table/logs.hbs +16 -16
  24. package/module/settings/card/admin.users.table/routes.hbs +13 -13
  25. package/module/settings/card/admin.users.table/user_roles.hbs +35 -35
  26. package/module/settings/cls/change_type.json +13 -13
  27. package/module/settings/cls/core.column_type.json +14 -14
  28. package/module/settings/form/admin.custom_column.form.json +55 -55
  29. package/module/settings/form/admin.routes.form.json +25 -25
  30. package/module/settings/form/admin.rules.form.json +30 -30
  31. package/module/settings/form/admin.table_properties.form.json +19 -19
  32. package/module/settings/form/admin.user_roles.form.json +24 -24
  33. package/module/settings/form/admin.users.form.json +177 -177
  34. package/module/settings/form/admin.users_edit.form.json +145 -145
  35. package/module/settings/form/context.account_grants.form.json +24 -24
  36. package/module/settings/form/context.account_users.form.json +12 -12
  37. package/module/settings/form/user.user_roles.form.json +13 -13
  38. package/module/settings/menu.json +72 -72
  39. package/module/settings/table/admin.accounts.table.json +49 -49
  40. package/module/settings/table/admin.custom_column.table.json +100 -100
  41. package/module/settings/table/admin.roles.table.json +77 -77
  42. package/module/settings/table/admin.routes.table.json +73 -73
  43. package/module/settings/table/admin.rules.table.json +77 -77
  44. package/module/settings/table/admin.table_properties.table.json +37 -37
  45. package/module/settings/table/admin.user_roles.table.json +74 -74
  46. package/module/settings/table/admin.users.table.json +135 -135
  47. package/module/settings/table/context.account_grants.table.json +88 -88
  48. package/module/settings/table/context.account_users.table.json +53 -53
  49. package/module/settings/table/log.table_changes.table.json +100 -100
  50. package/package.json +102 -102
  51. package/plugin.js +30 -30
  52. package/server/helpers/index.js +40 -40
  53. package/server/helpers/list/descriptionList.js +45 -45
  54. package/server/helpers/list/tableList.js +82 -82
  55. package/server/helpers/list/utils/buttonDel.js +12 -12
  56. package/server/helpers/list/utils/buttonEdit.js +14 -14
  57. package/server/helpers/utils/buttonAdd.js +6 -6
  58. package/server/helpers/utils/buttonDel.js +6 -6
  59. package/server/helpers/utils/buttonEdit.js +5 -5
  60. package/server/helpers/utils/paddingNumber.js +3 -3
  61. package/server/plugins/access/funcs/getAdminAccess.js +12 -12
  62. package/server/plugins/hook.js +276 -276
  63. package/server/plugins/vite.js +77 -77
  64. package/server/routes/access/controllers/access.interface.js +33 -33
  65. package/server/routes/data/controllers/cardData.js +127 -127
  66. package/server/routes/data/controllers/tableFilter.js +9 -9
  67. package/server/routes/data/controllers/tableInfo.js +112 -112
  68. package/server/routes/dblist/controllers/readItems.js +20 -20
  69. package/server/routes/dblist/controllers/setItem.js +22 -22
  70. package/server/routes/dblist/index.mjs +18 -18
  71. package/server/routes/dblist/utils/formatData.js +7 -7
  72. package/server/routes/menu/controllers/getMenu.js +77 -77
  73. package/server/routes/menu/controllers/interfaces.js +20 -20
  74. package/server/routes/menu/index.mjs +7 -7
  75. package/server/routes/print/controllers/printTemplate.add.js +37 -37
  76. package/server/routes/print/controllers/printTemplate.delete.js +29 -29
  77. package/server/routes/print/controllers/printTemplate.edit.js +42 -42
  78. package/server/routes/print/controllers/printTemplate.js +67 -67
  79. package/server/routes/print/controllers/printTemplateList.js +19 -19
  80. package/server/routes/print/controllers/printTemplatePreview.js +87 -87
  81. package/server/routes/print/index.mjs +19 -19
  82. package/server/routes/properties/controllers/admin.properties.get.js +31 -31
  83. package/server/routes/properties/controllers/table.properties.get.js +120 -120
  84. package/server/routes/properties/controllers/table.properties.post.js +115 -115
  85. package/server/routes/properties/controllers/user.properties.get.js +19 -19
  86. package/server/routes/properties/controllers/user.properties.post.js +10 -10
  87. package/server/routes/properties/index.mjs +21 -21
  88. package/server/routes/properties/utils/dataInsert.js +26 -26
  89. package/server/routes/properties/utils/getColumnMetaData.js +17 -17
  90. package/server/routes/properties/utils/refreshData.js +128 -128
  91. package/server/routes/report/utils/getFilterQuery.js +67 -67
  92. package/server/routes/templates/index.mjs +16 -16
  93. package/server/routes/user/controllers/user.cls.post.js +54 -54
  94. package/server/routes/util/index.mjs +5 -5
  95. package/server/routes/widget/controllers/widget.get.js +125 -125
  96. package/server/templates/form/admin.profile.form.json +31 -31
  97. package/server/templates/form/cp_building.form.json +32 -32
  98. package/server/templates/pt/card-print.pt.hbs +245 -245
  99. package/utils.js +26 -26
@@ -1,125 +1,125 @@
1
- import { getMeta, getToken, pgClients } from '@opengis/fastify-table/utils.js';
2
-
3
- const galleryExtList = ['png', 'svg', 'jpg', 'jpeg', 'gif', 'mp4', 'mov', 'avi'];
4
- const username = `coalesce(u.sur_name,'')||coalesce(' '||u.user_name,'') ||coalesce(' '||u.father_name,'')`;
5
-
6
- /**
7
- * Дістає CRM для widget
8
- *
9
- */
10
-
11
- export default async function widgetGet({
12
- pg = pgClients.client, user = {}, params = {}, query = {},
13
- }) {
14
- const param = user?.uid ? await getToken({
15
- token: params.objectid, mode: 'w', uid: user.uid,
16
- }) : null;
17
-
18
- const objectid = param ? JSON.parse(param)?.id : params.objectid;
19
-
20
- if (!objectid) {
21
- return { message: 'id required', status: 400 };
22
- }
23
-
24
- const sqls = {
25
- comment: pg.pk['admin.users']
26
- ? `select communication_id, entity_id, body, subject, c.cdate, c.uid,
27
- ${username} as username, u.login, u.avatar
28
- from crm.communications c
29
- left join admin.users u on u.uid=c.uid
30
- where entity_id=$1 order by cdate desc`
31
- : 'select communication_id, entity_id, body, subject, cdate, uid from crm.communications where entity_id=$1 order by cdate desc',
32
-
33
- history: `select * from (
34
- SELECT change_id, entity_id, entity_type, change_type, change_date, a.change_user_id, a.uid, a.cdate, b.json_agg as changes,
35
- ${username} as username, u.login, u.avatar
36
- FROM log.table_changes a
37
- left join admin.users u on a.change_user_id = u.uid
38
- left join lateral(
39
- select json_agg(row_to_json(q)) from (
40
- select change_data_id, entity_key, value_new, value_old from log.table_changes_data
41
- where change_id=a.change_id
42
- )q
43
- )b on 1=1
44
- where b.json_agg is not null and (entity_id=$1 or entity_id in (
45
- select communication_id as comments from crm.communications where entity_id=$1
46
- union all select checklist_id from crm.checklists where entity_id=$1)
47
- )
48
-
49
- union all
50
- select change_id, entity_id, entity_type, change_type, change_date, a.change_user_id, a.uid, a.cdate, b.json_agg as changes,
51
- ${username} as username, u.login, u.avatar
52
- FROM log.table_changes a
53
- left join admin.users u on a.change_user_id = u.uid
54
- left join lateral(
55
- select json_agg(o) from (
56
- select json_object_agg(entity_key, coalesce(value_new, value_old)) as o from log.table_changes_data
57
- where change_id=a.change_id and entity_key not in ('uid', 'file_status', 'editor_id', 'cdate', 'editor_date', 'entity_id')
58
- )q
59
- )b on 1=1
60
- where a.change_type in ('INSERT', 'DELETE') and a.entity_id in (select file_id from crm.files where entity_id=$1)
61
- limit 100
62
-
63
- )q order by cdate desc limit 100`,
64
-
65
- checklist: pg.pk['admin.users']
66
- ? `SELECT checklist_id, entity_id, subject, is_done, done_date, c.uid, c.cdate, ${username} as username, u.login, u.avatar
67
- FROM crm.checklists c
68
- left join admin.users u on u.uid=c.uid
69
- where entity_id=$1 order by cdate desc`
70
- : 'SELECT checklist_id, entity_id, subject, is_done, done_date, uid, cdate FROM crm.checklists where entity_id=$1 order by cdate desc',
71
-
72
- file: pg.pk['admin.users']
73
- ? `SELECT file_id, entity_id, entity_type, file_path, uploaded_name, ext, size, c.uid, c.cdate, file_type, c.ismain,
74
- ${username} as username, u.login, isverified, u.avatar, u.uid as author, file_status
75
- FROM crm.files c
76
- left join admin.users u on u.uid=c.uid
77
- where entity_id=$1 and file_status<>3 order by cdate desc`
78
- : `SELECT file_id, entity_id, entity_type, file_path, uploaded_name, ext, size, uid, cdate, file_type, ismain,
79
- isverified, uid as author, file_status FROM crm.files c where entity_id=$1 and file_status<>3 order by cdate desc`,
80
- gallery: pg.pk['admin.users']
81
- ? `SELECT file_id, entity_id, entity_type, file_path, uploaded_name, ext, size, c.uid, c.cdate, file_type, c.ismain,
82
- ${username} as username, u.login, u.avatar, isverified, u.avatar, c.uid as author, file_status
83
- FROM crm.files c
84
- left join admin.users u on u.uid=c.uid
85
- where entity_id=$1 and file_status<>3 and ext = any($2) order by cdate desc`
86
- : `SELECT file_id, entity_id, entity_type, file_path, uploaded_name, ext, size, c.uid, c.cdate, file_type, ismain,
87
- isverified, uid as author, file_status FROM crm.files c where entity_id=$1 and file_status<>3 and ext = any($2) order by cdate desc`,
88
-
89
- };
90
- const sql = sqls[params.type];
91
-
92
- if (!sql) {
93
- return { message: 'param type not valid', status: 400 };
94
- }
95
-
96
-
97
- /* data */
98
- const time = [Date.now()];
99
- const { rows = [] } = await pg.query(sql, [objectid, params.type === 'gallery' ? galleryExtList : null].filter((el) => el));
100
- rows.forEach(row => Object.assign(row, { username: row.username?.trim?.() || row.login }));
101
- time.push(Date.now());
102
-
103
- /* Object info */
104
- const { tableName } = pg.pk['log.table_changes'] ? await pg.one('select entity_type as "tableName" from log.table_changes where entity_id=$1 limit 1', [objectid]) : {};
105
- const { pk } = await getMeta({ table: tableName });
106
-
107
- const q = tableName && pg.pk['admin.users'] ? `select ${username} as author, u.login, a.cdate, a.editor_date from ${tableName} a
108
- left join admin.users u on a.uid=u.uid where a.${pk}=$1 limit 1` : undefined;
109
-
110
- const data = pk && q ? await pg.one(q, [objectid]) : {};
111
-
112
- if (query.debug && user?.user_type === 'admin') {
113
- return {
114
- sql, type: params.type, q, id: objectid, data,
115
- };
116
- }
117
-
118
- return {
119
- time: { data: time[1] - time[0] },
120
- rows,
121
- user: { uid: user?.uid, name: user?.user_name },
122
- data: { author: data?.author, cdate: data?.cdate, edate: data?.editor_date },
123
- objectid: params.objectid,
124
- };
125
- }
1
+ import { getMeta, getToken, pgClients } from '@opengis/fastify-table/utils.js';
2
+
3
+ const galleryExtList = ['png', 'svg', 'jpg', 'jpeg', 'gif', 'mp4', 'mov', 'avi'];
4
+ const username = `coalesce(u.sur_name,'')||coalesce(' '||u.user_name,'') ||coalesce(' '||u.father_name,'')`;
5
+
6
+ /**
7
+ * Дістає CRM для widget
8
+ *
9
+ */
10
+
11
+ export default async function widgetGet({
12
+ pg = pgClients.client, user = {}, params = {}, query = {},
13
+ }) {
14
+ const param = user?.uid ? await getToken({
15
+ token: params.objectid, mode: 'w', uid: user.uid,
16
+ }) : null;
17
+
18
+ const objectid = param ? JSON.parse(param)?.id : params.objectid;
19
+
20
+ if (!objectid) {
21
+ return { message: 'id required', status: 400 };
22
+ }
23
+
24
+ const sqls = {
25
+ comment: pg.pk['admin.users']
26
+ ? `select communication_id, entity_id, body, subject, c.cdate, c.uid,
27
+ ${username} as username, u.login, u.avatar
28
+ from crm.communications c
29
+ left join admin.users u on u.uid=c.uid
30
+ where entity_id=$1 order by cdate desc`
31
+ : 'select communication_id, entity_id, body, subject, cdate, uid from crm.communications where entity_id=$1 order by cdate desc',
32
+
33
+ history: `select * from (
34
+ SELECT change_id, entity_id, entity_type, change_type, change_date, a.change_user_id, a.uid, a.cdate, b.json_agg as changes,
35
+ ${username} as username, u.login, u.avatar
36
+ FROM log.table_changes a
37
+ left join admin.users u on a.change_user_id = u.uid
38
+ left join lateral(
39
+ select json_agg(row_to_json(q)) from (
40
+ select change_data_id, entity_key, value_new, value_old from log.table_changes_data
41
+ where change_id=a.change_id
42
+ )q
43
+ )b on 1=1
44
+ where b.json_agg is not null and (entity_id=$1 or entity_id in (
45
+ select communication_id as comments from crm.communications where entity_id=$1
46
+ union all select checklist_id from crm.checklists where entity_id=$1)
47
+ )
48
+
49
+ union all
50
+ select change_id, entity_id, entity_type, change_type, change_date, a.change_user_id, a.uid, a.cdate, b.json_agg as changes,
51
+ ${username} as username, u.login, u.avatar
52
+ FROM log.table_changes a
53
+ left join admin.users u on a.change_user_id = u.uid
54
+ left join lateral(
55
+ select json_agg(o) from (
56
+ select json_object_agg(entity_key, coalesce(value_new, value_old)) as o from log.table_changes_data
57
+ where change_id=a.change_id and entity_key not in ('uid', 'file_status', 'editor_id', 'cdate', 'editor_date', 'entity_id')
58
+ )q
59
+ )b on 1=1
60
+ where a.change_type in ('INSERT', 'DELETE') and a.entity_id in (select file_id from crm.files where entity_id=$1)
61
+ limit 100
62
+
63
+ )q order by cdate desc limit 100`,
64
+
65
+ checklist: pg.pk['admin.users']
66
+ ? `SELECT checklist_id, entity_id, subject, is_done, done_date, c.uid, c.cdate, ${username} as username, u.login, u.avatar
67
+ FROM crm.checklists c
68
+ left join admin.users u on u.uid=c.uid
69
+ where entity_id=$1 order by cdate desc`
70
+ : 'SELECT checklist_id, entity_id, subject, is_done, done_date, uid, cdate FROM crm.checklists where entity_id=$1 order by cdate desc',
71
+
72
+ file: pg.pk['admin.users']
73
+ ? `SELECT file_id, entity_id, entity_type, file_path, uploaded_name, ext, size, c.uid, c.cdate, file_type, c.ismain,
74
+ ${username} as username, u.login, isverified, u.avatar, u.uid as author, file_status
75
+ FROM crm.files c
76
+ left join admin.users u on u.uid=c.uid
77
+ where entity_id=$1 and file_status<>3 order by cdate desc`
78
+ : `SELECT file_id, entity_id, entity_type, file_path, uploaded_name, ext, size, uid, cdate, file_type, ismain,
79
+ isverified, uid as author, file_status FROM crm.files c where entity_id=$1 and file_status<>3 order by cdate desc`,
80
+ gallery: pg.pk['admin.users']
81
+ ? `SELECT file_id, entity_id, entity_type, file_path, uploaded_name, ext, size, c.uid, c.cdate, file_type, c.ismain,
82
+ ${username} as username, u.login, u.avatar, isverified, u.avatar, c.uid as author, file_status
83
+ FROM crm.files c
84
+ left join admin.users u on u.uid=c.uid
85
+ where entity_id=$1 and file_status<>3 and ext = any($2) order by cdate desc`
86
+ : `SELECT file_id, entity_id, entity_type, file_path, uploaded_name, ext, size, c.uid, c.cdate, file_type, ismain,
87
+ isverified, uid as author, file_status FROM crm.files c where entity_id=$1 and file_status<>3 and ext = any($2) order by cdate desc`,
88
+
89
+ };
90
+ const sql = sqls[params.type];
91
+
92
+ if (!sql) {
93
+ return { message: 'param type not valid', status: 400 };
94
+ }
95
+
96
+
97
+ /* data */
98
+ const time = [Date.now()];
99
+ const { rows = [] } = await pg.query(sql, [objectid, params.type === 'gallery' ? galleryExtList : null].filter((el) => el));
100
+ rows.forEach(row => Object.assign(row, { username: row.username?.trim?.() || row.login }));
101
+ time.push(Date.now());
102
+
103
+ /* Object info */
104
+ const { tableName } = pg.pk['log.table_changes'] ? await pg.one('select entity_type as "tableName" from log.table_changes where entity_id=$1 limit 1', [objectid]) : {};
105
+ const { pk } = await getMeta({ table: tableName });
106
+
107
+ const q = tableName && pg.pk['admin.users'] ? `select ${username} as author, u.login, a.cdate, a.editor_date from ${tableName} a
108
+ left join admin.users u on a.uid=u.uid where a.${pk}=$1 limit 1` : undefined;
109
+
110
+ const data = pk && q ? await pg.one(q, [objectid]) : {};
111
+
112
+ if (query.debug && user?.user_type === 'admin') {
113
+ return {
114
+ sql, type: params.type, q, id: objectid, data,
115
+ };
116
+ }
117
+
118
+ return {
119
+ time: { data: time[1] - time[0] },
120
+ rows,
121
+ user: { uid: user?.uid, name: user?.user_name },
122
+ data: { author: data?.author, cdate: data?.cdate, edate: data?.editor_date },
123
+ objectid: params.objectid,
124
+ };
125
+ }
@@ -1,31 +1,31 @@
1
- {
2
- "schema": {
3
- "sur_name": {
4
- "ua": "Прізвище",
5
- "type": "text",
6
- "validators": ["required"]
7
- },
8
- "user_name": {
9
- "ua": "Ім'я",
10
- "type": "text",
11
- "validators": ["required"]
12
- },
13
- "father_name": {
14
- "ua": "По батькові",
15
- "type": "text"
16
- },
17
- "email": {
18
- "ua": "Email",
19
- "type": "email",
20
- "validators": ["required"]
21
- },
22
- "phone": {
23
- "ua": "Номер телефону",
24
- "type": "text"
25
- },
26
- "avatar": {
27
- "ua": "Аватар",
28
- "type": "file"
29
- }
30
- }
31
- }
1
+ {
2
+ "schema": {
3
+ "sur_name": {
4
+ "ua": "Прізвище",
5
+ "type": "text",
6
+ "validators": ["required"]
7
+ },
8
+ "user_name": {
9
+ "ua": "Ім'я",
10
+ "type": "text",
11
+ "validators": ["required"]
12
+ },
13
+ "father_name": {
14
+ "ua": "По батькові",
15
+ "type": "text"
16
+ },
17
+ "email": {
18
+ "ua": "Email",
19
+ "type": "email",
20
+ "validators": ["required"]
21
+ },
22
+ "phone": {
23
+ "ua": "Номер телефону",
24
+ "type": "text"
25
+ },
26
+ "avatar": {
27
+ "ua": "Аватар",
28
+ "type": "file"
29
+ }
30
+ }
31
+ }
@@ -1,33 +1,33 @@
1
- {
2
- "schema": {
3
-
4
- "cp_umuni_id": {
5
- "type": "Text",
6
- "ua": "ID UMUNI"
7
- },
8
- "cp_year": {
9
- "type": "Text",
10
- "ua": "Рік будівництва"
11
- },
12
- "cp_date_en_audit": {
13
- "type": "DatePicker",
14
- "ua": "Дата проведення останнього енергоаудиту"
15
- },
16
- "cp_certificate": {
17
- "type": "Text",
18
- "ua": "Сертифікат енергоефективності будівлі",
19
- "help": "Вкажіть посилання"
20
- },
21
- "cp_pkd": {
22
- "type": "Autocomplete",
23
- "data": "customer_name",
24
- "add": {
25
- "model": "crm.accounts",
26
- "ua": "Додати",
27
- "form": "account_light.form"
28
- },
29
- "ua": "Замовник ПКД"
30
- }
31
- },
32
- "label_style": "vertical"
1
+ {
2
+ "schema": {
3
+
4
+ "cp_umuni_id": {
5
+ "type": "Text",
6
+ "ua": "ID UMUNI"
7
+ },
8
+ "cp_year": {
9
+ "type": "Text",
10
+ "ua": "Рік будівництва"
11
+ },
12
+ "cp_date_en_audit": {
13
+ "type": "DatePicker",
14
+ "ua": "Дата проведення останнього енергоаудиту"
15
+ },
16
+ "cp_certificate": {
17
+ "type": "Text",
18
+ "ua": "Сертифікат енергоефективності будівлі",
19
+ "help": "Вкажіть посилання"
20
+ },
21
+ "cp_pkd": {
22
+ "type": "Autocomplete",
23
+ "data": "customer_name",
24
+ "add": {
25
+ "model": "crm.accounts",
26
+ "ua": "Додати",
27
+ "form": "account_light.form"
28
+ },
29
+ "ua": "Замовник ПКД"
30
+ }
31
+ },
32
+ "label_style": "vertical"
33
33
  }