@opengis/fastify-table 1.1.50 → 1.1.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +42 -42
- package/.gitlab-ci.yml +18 -18
- package/Changelog.md +352 -351
- package/README.md +26 -26
- package/config.js +10 -10
- package/cron/controllers/cronApi.js +22 -22
- package/cron/controllers/utils/cronList.js +1 -1
- package/cron/funcs/addCron.js +132 -132
- package/cron/index.js +10 -10
- package/crud/controllers/deleteCrud.js +36 -36
- package/crud/controllers/insert.js +71 -71
- package/crud/controllers/update.js +76 -76
- package/crud/controllers/utils/xssInjection.js +72 -72
- package/crud/funcs/dataDelete.js +19 -19
- package/crud/funcs/dataInsert.js +30 -30
- package/crud/funcs/dataUpdate.js +48 -48
- package/crud/funcs/getAccess.js +46 -44
- package/crud/funcs/getOpt.js +10 -10
- package/crud/funcs/getToken.js +27 -27
- package/crud/funcs/isFileExists.js +13 -13
- package/crud/funcs/setOpt.js +16 -16
- package/crud/funcs/setToken.js +53 -53
- package/crud/funcs/utils/getFolder.js +9 -9
- package/crud/funcs/utils/logChanges.js +62 -62
- package/crud/index.js +36 -36
- package/docs/.vitepress/abbr.mjs +26 -26
- package/docs/.vitepress/config.mjs +127 -127
- package/docs/.vitepress/navigation.mjs +82 -82
- package/docs/.vitepress/theme/Layout.vue +17 -17
- package/docs/.vitepress/theme/components/NavigationLinks.vue +102 -102
- package/docs/.vitepress/theme/components/Panzoom.vue +169 -169
- package/docs/.vitepress/theme/index.mjs +15 -15
- package/docs/.vitepress/theme/style.scss +163 -163
- package/docs/abbr.json +4 -4
- package/docs/api/cron/cronApi.md +56 -56
- package/docs/api/crud/deleteCrud.md +58 -58
- package/docs/api/crud/insert.md +82 -82
- package/docs/api/crud/update.md +85 -85
- package/docs/api/index.md +47 -47
- package/docs/api/notification/testEmail.md +91 -91
- package/docs/api/table/card.md +73 -73
- package/docs/api/table/data.md +134 -134
- package/docs/api/table/export.md +60 -60
- package/docs/api/table/filter.md +104 -104
- package/docs/api/table/form.md +126 -126
- package/docs/api/table/search.md +123 -123
- package/docs/api/table/suggest.md +156 -156
- package/docs/api/table/table.md +107 -107
- package/docs/api/user/user.cls.id.md +77 -77
- package/docs/api/user/user.cls.md +49 -49
- package/docs/api/user/user.cls.post.md +62 -62
- package/docs/api/user/user.info.md +37 -37
- package/docs/api/utils/logger.file.md +60 -60
- package/docs/api/utils/next.id.md +34 -34
- package/docs/api/utils/properties.add.md +127 -127
- package/docs/api/utils/properties.get.md +73 -73
- package/docs/api/utils/status.monitor.md +36 -36
- package/docs/api/widget/widget.del.md +76 -76
- package/docs/api/widget/widget.get.md +233 -233
- package/docs/api/widget/widget.set.md +88 -88
- package/docs/db/admin.md +947 -947
- package/docs/db/crm.md +564 -564
- package/docs/db/index.md +9 -9
- package/docs/db/log.md +204 -204
- package/docs/hook/card/afterCard.md +20 -20
- package/docs/hook/card/preCard.md +25 -25
- package/docs/hook/data/afterData.md +26 -26
- package/docs/hook/data/preData.md +26 -26
- package/docs/hook/deleteCrud/afterDelete.md +21 -21
- package/docs/hook/deleteCrud/preDelete.md +26 -26
- package/docs/hook/form/afterForm.md +19 -19
- package/docs/hook/form/preForm.md +26 -26
- package/docs/hook/getTemplate/afterTemplate.md +24 -24
- package/docs/hook/getTemplate/preTemplate.md +29 -29
- package/docs/hook/index.md +45 -45
- package/docs/hook/insert/afterInsert.md +41 -41
- package/docs/hook/insert/preInsert.md +25 -25
- package/docs/hook/table/afterTable.md +20 -20
- package/docs/hook/table/preTable.md +25 -25
- package/docs/hook/update/afterUpdate.md +41 -41
- package/docs/hook/update/preUpdate.md +25 -25
- package/docs/index.md +42 -42
- package/docs/public/fastify-dark.svg +3 -3
- package/docs/public/logo-short-dark.svg +11 -11
- package/docs/public/logo-short.svg +10 -10
- package/docs/public/logo.svg +19 -19
- package/docs/readme/index.md +121 -121
- package/docs/templates/card.md +83 -83
- package/docs/templates/cls.md +29 -29
- package/docs/templates/filters.md +91 -91
- package/docs/templates/forms.md +139 -139
- package/docs/templates/index.md +28 -28
- package/docs/templates/select.md +90 -90
- package/docs/templates/table.md +162 -162
- package/docs/utils/cron/addCron.md +29 -29
- package/docs/utils/crud/dataInsert.md +51 -51
- package/docs/utils/crud/dataUpdate.md +52 -52
- package/docs/utils/crud/getOpt.md +33 -33
- package/docs/utils/crud/isFileExists.md +37 -37
- package/docs/utils/crud/setOpt.md +37 -37
- package/docs/utils/hook/addHook.md +74 -74
- package/docs/utils/hook/applyHook.md +64 -64
- package/docs/utils/index.md +47 -47
- package/docs/utils/notification/addNotification.md +28 -28
- package/docs/utils/notification/notification.md +41 -41
- package/docs/utils/pg/autoIndex.md +22 -22
- package/docs/utils/pg/getMeta.md +58 -58
- package/docs/utils/pg/getPG.md +34 -34
- package/docs/utils/pg/init.md +29 -29
- package/docs/utils/pg/pg.md +70 -70
- package/docs/utils/redis/getRedis.md +36 -36
- package/docs/utils/redis/rclient.md +74 -74
- package/docs/utils/table/getForm.md +68 -68
- package/docs/utils/table/getMeta.md +55 -55
- package/docs/utils/table/getSelect.md +38 -38
- package/docs/utils/table/getSelectMeta.md +46 -46
- package/docs/utils/table/getTable.md +77 -77
- package/helper.js +30 -30
- package/index.js +105 -105
- package/migration/exec.migrations.js +79 -79
- package/module/core/select/core.user_mentioned.sql +1 -1
- package/module/test/cls/itree.composition.json +25 -25
- package/module/test/table/test.rest_zone.table.json +265 -265
- package/notification/controllers/readNotifications.js +30 -30
- package/notification/controllers/testEmail.js +50 -50
- package/notification/controllers/userNotifications.js +64 -64
- package/notification/funcs/addNotification.js +21 -21
- package/notification/funcs/sendNotification.js +112 -112
- package/package.json +41 -41
- package/pg/funcs/getMeta.js +29 -29
- package/pg/funcs/getPG.js +30 -30
- package/pg/pgClients.js +20 -20
- package/policy/funcs/checkPolicy.js +92 -92
- package/policy/funcs/sqlInjection.js +33 -33
- package/policy/index.js +14 -14
- package/redis/client.js +8 -8
- package/redis/funcs/getRedis.js +23 -23
- package/redis/funcs/redisClients.js +2 -2
- package/redis/index.js +19 -19
- package/server/migrations/0.sql +78 -78
- package/server/migrations/cls.sql +39 -39
- package/server/migrations/log.sql +80 -80
- package/server/migrations/properties.sql +144 -144
- package/server/migrations/roles.sql +172 -166
- package/server/migrations/users.sql +168 -168
- package/server.js +26 -26
- package/table/controllers/data.js +150 -150
- package/table/controllers/filter.js +50 -50
- package/table/controllers/form.js +42 -42
- package/table/controllers/search.js +80 -80
- package/table/controllers/suggest.js +79 -79
- package/table/controllers/table.js +83 -83
- package/table/controllers/utils/addTemplateDir.js +8 -8
- package/table/controllers/utils/getSelect.js +19 -19
- package/table/controllers/utils/getSelectMeta.js +66 -66
- package/table/controllers/utils/getTemplate_old.js +28 -28
- package/table/controllers/utils/getTemplates.js +18 -18
- package/table/controllers/utils/gisIRColumn.js +67 -67
- package/table/controllers/utils/loadTemplate.js +1 -1
- package/table/controllers/utils/loadTemplatePath.js +1 -1
- package/table/controllers/utils/userTemplateDir.js +1 -1
- package/table/funcs/getFilterSQL/index.js +94 -94
- package/table/funcs/getFilterSQL/util/formatValue.js +170 -170
- package/table/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
- package/table/funcs/getFilterSQL/util/getFilterQuery.js +66 -66
- package/table/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
- package/table/funcs/getFilterSQL/util/getTableSql.js +34 -34
- package/table/funcs/metaFormat/getSelectVal.js +21 -21
- package/table/funcs/metaFormat/index.js +28 -28
- package/table/index.js +37 -37
- package/table/schema.js +54 -54
- package/test/api/applyHook.test.js +95 -95
- package/test/api/crud.test.js +89 -89
- package/test/api/crud.xss.test.js +80 -80
- package/test/api/suggest.test.js +66 -66
- package/test/api/table.test.js +134 -134
- package/test/api/user.test.js +85 -85
- package/test/api/widget.test.js +117 -117
- package/test/config.example +18 -18
- package/test/funcs/pg.test.js +34 -34
- package/test/funcs/redis.test.js +19 -19
- package/test/helper/formatDate.test.js +62 -62
- package/test/templates/cls/test.json +9 -9
- package/test/templates/form/cp_building.form.json +32 -32
- package/test/templates/select/account_id.json +3 -3
- package/test/templates/select/storage.data.json +2 -2
- package/test/templates/select/test.storage.data.json +3 -3
- package/test/templates/select/test.suggest.ato_new.json +3 -3
- package/test/templates/select/test.suggest.ato_new.sql +25 -25
- package/test/templates/select/test.suggest.data.json +4 -4
- package/test/templates/select/test.suggest.parent.sql +1 -1
- package/test/templates/table/gis.dataset.table.json +20 -20
- package/user/controllers/user.cls.id.js +14 -14
- package/user/controllers/user.cls.js +75 -75
- package/user/controllers/user.cls.post.js +55 -55
- package/user/controllers/user.info.js +21 -21
- package/util/controllers/logger.file.js +91 -91
- package/util/controllers/next.id.js +4 -4
- package/util/controllers/properties.add.js +60 -60
- package/util/controllers/properties.get.js +19 -19
- package/util/controllers/status.monitor.js +8 -8
- package/util/controllers/utils/checkUserAccess.js +17 -17
- package/util/controllers/utils/getRootDir.js +25 -25
- package/util/index.js +23 -23
- package/utils.js +104 -104
- package/widget/controllers/utils/historyFormat.js +76 -76
- package/widget/controllers/utils/obj2db.js +13 -13
- package/widget/controllers/widget.del.js +44 -44
- package/widget/controllers/widget.get.js +102 -102
- package/widget/controllers/widget.set.js +79 -79
- package/widget/index.js +40 -40
|
@@ -1,266 +1,266 @@
|
|
|
1
|
-
{
|
|
2
|
-
"public": true,
|
|
3
|
-
"key": "rz_id",
|
|
4
|
-
"table": "itree.rest_zones",
|
|
5
|
-
"query": "verif",
|
|
6
|
-
"sql": [
|
|
7
|
-
{
|
|
8
|
-
"sql": "select json_agg(file_path) as img_list from admin.doc_file where object_id=t.rz_id and file_status=1",
|
|
9
|
-
"name": "image_sql"
|
|
10
|
-
}
|
|
11
|
-
],
|
|
12
|
-
"form": "rest_zone.form",
|
|
13
|
-
"meta": {
|
|
14
|
-
"bbox": "geom",
|
|
15
|
-
"search": "name",
|
|
16
|
-
"title": "name"
|
|
17
|
-
},
|
|
18
|
-
"columns": [
|
|
19
|
-
{
|
|
20
|
-
"ua": "Назва об'єкта",
|
|
21
|
-
"title": "Назва об'єкта",
|
|
22
|
-
"name": "name",
|
|
23
|
-
"meta": "title",
|
|
24
|
-
"html": "<a href=\"/rest_zone/mode=card/view={{rz_id}}\">{{name}}</a>",
|
|
25
|
-
"format": "html"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"en": "Green zone category",
|
|
29
|
-
"ua": "Категорія зеленої зони",
|
|
30
|
-
"meta": "category",
|
|
31
|
-
"name": "category",
|
|
32
|
-
"data": "itree.recrzone_category",
|
|
33
|
-
"format": "select"
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"ru": "Вид насаджень",
|
|
37
|
-
"ua": "Вид насаджень",
|
|
38
|
-
"name": "plant_type",
|
|
39
|
-
"meta": "type",
|
|
40
|
-
"data": "itree.plant_type",
|
|
41
|
-
"format": "select"
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"name": "uid",
|
|
45
|
-
"ua": "Хто додав",
|
|
46
|
-
"width": "70",
|
|
47
|
-
"data": "contact_id",
|
|
48
|
-
"format": "select"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"ru": "Балансоутримувач об'єкта",
|
|
52
|
-
"ua": "Балансоутримувач об'єкта",
|
|
53
|
-
"hidden": true,
|
|
54
|
-
"meta": "other",
|
|
55
|
-
"name": "balancer",
|
|
56
|
-
"format": "text"
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"ua": "Відповідальний за утримання",
|
|
60
|
-
"name": "maintain_respons_gp",
|
|
61
|
-
"meta": "other",
|
|
62
|
-
"hidden": true,
|
|
63
|
-
"format": "text"
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
"ua": "Площа, га",
|
|
67
|
-
"name": "area",
|
|
68
|
-
"meta": "other",
|
|
69
|
-
"format": "text"
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"ru": "Форма власності",
|
|
73
|
-
"ua": "Форма власності",
|
|
74
|
-
"name": "ownership",
|
|
75
|
-
"meta": "other",
|
|
76
|
-
"data": "itree.ownership",
|
|
77
|
-
"format": "select"
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
"ru": "Категорія земель",
|
|
81
|
-
"ua": "Категорія земель",
|
|
82
|
-
"name": "landcategory",
|
|
83
|
-
"meta": "other",
|
|
84
|
-
"hidden": true,
|
|
85
|
-
"data": "itree.landcategory",
|
|
86
|
-
"format": "select"
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
"ru": "Цільве призначення",
|
|
90
|
-
"ua": "Цільве призначення",
|
|
91
|
-
"name": "purpose",
|
|
92
|
-
"meta": "other",
|
|
93
|
-
"hidden": true,
|
|
94
|
-
"data": "itree.purpose_type",
|
|
95
|
-
"format": "select"
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"ru": "Обмеження щодо використання",
|
|
99
|
-
"ua": "Обмеження щодо використання",
|
|
100
|
-
"name": "restriction",
|
|
101
|
-
"hidden": true,
|
|
102
|
-
"meta": "other",
|
|
103
|
-
"data": "itree.restriction",
|
|
104
|
-
"format": "select"
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
"ru": "Площа, зайнята зеленими насадженнями, кв.м",
|
|
108
|
-
"ua": "Площа, зайнята зеленими насадженнями, кв.м",
|
|
109
|
-
"name": "plants_square",
|
|
110
|
-
"meta": "other",
|
|
111
|
-
"hidden": true,
|
|
112
|
-
"format": "text"
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
"ru": "Загальний стан насаджень",
|
|
116
|
-
"ua": "Загальний стан насаджень",
|
|
117
|
-
"name": "plants_cond",
|
|
118
|
-
"meta": "other",
|
|
119
|
-
"data": "itree.plants_cond",
|
|
120
|
-
"format": "badge"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"en": "Photo",
|
|
124
|
-
"ru": "Фото",
|
|
125
|
-
"ua": "Фото",
|
|
126
|
-
"html": "{{#each img_list}}<a class='btn btn-xs btn-default' href=\"{{this}}\" download><i class='fa fa-file-text'></i></a><a target=\"_blank\" class='btn btn-xs btn-default' href=\"{{this}}\"><i class='fa fa-eye'></i></a><br>{{/each}}",
|
|
127
|
-
"name": "image",
|
|
128
|
-
"format": "html"
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
"ru": "Видовий склад рослин",
|
|
132
|
-
"ua": "Видовий склад рослин",
|
|
133
|
-
"name": "composition",
|
|
134
|
-
"hidden": true,
|
|
135
|
-
"meta": "other",
|
|
136
|
-
"data": "itree.composition",
|
|
137
|
-
"format": "badge"
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"ru": "Кількість особливо цінних порід та чагарників, шт",
|
|
141
|
-
"ua": "Кількість особливо цінних порід та чагарників, шт",
|
|
142
|
-
"name": "espec_valuable",
|
|
143
|
-
"hidden": true,
|
|
144
|
-
"meta": "other",
|
|
145
|
-
"format": "text"
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
"ru": "Повнота насаджень (кількість дерев на 1 гектар), шт/га",
|
|
149
|
-
"ua": "Повнота насаджень (кількість дерев на 1 гектар), шт/га",
|
|
150
|
-
"name": "planting_density",
|
|
151
|
-
"hidden": true,
|
|
152
|
-
"meta": "other",
|
|
153
|
-
"format": "text"
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
"ru": "Площа, зайнята деревами, кв.м",
|
|
157
|
-
"ua": "Площа, зайнята деревами, кв.м",
|
|
158
|
-
"name": "tree_square",
|
|
159
|
-
"hidden": true,
|
|
160
|
-
"meta": "other",
|
|
161
|
-
"format": "text"
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
"ru": "Балансова вартість",
|
|
165
|
-
"ua": "Балансова вартість",
|
|
166
|
-
"name": "book_value",
|
|
167
|
-
"meta": "other",
|
|
168
|
-
"hidden": true,
|
|
169
|
-
"format": "text"
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
"ru": "Кадастровий номер",
|
|
173
|
-
"ua": "Кадастровий номер",
|
|
174
|
-
"meta": "other",
|
|
175
|
-
"name": "cadnum",
|
|
176
|
-
"hidden": true,
|
|
177
|
-
"format": "text"
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
"ru": "Нормативна грошова оцінка",
|
|
181
|
-
"ua": "Нормативна грошова оцінка",
|
|
182
|
-
"name": "monetary_valuation",
|
|
183
|
-
"meta": "other",
|
|
184
|
-
"hidden": true,
|
|
185
|
-
"format": "text"
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
"ua": "Верифіковано",
|
|
189
|
-
"html": " {{#ifCond verif '==' true}} \r\n <span class=\"label\" style=\"color:#fff;background:green\"> Так</span> \r\n {{else}} \r\n <span class=\"label\" style=\"color:#fff;background:red\"> Ні</span>\r\n {{/ifCond}}",
|
|
190
|
-
"name": "verif",
|
|
191
|
-
"format": "check"
|
|
192
|
-
}
|
|
193
|
-
],
|
|
194
|
-
"title": "Зони відпочинку",
|
|
195
|
-
"filterList": [
|
|
196
|
-
{
|
|
197
|
-
"ua": "Назва",
|
|
198
|
-
"name": "name",
|
|
199
|
-
"type": "Text"
|
|
200
|
-
},
|
|
201
|
-
{
|
|
202
|
-
"ua": "Категорія зеленої зони",
|
|
203
|
-
"data": "itree.recrzone_category",
|
|
204
|
-
"name": "category",
|
|
205
|
-
"sort": "asc",
|
|
206
|
-
"type": "Check"
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
"ua": "Вид насаджень",
|
|
210
|
-
"data": "itree.plant_type",
|
|
211
|
-
"name": "plant_type",
|
|
212
|
-
"sort": "asc",
|
|
213
|
-
"type": "Check"
|
|
214
|
-
},
|
|
215
|
-
{
|
|
216
|
-
"ua": "Загальний стан насаджень",
|
|
217
|
-
"data": "itree.plants_cond",
|
|
218
|
-
"name": "plants_cond",
|
|
219
|
-
"sort": "asc",
|
|
220
|
-
"type": "Check"
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
"ua": "Видовий склад рослин",
|
|
224
|
-
"data": "itree.composition",
|
|
225
|
-
"name": "composition",
|
|
226
|
-
"sort": "asc",
|
|
227
|
-
"type": "Check"
|
|
228
|
-
},
|
|
229
|
-
{
|
|
230
|
-
"ua": "Форма власності",
|
|
231
|
-
"data": "itree.ownership",
|
|
232
|
-
"name": "ownership",
|
|
233
|
-
"type": "Check"
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
"ua": "Категорія земель",
|
|
237
|
-
"data": "itree.landcategory",
|
|
238
|
-
"name": "landcategory",
|
|
239
|
-
"type": "Check"
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
"ua": "Цільове призначення",
|
|
243
|
-
"data": "itree.purpose",
|
|
244
|
-
"name": "purpose",
|
|
245
|
-
"type": "Check"
|
|
246
|
-
}
|
|
247
|
-
],
|
|
248
|
-
"filterCustom": [
|
|
249
|
-
{
|
|
250
|
-
"name": "actual",
|
|
251
|
-
"label": "Поточний рік",
|
|
252
|
-
"sql": "cdate > '2020-01-01'::date"
|
|
253
|
-
}
|
|
254
|
-
],
|
|
255
|
-
"filterState": [
|
|
256
|
-
{
|
|
257
|
-
"name": "actual",
|
|
258
|
-
"label": "Поточний рік 2",
|
|
259
|
-
"sql": "cdate > '2022-09-12'::date"
|
|
260
|
-
}
|
|
261
|
-
],
|
|
262
|
-
"actions": [
|
|
263
|
-
"edit",
|
|
264
|
-
"del"
|
|
265
|
-
]
|
|
1
|
+
{
|
|
2
|
+
"public": true,
|
|
3
|
+
"key": "rz_id",
|
|
4
|
+
"table": "itree.rest_zones",
|
|
5
|
+
"query": "verif",
|
|
6
|
+
"sql": [
|
|
7
|
+
{
|
|
8
|
+
"sql": "select json_agg(file_path) as img_list from admin.doc_file where object_id=t.rz_id and file_status=1",
|
|
9
|
+
"name": "image_sql"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"form": "rest_zone.form",
|
|
13
|
+
"meta": {
|
|
14
|
+
"bbox": "geom",
|
|
15
|
+
"search": "name",
|
|
16
|
+
"title": "name"
|
|
17
|
+
},
|
|
18
|
+
"columns": [
|
|
19
|
+
{
|
|
20
|
+
"ua": "Назва об'єкта",
|
|
21
|
+
"title": "Назва об'єкта",
|
|
22
|
+
"name": "name",
|
|
23
|
+
"meta": "title",
|
|
24
|
+
"html": "<a href=\"/rest_zone/mode=card/view={{rz_id}}\">{{name}}</a>",
|
|
25
|
+
"format": "html"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"en": "Green zone category",
|
|
29
|
+
"ua": "Категорія зеленої зони",
|
|
30
|
+
"meta": "category",
|
|
31
|
+
"name": "category",
|
|
32
|
+
"data": "itree.recrzone_category",
|
|
33
|
+
"format": "select"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"ru": "Вид насаджень",
|
|
37
|
+
"ua": "Вид насаджень",
|
|
38
|
+
"name": "plant_type",
|
|
39
|
+
"meta": "type",
|
|
40
|
+
"data": "itree.plant_type",
|
|
41
|
+
"format": "select"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "uid",
|
|
45
|
+
"ua": "Хто додав",
|
|
46
|
+
"width": "70",
|
|
47
|
+
"data": "contact_id",
|
|
48
|
+
"format": "select"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"ru": "Балансоутримувач об'єкта",
|
|
52
|
+
"ua": "Балансоутримувач об'єкта",
|
|
53
|
+
"hidden": true,
|
|
54
|
+
"meta": "other",
|
|
55
|
+
"name": "balancer",
|
|
56
|
+
"format": "text"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"ua": "Відповідальний за утримання",
|
|
60
|
+
"name": "maintain_respons_gp",
|
|
61
|
+
"meta": "other",
|
|
62
|
+
"hidden": true,
|
|
63
|
+
"format": "text"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"ua": "Площа, га",
|
|
67
|
+
"name": "area",
|
|
68
|
+
"meta": "other",
|
|
69
|
+
"format": "text"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"ru": "Форма власності",
|
|
73
|
+
"ua": "Форма власності",
|
|
74
|
+
"name": "ownership",
|
|
75
|
+
"meta": "other",
|
|
76
|
+
"data": "itree.ownership",
|
|
77
|
+
"format": "select"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"ru": "Категорія земель",
|
|
81
|
+
"ua": "Категорія земель",
|
|
82
|
+
"name": "landcategory",
|
|
83
|
+
"meta": "other",
|
|
84
|
+
"hidden": true,
|
|
85
|
+
"data": "itree.landcategory",
|
|
86
|
+
"format": "select"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"ru": "Цільве призначення",
|
|
90
|
+
"ua": "Цільве призначення",
|
|
91
|
+
"name": "purpose",
|
|
92
|
+
"meta": "other",
|
|
93
|
+
"hidden": true,
|
|
94
|
+
"data": "itree.purpose_type",
|
|
95
|
+
"format": "select"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"ru": "Обмеження щодо використання",
|
|
99
|
+
"ua": "Обмеження щодо використання",
|
|
100
|
+
"name": "restriction",
|
|
101
|
+
"hidden": true,
|
|
102
|
+
"meta": "other",
|
|
103
|
+
"data": "itree.restriction",
|
|
104
|
+
"format": "select"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"ru": "Площа, зайнята зеленими насадженнями, кв.м",
|
|
108
|
+
"ua": "Площа, зайнята зеленими насадженнями, кв.м",
|
|
109
|
+
"name": "plants_square",
|
|
110
|
+
"meta": "other",
|
|
111
|
+
"hidden": true,
|
|
112
|
+
"format": "text"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"ru": "Загальний стан насаджень",
|
|
116
|
+
"ua": "Загальний стан насаджень",
|
|
117
|
+
"name": "plants_cond",
|
|
118
|
+
"meta": "other",
|
|
119
|
+
"data": "itree.plants_cond",
|
|
120
|
+
"format": "badge"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"en": "Photo",
|
|
124
|
+
"ru": "Фото",
|
|
125
|
+
"ua": "Фото",
|
|
126
|
+
"html": "{{#each img_list}}<a class='btn btn-xs btn-default' href=\"{{this}}\" download><i class='fa fa-file-text'></i></a><a target=\"_blank\" class='btn btn-xs btn-default' href=\"{{this}}\"><i class='fa fa-eye'></i></a><br>{{/each}}",
|
|
127
|
+
"name": "image",
|
|
128
|
+
"format": "html"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"ru": "Видовий склад рослин",
|
|
132
|
+
"ua": "Видовий склад рослин",
|
|
133
|
+
"name": "composition",
|
|
134
|
+
"hidden": true,
|
|
135
|
+
"meta": "other",
|
|
136
|
+
"data": "itree.composition",
|
|
137
|
+
"format": "badge"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"ru": "Кількість особливо цінних порід та чагарників, шт",
|
|
141
|
+
"ua": "Кількість особливо цінних порід та чагарників, шт",
|
|
142
|
+
"name": "espec_valuable",
|
|
143
|
+
"hidden": true,
|
|
144
|
+
"meta": "other",
|
|
145
|
+
"format": "text"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"ru": "Повнота насаджень (кількість дерев на 1 гектар), шт/га",
|
|
149
|
+
"ua": "Повнота насаджень (кількість дерев на 1 гектар), шт/га",
|
|
150
|
+
"name": "planting_density",
|
|
151
|
+
"hidden": true,
|
|
152
|
+
"meta": "other",
|
|
153
|
+
"format": "text"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"ru": "Площа, зайнята деревами, кв.м",
|
|
157
|
+
"ua": "Площа, зайнята деревами, кв.м",
|
|
158
|
+
"name": "tree_square",
|
|
159
|
+
"hidden": true,
|
|
160
|
+
"meta": "other",
|
|
161
|
+
"format": "text"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"ru": "Балансова вартість",
|
|
165
|
+
"ua": "Балансова вартість",
|
|
166
|
+
"name": "book_value",
|
|
167
|
+
"meta": "other",
|
|
168
|
+
"hidden": true,
|
|
169
|
+
"format": "text"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"ru": "Кадастровий номер",
|
|
173
|
+
"ua": "Кадастровий номер",
|
|
174
|
+
"meta": "other",
|
|
175
|
+
"name": "cadnum",
|
|
176
|
+
"hidden": true,
|
|
177
|
+
"format": "text"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"ru": "Нормативна грошова оцінка",
|
|
181
|
+
"ua": "Нормативна грошова оцінка",
|
|
182
|
+
"name": "monetary_valuation",
|
|
183
|
+
"meta": "other",
|
|
184
|
+
"hidden": true,
|
|
185
|
+
"format": "text"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"ua": "Верифіковано",
|
|
189
|
+
"html": " {{#ifCond verif '==' true}} \r\n <span class=\"label\" style=\"color:#fff;background:green\"> Так</span> \r\n {{else}} \r\n <span class=\"label\" style=\"color:#fff;background:red\"> Ні</span>\r\n {{/ifCond}}",
|
|
190
|
+
"name": "verif",
|
|
191
|
+
"format": "check"
|
|
192
|
+
}
|
|
193
|
+
],
|
|
194
|
+
"title": "Зони відпочинку",
|
|
195
|
+
"filterList": [
|
|
196
|
+
{
|
|
197
|
+
"ua": "Назва",
|
|
198
|
+
"name": "name",
|
|
199
|
+
"type": "Text"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"ua": "Категорія зеленої зони",
|
|
203
|
+
"data": "itree.recrzone_category",
|
|
204
|
+
"name": "category",
|
|
205
|
+
"sort": "asc",
|
|
206
|
+
"type": "Check"
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"ua": "Вид насаджень",
|
|
210
|
+
"data": "itree.plant_type",
|
|
211
|
+
"name": "plant_type",
|
|
212
|
+
"sort": "asc",
|
|
213
|
+
"type": "Check"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"ua": "Загальний стан насаджень",
|
|
217
|
+
"data": "itree.plants_cond",
|
|
218
|
+
"name": "plants_cond",
|
|
219
|
+
"sort": "asc",
|
|
220
|
+
"type": "Check"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"ua": "Видовий склад рослин",
|
|
224
|
+
"data": "itree.composition",
|
|
225
|
+
"name": "composition",
|
|
226
|
+
"sort": "asc",
|
|
227
|
+
"type": "Check"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"ua": "Форма власності",
|
|
231
|
+
"data": "itree.ownership",
|
|
232
|
+
"name": "ownership",
|
|
233
|
+
"type": "Check"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"ua": "Категорія земель",
|
|
237
|
+
"data": "itree.landcategory",
|
|
238
|
+
"name": "landcategory",
|
|
239
|
+
"type": "Check"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"ua": "Цільове призначення",
|
|
243
|
+
"data": "itree.purpose",
|
|
244
|
+
"name": "purpose",
|
|
245
|
+
"type": "Check"
|
|
246
|
+
}
|
|
247
|
+
],
|
|
248
|
+
"filterCustom": [
|
|
249
|
+
{
|
|
250
|
+
"name": "actual",
|
|
251
|
+
"label": "Поточний рік",
|
|
252
|
+
"sql": "cdate > '2020-01-01'::date"
|
|
253
|
+
}
|
|
254
|
+
],
|
|
255
|
+
"filterState": [
|
|
256
|
+
{
|
|
257
|
+
"name": "actual",
|
|
258
|
+
"label": "Поточний рік 2",
|
|
259
|
+
"sql": "cdate > '2022-09-12'::date"
|
|
260
|
+
}
|
|
261
|
+
],
|
|
262
|
+
"actions": [
|
|
263
|
+
"edit",
|
|
264
|
+
"del"
|
|
265
|
+
]
|
|
266
266
|
}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
export default async function readNotifications({
|
|
2
|
-
pg, params = {}, query = {}, session = {},
|
|
3
|
-
}) {
|
|
4
|
-
const { uid } = session.passport?.user || {};
|
|
5
|
-
|
|
6
|
-
if (!uid) {
|
|
7
|
-
return { message: 'access restricted', status: 403 };
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
try {
|
|
11
|
-
const { userId } = await pg.query('select uid as "userId" from admin.users where $1 in (uid,login) limit 1', [uid])
|
|
12
|
-
.then((res) => res.rows?.[0] || {});
|
|
13
|
-
|
|
14
|
-
if (!userId) {
|
|
15
|
-
return { message: 'access restricted: 2', status: 403 };
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const q = `update crm.notifications set read=true where read is not true
|
|
19
|
-
and ${params?.id ? 'notification_id=$2' : '1=1'} and addressee_id=$1`;
|
|
20
|
-
|
|
21
|
-
if (query.sql) return q;
|
|
22
|
-
|
|
23
|
-
const { rowCount = 0 } = await pg.query(q, [userId, params?.id].filter((el) => el));
|
|
24
|
-
|
|
25
|
-
return { message: `${rowCount} unread notifications marked as read`, status: 200 };
|
|
26
|
-
}
|
|
27
|
-
catch (err) {
|
|
28
|
-
return { error: err.toString(), status: 500 };
|
|
29
|
-
}
|
|
30
|
-
}
|
|
1
|
+
export default async function readNotifications({
|
|
2
|
+
pg, params = {}, query = {}, session = {},
|
|
3
|
+
}) {
|
|
4
|
+
const { uid } = session.passport?.user || {};
|
|
5
|
+
|
|
6
|
+
if (!uid) {
|
|
7
|
+
return { message: 'access restricted', status: 403 };
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
const { userId } = await pg.query('select uid as "userId" from admin.users where $1 in (uid,login) limit 1', [uid])
|
|
12
|
+
.then((res) => res.rows?.[0] || {});
|
|
13
|
+
|
|
14
|
+
if (!userId) {
|
|
15
|
+
return { message: 'access restricted: 2', status: 403 };
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const q = `update crm.notifications set read=true where read is not true
|
|
19
|
+
and ${params?.id ? 'notification_id=$2' : '1=1'} and addressee_id=$1`;
|
|
20
|
+
|
|
21
|
+
if (query.sql) return q;
|
|
22
|
+
|
|
23
|
+
const { rowCount = 0 } = await pg.query(q, [userId, params?.id].filter((el) => el));
|
|
24
|
+
|
|
25
|
+
return { message: `${rowCount} unread notifications marked as read`, status: 200 };
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
return { error: err.toString(), status: 500 };
|
|
29
|
+
}
|
|
30
|
+
}
|