@opengis/admin 0.1.0

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 (65) hide show
  1. package/README.md +29 -0
  2. package/config.js +5 -0
  3. package/dist/add-page-C-msiPrU.js +64 -0
  4. package/dist/admin-interface-vPkHXzQK.js +762 -0
  5. package/dist/admin-view-BYF4ITZY.js +220 -0
  6. package/dist/card-page-HOwuHNjV.js +49 -0
  7. package/dist/card-view-CjZRvfqy.js +11 -0
  8. package/dist/edit-page-7yrRusn4.js +58 -0
  9. package/dist/form-TrZSpRSC.js +38 -0
  10. package/dist/import-file-DPHo57R5.js +3726 -0
  11. package/dist/settings.js +4 -0
  12. package/dist/settings.umd.cjs +36 -0
  13. package/dist/style.css +1 -0
  14. package/dist/userMenu-CT1xO2Pt.js +5 -0
  15. package/package.json +52 -0
  16. package/plugin.js +25 -0
  17. package/server/helpers/controllers/badge.js +12 -0
  18. package/server/helpers/controllers/hb.js +3 -0
  19. package/server/helpers/controllers/map.js +3 -0
  20. package/server/helpers/controllers/mls.js +3 -0
  21. package/server/helpers/controllers/vue.js +3 -0
  22. package/server/helpers/index.mjs +13 -0
  23. package/server/plugins/docs.js +28 -0
  24. package/server/plugins/hook.js +94 -0
  25. package/server/plugins/vite.js +64 -0
  26. package/server/routes/data/controllers/cardData.js +30 -0
  27. package/server/routes/data/controllers/metaFormat/getSelectVal.js +19 -0
  28. package/server/routes/data/controllers/metaFormat/index.js +29 -0
  29. package/server/routes/data/controllers/tableData.js +129 -0
  30. package/server/routes/data/controllers/tableDataId.js +28 -0
  31. package/server/routes/data/controllers/tableFilter.js +51 -0
  32. package/server/routes/data/index.mjs +10 -0
  33. package/server/routes/menu/controllers/getMenu.js +50 -0
  34. package/server/routes/menu/index.mjs +5 -0
  35. package/server/routes/root.mjs +3 -0
  36. package/server/routes/templates/controllers/getTemplate.js +9 -0
  37. package/server/routes/templates/funcs/addTempateFolder.js +47 -0
  38. package/server/routes/templates/funcs/getTemplate.js +70 -0
  39. package/server/routes/templates/funcs/getTemplatePath.js +39 -0
  40. package/server/routes/templates/funcs/loadTemplate.js +1 -0
  41. package/server/routes/templates/funcs/loadTemplateDir.js +1 -0
  42. package/server/routes/templates/funcs/loadTemplatePath.js +1 -0
  43. package/server/routes/templates/index.mjs +14 -0
  44. package/server/templates/cls/test.json +10 -0
  45. package/server/templates/form/admin.user_cls.data.form.json +50 -0
  46. package/server/templates/form/admin.user_group_rel.form.json +22 -0
  47. package/server/templates/form/cp_building.form.json +33 -0
  48. package/server/templates/form/form-user-pass.json +11 -0
  49. package/server/templates/form/form-user_group.json +40 -0
  50. package/server/templates/form/form-users.json +157 -0
  51. package/server/templates/form/user_group_access.form.json +23 -0
  52. package/server/templates/interface/management.user_group.html +1 -0
  53. package/server/templates/interface/management.user_group.json +10 -0
  54. package/server/templates/interface/management.users.html +1 -0
  55. package/server/templates/interface/management.users.json +10 -0
  56. package/server/templates/map/dgm_level_line.xml +52 -0
  57. package/server/templates/pt/admin-menu-pt.html +108 -0
  58. package/server/templates/pt/management.user_group.table.pt.html +127 -0
  59. package/server/templates/pt/management.users.table.pt.html +130 -0
  60. package/server/templates/pt/table-standard-pt.html +202 -0
  61. package/server/templates/select/account_id.json +3 -0
  62. package/server/templates/select/account_id.sql +1 -0
  63. package/server/templates/table/gis.dataset.table.json +44 -0
  64. package/server/templates/table/management.user_group.table.json +113 -0
  65. package/server/templates/table/management.users.table.json +127 -0
@@ -0,0 +1,127 @@
1
+ <div class="btn-group">
2
+ <a edit="admin.user_group/{{{user_group_id}}}" form="form-user_group" class="btn btn-default btn-sm"><i
3
+ class="fa fa-edit"></i> {{{mls 'edit'}}}</a>
4
+ <a del="admin.user_group/{{{user_group_id}}}" class="btn btn-default btn-sm"><i class="fa fa-trash text-danger"></i>
5
+ {{{mls 'del'}}}</a>
6
+ <a show-modal="admin.user_group_history.pt?wrap=1&user_group_id={{user_group_id}}&width=1000px" class="btn btn-default btn-sm"><i class="fa fa-info"></i> Переглянути історію змін в групі</a>
7
+ </div>
8
+
9
+ <div class="row">
10
+ <div class="col-lg-6">
11
+ <div class="panel panel">
12
+ <div class="panel-heading">
13
+ <h4>{{group_name}}</h4>
14
+ </div>
15
+ <div class="panel-body">
16
+ <table class="table table-condensed">
17
+ <tbody>
18
+ <tr>
19
+ <td><b>Назва групи</b></td>
20
+ <td>{{ group_name }}
21
+ </td>
22
+ </tr>
23
+ <tr>
24
+ <td><b>Модуль</b></td>
25
+ <td>{{ module }}
26
+ </td>
27
+ </tr>
28
+ <tr>
29
+ <td><b>Інфо</b></td>
30
+ <td>{{ info }}
31
+ </td>
32
+ </tr>
33
+
34
+ <tr>
35
+ <td><b>Вкл./Викл.</b></td>
36
+ <td>{{ enabled }}</td>
37
+ </tr>
38
+ <tr>
39
+ <td><b>Створив</b></td>
40
+ <td>{{select uid data='user_id'}}
41
+ </td>
42
+ </tr>
43
+ <tr>
44
+ <td><b>Редагував</b></td>
45
+ <td>{{select editor_id data='user_id'}}
46
+ </td>
47
+ </tr>
48
+ <tr>
49
+ <td><b>Дата створення</b></td>
50
+ <td>{{ formatDate cdate format="dd.mm.yy / hh:sec" }}
51
+ </td>
52
+ </tr>
53
+ <tr>
54
+ <td><b>Дата редагування</b></td>
55
+ <td>{{ formatDate editor_date format="dd.mm.yy / hh:sec" }}
56
+ </td>
57
+ </tr>
58
+ </tbody>
59
+ </table>
60
+ </div>
61
+ </div>
62
+ <div class="ibox">
63
+ <div class="ibox-title">
64
+ <h5>Права до інтерфейсів</h5>
65
+ <div class="ibox-tools">
66
+ <a add="admin.user_group_access" obj="user_group_id={{user_group_id}}" form="user_group_access.form" class="btn btn-primary btn-sm" title="Додати">Додати</a>
67
+ </div>
68
+ </div>
69
+ <div class="ibox-content">
70
+ <div class="table-responsive">
71
+ {{#contentList limit=100 table="admin.user_group_access"
72
+ query="user_group_id='{{opt.user_group_id}}'"
73
+ user_group_id=user_group_id order='cdate desc' cache=0 sql1=1}}
74
+ <table class="table table-bordered">
75
+ <thead>
76
+ <tr>
77
+ <th style="width:50px">ID шаблона</th>
78
+ <th style="width:50px">Назва шаблона</th>
79
+ <th style="width:50px">Права</th>
80
+ <th style="width:50px">Дії</th>
81
+ </tr>
82
+ </thead>
83
+ <tbody>
84
+ {{#each rows}}
85
+ <tr>
86
+
87
+ <td>{{{doct_id}}}</td>
88
+ <td>{{select doct_id data="core.interface_list"}}</td>
89
+ <td>{{select role data="user_access"}}</td>
90
+ <td>
91
+ <a class="btn btn-default btn-xs" edit="admin.user_group_access/{{ugt_id}}" reload=1
92
+ title="Редагувати" form='user_group_access.form'>
93
+ <i class="fa fa-pencil"></i></a>
94
+ <a class="btn btn-default btn-xs" reload=1 del="admin.user_group_access/{{ugt_id}}"
95
+ title="Видалити"><i class="fa fa-trash" aria-hidden="true"></i></a>
96
+ </td>
97
+ </tr>
98
+ {{/each}}
99
+ </tbody>
100
+ </table>
101
+ {{/contentList}}
102
+ </div>
103
+ </div>
104
+ </div>
105
+ </div>
106
+
107
+ <div class="col-lg-6">
108
+ <div class="ibox">
109
+ <div class="ibox-title">
110
+ <h5>Користувачі</h5>
111
+ <div class="ibox-tools">
112
+
113
+ <a reload="1" add="admin.user_group_rel"
114
+ obj="user_group_id={{user_group_id}}#access_granted={{uid}}" form="admin.user_group_rel.form"
115
+ class="btn btn-primary btn-sm" title="Додати">Додати</a>
116
+ </div>
117
+ </div>
118
+ <div class="ibox-content">
119
+ {{{_vue "/vue/core/components/UIKit/list/vs-table-simple.vue" parent=user_group_id
120
+ table="admin.user_group_rel.table" editable=1}}}
121
+ </div>
122
+ </div>
123
+ </div>
124
+ <div class="col-lg-6">
125
+
126
+ </div>
127
+ </div>
@@ -0,0 +1,130 @@
1
+ <style>
2
+ .table {
3
+ table-layout: fixed;
4
+ }
5
+
6
+ .label {
7
+ display: inline-block;
8
+ }
9
+ </style>
10
+
11
+ <div class="content m-t-md">
12
+ <div class="col-md-3">
13
+ <div class="ibox">
14
+ <div class="ibox-title">
15
+ <h5>Загальна інформація</h5>
16
+ <div class="ibox-tools">
17
+ <a edit="admin.users/{{@root.uid}}" form="form-users" class="btn btn-primary btn-sm">Редагувати</a>
18
+ </div>
19
+ </div>
20
+ <div class="ibox-content">
21
+ <table class="table">
22
+ <tbody>
23
+ <tr>
24
+ <td><b>ПІБ</b></td>
25
+ <td>{{sur_name}} {{user_name}} {{father_name}}</td>
26
+ </tr>
27
+ <tr>
28
+ <td><b>Електронна пошта</b></td>
29
+ <td>{{email}}</td>
30
+ </tr>
31
+ <tr>
32
+ <td><b>Телефон</b></td>
33
+ <td>{{phone}}</td>
34
+ </tr>
35
+ <tr>
36
+ <td><b>РНОКПП</b></td>
37
+ <td>{{user_rnokpp}}</td>
38
+ </tr>
39
+ <tr>
40
+ <td><b>ЄДРПОУ</b></td>
41
+ <td>{{organ_edrpou}}</td>
42
+ </tr>
43
+
44
+ </tbody>
45
+ </table>
46
+ </div>
47
+ </div>
48
+ <div class="ibox">
49
+ <div class="ibox-title d-flex align-items-center justify-content-between">
50
+ <h3>Перелік логів</h3>
51
+ </div>
52
+ <div class="ibox-content">
53
+ {{#contentList table="log.table_log" fields="*,_table as table_name" query="uid='{{uid}}'" order="cdate
54
+ desc" sql1=1}}
55
+ {{#if rows}}
56
+ <table class="table table-striped">
57
+ <thead>
58
+ <th width="25%">Дата</th>
59
+ <th width="25%">Тип</th>
60
+ <th width="50%">Таблиця</th>
61
+ </thead>
62
+ <tbody>
63
+ {{#each rows}}
64
+ <tr>
65
+ <td>{{formatDate cdate format="dd.MM.yy hh:mm"}}</td>
66
+ <td>{{_type}}</td>
67
+ <td>{{{table_name}}}</td>
68
+ </tr>
69
+ {{/each}}
70
+ </tbody>
71
+ </table>
72
+ {{^}}
73
+ {{mls ua='Поки що не зафіксовано активності'}}
74
+ {{/if}}
75
+ {{/contentList}}
76
+ </div>
77
+ </div>
78
+ </div>
79
+ </div>
80
+
81
+ <div class="content m-t-md">
82
+ <div class="col-md-9">
83
+ <div class="ibox">
84
+ <div class="ibox-title">
85
+ <h3>Перелік груп</h3>
86
+ <div class="ibox-tools">
87
+ <a add="admin.user_group_rel" form="admin.user_group_rel_2.form" reload=1
88
+ obj="user_uid={{uid}}#access_granted={{@root.user.uid}}" class="btn btn-primary btn-sm"><i
89
+ class="fa fa-pensil"></i>Додати групу</a>
90
+ </div>
91
+ </div>
92
+ <div class="ibox-content">
93
+
94
+ {{#contentList table="admin.user_group_rel" limit=500 query="user_uid='{{uid}}'" order="cdate desc"
95
+ sql1=1}}
96
+ <table class="table table-bordered">
97
+ <thead>
98
+ <th>Група</th>
99
+ <th>Права</th>
100
+ <th>Користувач який надав доступ</th>
101
+ <th>Час долучення</th>
102
+ <th>Закінчення доступу</th>
103
+ <th>Дії</th>
104
+ </thead>
105
+ {{#each rows}}
106
+ <tbody>
107
+ <td><a href="/management.user_group/mode=card/view={{user_group_id}}">{{select user_group_id
108
+ data="user_group"}}</a>
109
+ </td>
110
+ <td>{{select user_access data="user_access" return="Згідно налаштувань інтерфейсів"}}
111
+ </td>
112
+ <td>{{select access_granted data="user_id"}}</td>
113
+ <td>{{formatDate cdate format="dd.mm.yy/hh:sec"}}</td>
114
+ <td>{{formatDate expiration}}</td>
115
+ <td>
116
+ <a class="btn btn-default btn-xs" edit="admin.user_group_rel/{{ugr_id}}" reload=1
117
+ title="Редагувати" form='admin.user_group_rel_3.form'>
118
+ <i class="fa fa-pencil"></i></a>
119
+ <a class="btn btn-default btn-xs" reload=1 del="admin.user_group_rel/{{ugr_id}}"
120
+ title="Видалити"><i class="fa fa-trash text-danger" aria-hidden="true"></i></a>
121
+ </td>
122
+ </tbody>
123
+ {{/each}}
124
+ </table>
125
+ {{/contentList}}
126
+ </div>
127
+ </div>
128
+ </div>
129
+
130
+ </div>
@@ -0,0 +1,202 @@
1
+ {{#unless opt.simple}} <div class="el-card__header">
2
+ <div class="row wrapper white-bg ">
3
+ <div class="col-xs-8 card_title_row">
4
+ <h2 class="card_title">&nbsp;&nbsp;
5
+ <span class='pull-left'> {{{coalesce (lookup grid.title_full @root._lang) (lookup grid @root._lang)}}}
6
+ </span>
7
+
8
+
9
+ </h2>
10
+
11
+ <ol class="breadcrumb pull-left">
12
+ <li class='system'><a _href="/">Home</a></li>
13
+ {{#unless @root.opt.breadcrumb}}
14
+
15
+ <li class='system'><a filter-user='{{#if grid.key_parent_id}}filter=#{{/if}}mode={{{coalesce opt.mode 'table'}}}#view='tag='{{{_code}}}'
16
+ title="{{{coalesce (lookup grid.title_full @root._lang) grid.title_full}}}">{{{coalesce (lookup
17
+ grid.title_full @root._lang) (lookup grid @root._lang) }}}</a></li>
18
+
19
+ {{/unless}}
20
+ </ol>
21
+
22
+ </div>
23
+ <div class="col-xs-4 title-action-row">
24
+
25
+ <div class="title-action">
26
+ {{#if grid.help}}
27
+ <a class="btn btn-white btn-sm m-r-md" target="_blank" href='{{grid.help}}'><i class="fa fa-question"></i></a>
28
+ {{/if}}
29
+ {{#if @root.setting.core.help_btn}}
30
+ <button type='button' class='btn btn-primary' vs-load="help"><i class="fa fa-question"></i></button>
31
+ {{/if}}
32
+ {{#ifCond 'stat' 'in' grid.table_mode}}
33
+ <a class="btn btn-white" tag='{{{_code}}}' filter-user='mode=stat'><i class="fa fa-bar-chart"></i></a>
34
+ {{/ifCond}}
35
+
36
+
37
+ <a class="btn btn-white returnlist" tag='{{{_code}}}' filter-user='mode=table#view='>
38
+ {{{mls 'return_back' ua='Повернутись до реєстру' ru= 'Вернуться в реестр' en='Return to list' de='Zurück zur Liste'}}}
39
+ </a>
40
+
41
+ <!--a class="btn btn-white" tag='{{{_code}}}' filter-user='mode=card'><i class="fa fa-address-card-o"></i></a-->
42
+
43
+ {{{grid.add_actions}}}
44
+ {{#if grid.add_form}}
45
+ <a add="{{{coalesce grid.table model}}}" tag="{{{_code}}}" form="{{{grid.add_form}}}" modal1=1
46
+ class="btn btn-primary btn-sm" title="{{{mls 'add'}}}">&nbsp;{{{mls 'add' ua='Додати'
47
+ en='Add' ru='Добавить' de='Hinzufügen'}}}</a>
48
+
49
+ {{/if}}
50
+ </div>
51
+
52
+
53
+ </div>
54
+ </div>
55
+ </div>
56
+ {{/unless}}
57
+
58
+ <div class="el-card__body">
59
+ <!---spinner -->
60
+
61
+
62
+ {{{set '_q' opt.query_text}}}
63
+
64
+ <div class='row table-standart__content'>
65
+ <div class='{{#ifCond ' filter' 'in' panel}}{{#if
66
+ @root.grid.filter_list.length}}col-md-9{{^}}col-md-12{{/if}}{{^}}col-md-12{{/ifCond}} content'>
67
+
68
+
69
+ {{{contentList timing=opt.timing empty=opt.empty add_button_view=opt.add_button_view
70
+ search_column=(coalesce opt.search_column grid.search_column)
71
+ name=opt.name
72
+ breadcrumb=opt.breadcrumb
73
+ obj=opt.obj
74
+ nocache=opt.nocache
75
+ table_mode=grid.table_mode
76
+ simple=opt.simple
77
+ olap=opt.olap
78
+ agg=grid.agg_column
79
+ sql_count=opt.sql_count
80
+ limit=opt.limit
81
+ order=(coalesce opt.order grid.orderby)
82
+ hash=(coalesce opt.hash req.query.data req.query)
83
+ tag=(coalesce hash.tag opt.tag _code)
84
+ table=(coalesce opt.table opt.name model)
85
+ pk=grid.key
86
+ count=1
87
+ mode=opt.mode
88
+ model=grid.table model1=grid.model
89
+ group_list=opt.group_list
90
+ card=opt.card
91
+ filter_list=grid.filter_list
92
+ data=opt.data _name=(coalesce @root._name opt.name) _col=@root._col colModel=grid.colModel
93
+ col_def=grid.col_def action1=@root.grid.action
94
+ q=(coalesce @root._q grid.query '1=1')
95
+ query="{{{_hb_sync template=(coalesce @root._q grid.query opt.q '1=1')}}} {{#ifCond 'card' 'in'
96
+ hash.mode}} and {{#if @root.hash.view}} {{{coalesce grid.key opt.pk}}} = '{{{escapeQuotes
97
+ @root.hash.view}}}'{{^}}true{{/if}}{{/ifCond}} "
98
+ sql=(coalesce opt.sqlTable req.query.sqlTable) sqlFilter=opt.sqlFilter
99
+ title_column=grid.title_column
100
+ parent_key=grid.key_parent_id
101
+
102
+ add_form=grid.add_form
103
+ panel=panel
104
+ html_panel_right=grid.html_panel_right
105
+ order_list=grid.order_list
106
+ template_all="table-standard-pt-inline"
107
+ }}}
108
+ </div>
109
+ <div class='col-md-3 filter table-standart__content--filter' style='border-left:1px solid #f3f3f3'>
110
+
111
+ {{#ifCond 'filter' 'in' panel}}
112
+ {{#if grid.filter_list.length}}
113
+ {{#ifCond @root.req.query.vue '==' '0'}}
114
+ {{{filterList tag=(coalesce hash.tag opt.tag _code) filter=grid.filter_list table=(coalesce opt.table
115
+ opt.name) template="core.filter_simple.pt" sql=@root.opt.sqlFilter query=(coalesce @root._q grid.query
116
+ opt.q opt.query '1=1')}}}
117
+ {{^}}
118
+
119
+ {{{filterListVue tag=(coalesce hash.tag opt.tag _code) tags=false filter=grid.filter_list
120
+ table=(coalesce opt.table
121
+ opt.name opt.model) template="core.filter_simple.pt" sql=@root.opt.sqlFilter query=(coalesce @root._q
122
+ grid.query opt.q opt.query '1=1')}}}
123
+ {{/ifCond}}
124
+ {{/if}}
125
+ {{/ifCond}}
126
+ </div>
127
+ </div>
128
+ </div>
129
+ <style>
130
+ .breadcrumb>li:last-child {
131
+ font-weight: 600;
132
+ }
133
+
134
+ .tooltip-inner {
135
+ max-width: 400px;
136
+ }
137
+
138
+ td.filter:hover {
139
+ background: lightgreen;
140
+ }
141
+
142
+ .checkbox input[type="checkbox"].minus:checked+label::after,
143
+ .checkbox input[type="radio"].minus:checked+label::after {
144
+ font-family: "FontAwesome";
145
+ content: "\f05e";
146
+ }
147
+
148
+ .ellipsis {
149
+ overflow: hidden;
150
+ white-space: nowrap;
151
+ text-overflow: ellipsis;
152
+ word-break: break-all;
153
+ word-wrap: break-word;
154
+ }
155
+ .doubleScroll-scroll-wrapper{
156
+ overflow-x:auto !important;
157
+ }
158
+ h2.card_title{
159
+ font-size:24px;
160
+ font-weight: 100;
161
+ margin-bottom: 10px;
162
+ }
163
+
164
+ .btn.btn-white.returnlist {
165
+ text-wrap: wrap;
166
+ text-align: start;
167
+
168
+
169
+ @media(max-width: 500px) {
170
+ & {
171
+ margin-bottom: 5px;
172
+ }
173
+ }
174
+ }
175
+
176
+ @media(max-width: 500px) {
177
+ .card_title_row {
178
+ width: 55%;
179
+ }
180
+ .title-action-row {
181
+ width: 45%;
182
+ }
183
+ }
184
+
185
+ @media (max-width: 480px) {
186
+ .row.table-standart__content {
187
+
188
+ }
189
+ .table-standart__content {
190
+ display: flex;
191
+ flex-direction: column;
192
+ }
193
+ }
194
+
195
+ .table-standart__content {
196
+ .pull-right {
197
+ a.btn.btn-link {
198
+ padding: 0;
199
+ }
200
+ }
201
+ }
202
+ </style>
@@ -0,0 +1,3 @@
1
+ {
2
+ "count1": 1111
3
+ }
@@ -0,0 +1 @@
1
+ select account_id, account_name from crm_acc.crm_account
@@ -0,0 +1,44 @@
1
+ {
2
+ "table": "gis.dataset",
3
+ "key": "dataset_id",
4
+ "columns": [
5
+ {
6
+ "name": "dataset_id",
7
+ "title": "22"
8
+ },
9
+ {
10
+ "name": "dataset_name",
11
+ "title": "dataset_name"
12
+ }
13
+ ],
14
+ "filters": [
15
+ {
16
+ "ua": "Будівля",
17
+ "data": "cp_building",
18
+ "name": "cp_build_id",
19
+ "type": "Text"
20
+ },
21
+ {
22
+ "ua": "Рік будівництва",
23
+ "name": "cp_year",
24
+ "type": "Text"
25
+ },
26
+ {
27
+ "ua": "Замовник ПКД",
28
+ "data": "customer_name",
29
+ "name": "cp_pkd",
30
+ "type": "Text"
31
+ },
32
+ {
33
+ "ua": "Наявність енергоаудиту",
34
+ "name": "cp_date_en_audit",
35
+ "type": "Date"
36
+ },
37
+ {
38
+ "ua": "Знак сертифікату",
39
+ "data": "cp_certificate_mark",
40
+ "name": "cp_certificate_mark",
41
+ "type": "Check"
42
+ }
43
+ ]
44
+ }
@@ -0,0 +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
+ ]
113
+ }