@opengis/admin 0.1.53 → 0.1.55

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. package/README.md +29 -29
  2. package/config.js +4 -4
  3. package/dist/{add-page-DxsI9oTt.js → add-page-CWG_sjY-.js} +1 -1
  4. package/dist/{admin-interface-D1Z9zulm.js → admin-interface-AsFloazv.js} +67 -67
  5. package/dist/{admin-view-DE_wFOGr.js → admin-view-QbbIb27N.js} +2 -2
  6. package/dist/admin.js +1 -1
  7. package/dist/admin.umd.cjs +40 -40
  8. package/dist/{card-page-BEJ2rFfi.js → card-page-DCoKtnma.js} +22 -22
  9. package/dist/{card-view-RRo1C2UV.js → card-view-B-tInKRH.js} +1 -1
  10. package/dist/{edit-page-D4hRn8sR.js → edit-page-BBYenvB9.js} +1 -1
  11. package/dist/{import-file-CL8r9Pju.js → import-file-YqGiZOb_.js} +20 -13
  12. package/dist/style.css +1 -1
  13. package/module/settings/card/admin.roles.table/access.hbs +27 -27
  14. package/module/settings/card/admin.roles.table/general_info.hbs +16 -16
  15. package/module/settings/card/admin.roles.table/index.yml +14 -14
  16. package/module/settings/card/admin.roles.table/users.hbs +27 -27
  17. package/module/settings/card/admin.routes.table/general_info.hbs +40 -40
  18. package/module/settings/card/admin.routes.table/index.yml +8 -8
  19. package/module/settings/card/admin.routes.table/users.hbs +33 -33
  20. package/module/settings/card/admin.users.table/general_info.hbs +25 -25
  21. package/module/settings/card/admin.users.table/index.yml +12 -12
  22. package/module/settings/card/admin.users.table/logs.hbs +30 -30
  23. package/module/settings/card/admin.users.table/user_roles.hbs +24 -24
  24. package/module/settings/cls/core.actions.json +13 -13
  25. package/module/settings/cls/core.scope.json +13 -13
  26. package/module/settings/cls/properties.site_status.json +13 -13
  27. package/module/settings/cls/properties.widget_status.json +13 -13
  28. package/module/settings/cls/users.user_type.json +13 -13
  29. package/module/settings/form/admin.access.form.json +36 -36
  30. package/module/settings/form/admin.custom_column.form.json +71 -71
  31. package/module/settings/form/admin.properties.form.json +15 -15
  32. package/module/settings/form/admin.roles.form.json +19 -19
  33. package/module/settings/form/admin.routes.form.json +25 -25
  34. package/module/settings/form/admin.user_properties.form.json +15 -15
  35. package/module/settings/form/admin.user_roles.form.json +21 -21
  36. package/module/settings/form/admin.users.form.json +150 -150
  37. package/module/settings/form/user.user_roles.form.json +13 -13
  38. package/module/settings/interface/admin.properties.json +4 -4
  39. package/module/settings/interface/admin.roles.json +4 -4
  40. package/module/settings/interface/admin.routes.json +4 -4
  41. package/module/settings/interface/admin.users.json +4 -4
  42. package/module/settings/menu.json +50 -50
  43. package/module/settings/select/core.roles.json +2 -2
  44. package/module/settings/select/core.routes.sql +1 -1
  45. package/module/settings/select/core.user_uid.sql +1 -1
  46. package/module/settings/table/admin.access.table.json +77 -77
  47. package/module/settings/table/admin.custom_column.table.json +94 -94
  48. package/module/settings/table/admin.properties.table.json +33 -33
  49. package/module/settings/table/admin.roles.table.json +58 -58
  50. package/module/settings/table/admin.routes.table.json +67 -67
  51. package/module/settings/table/admin.user_properties.table.json +28 -28
  52. package/module/settings/table/admin.user_roles.table.json +66 -66
  53. package/module/settings/table/admin.users.table.json +119 -119
  54. package/package.json +81 -81
  55. package/plugin.js +162 -162
  56. package/server/helpers/controllers/badge.js +11 -11
  57. package/server/helpers/controllers/hb.js +2 -2
  58. package/server/helpers/controllers/map.js +2 -2
  59. package/server/helpers/controllers/mls.js +2 -2
  60. package/server/helpers/controllers/vue.js +2 -2
  61. package/server/helpers/index.mjs +13 -13
  62. package/server/plugins/docs.js +28 -28
  63. package/server/plugins/hook.js +229 -229
  64. package/server/plugins/vite.js +69 -69
  65. package/server/routes/calendar/controllers/calendar.data.js +89 -0
  66. package/server/routes/calendar/index.mjs +17 -0
  67. package/server/routes/data/controllers/cardData.js +56 -56
  68. package/server/routes/data/controllers/cardTabData.js +49 -49
  69. package/server/routes/data/controllers/funcs/getFilterSQL/index.js +92 -92
  70. package/server/routes/data/controllers/funcs/getFilterSQL/util/formatValue.js +170 -170
  71. package/server/routes/data/controllers/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
  72. package/server/routes/data/controllers/funcs/getFilterSQL/util/getFilterQuery.js +64 -64
  73. package/server/routes/data/controllers/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
  74. package/server/routes/data/controllers/funcs/getFilterSQL/util/getTableSql.js +34 -34
  75. package/server/routes/data/controllers/tableData.js +145 -149
  76. package/server/routes/data/controllers/tableDataId.js +27 -27
  77. package/server/routes/data/controllers/tableFilter.js +63 -63
  78. package/server/routes/data/controllers/utils/assignTokens.js +30 -30
  79. package/server/routes/data/controllers/utils/getColumns.js +21 -21
  80. package/server/routes/data/index.mjs +15 -15
  81. package/server/routes/data/schema.js +7 -7
  82. package/server/routes/menu/controllers/getMenu.js +34 -35
  83. package/server/routes/menu/index.mjs +5 -5
  84. package/server/routes/notifications/controllers/readNotifications.js +30 -30
  85. package/server/routes/notifications/controllers/userNotifications.js +64 -64
  86. package/server/routes/notifications/hook/onWidgetSet.js +63 -63
  87. package/server/routes/notifications/index.mjs +40 -40
  88. package/server/routes/properties/controllers/admin.properties.get.js +29 -29
  89. package/server/routes/properties/controllers/user.properties.get.js +34 -34
  90. package/server/routes/properties/controllers/user.properties.post.js +30 -30
  91. package/server/routes/properties/funcs/getSettings.js +56 -56
  92. package/server/routes/properties/funcs/setSettings.js +44 -44
  93. package/server/routes/properties/funcs/utils/dataInsert.js +26 -26
  94. package/server/routes/properties/index.mjs +26 -26
  95. package/server/routes/root.mjs +3 -3
  96. package/server/routes/templates/controllers/getTemplate.js +16 -16
  97. package/server/routes/templates/index.mjs +14 -14
  98. package/server/templates/cls/itree.recrzone_category.json +73 -73
  99. package/server/templates/cls/test.json +9 -9
  100. package/server/templates/form/admin.user_cls.data.form.json +49 -49
  101. package/server/templates/form/admin.user_group_rel.form.json +21 -21
  102. package/server/templates/form/cp_building.form.json +32 -32
  103. package/server/templates/form/form-user-pass.json +10 -10
  104. package/server/templates/form/form-user_group.json +39 -39
  105. package/server/templates/form/form-users.json +156 -156
  106. package/server/templates/form/user_group_access.form.json +22 -22
  107. package/server/templates/select/account_id.json +2 -2
  108. package/server/templates/table/gis.dataset.table.json +43 -43
  109. package/server/templates/table/management.user_group.table.json +112 -112
  110. package/server/templates/table/management.users.table.json +126 -126
  111. package/utils.js +21 -50
@@ -1,5 +1,5 @@
1
- import { _ as V, u as $, a as z } from "./import-file-CL8r9Pju.js";
2
- import { resolveComponent as N, openBlock as n, createElementBlock as c, createElementVNode as u, toDisplayString as C, createVNode as m, withCtx as q, createTextVNode as B, normalizeClass as T, Fragment as k, renderList as M, createBlock as L, resolveDynamicComponent as H, createCommentVNode as v } from "vue";
1
+ import { _ as V, u as $, a as z } from "./import-file-YqGiZOb_.js";
2
+ import { resolveComponent as N, openBlock as n, createElementBlock as c, createElementVNode as d, toDisplayString as C, createVNode as m, withCtx as q, createTextVNode as B, normalizeClass as T, Fragment as k, renderList as M, createBlock as L, resolveDynamicComponent as H, createCommentVNode as v } from "vue";
3
3
  const E = {
4
4
  data() {
5
5
  return {
@@ -18,9 +18,9 @@ const E = {
18
18
  return r || this.$router.replace("/404"), r == null ? void 0 : r.path;
19
19
  },
20
20
  getTitle() {
21
- var t, r, a, l, s, h, i, x, g, d, o, j, w, e, y;
21
+ var t, r, a, l, s, h, i, x, g, u, o, j, w, e, y;
22
22
  if ((a = (r = (t = this.objectData) == null ? void 0 : t.rows) == null ? void 0 : r[0]) != null && a.name)
23
- return ((i = (h = (s = (l = this.objectData) == null ? void 0 : l.rows) == null ? void 0 : s[0]) == null ? void 0 : h.name) == null ? void 0 : i.length) < 35 ? (d = (g = (x = this.objectData) == null ? void 0 : x.rows) == null ? void 0 : g[0]) == null ? void 0 : d.name : ((e = (w = (j = (o = this.objectData) == null ? void 0 : o.rows) == null ? void 0 : j[0]) == null ? void 0 : w.name) == null ? void 0 : e.slice(0, 35)) + " ...";
23
+ return ((i = (h = (s = (l = this.objectData) == null ? void 0 : l.rows) == null ? void 0 : s[0]) == null ? void 0 : h.name) == null ? void 0 : i.length) < 35 ? (u = (g = (x = this.objectData) == null ? void 0 : x.rows) == null ? void 0 : g[0]) == null ? void 0 : u.name : ((e = (w = (j = (o = this.objectData) == null ? void 0 : o.rows) == null ? void 0 : j[0]) == null ? void 0 : w.name) == null ? void 0 : e.slice(0, 35)) + " ...";
24
24
  {
25
25
  const b = (y = this.flattenMenu($.value)) == null ? void 0 : y.find(
26
26
  (p) => {
@@ -63,8 +63,8 @@ const E = {
63
63
  if ((r = (t = this.$route) == null ? void 0 : t.query) != null && r.tab)
64
64
  this.component = (l = (a = this.$route) == null ? void 0 : a.query) == null ? void 0 : l.tab;
65
65
  else {
66
- const d = (h = (s = this.objectData) == null ? void 0 : s.panels) == null ? void 0 : h.find((o) => (o == null ? void 0 : o.type) === "tabs");
67
- (i = d == null ? void 0 : d.items) != null && i.length && (this.component = ((x = d.items[0]) == null ? void 0 : x.component) || ((g = d.items[0]) == null ? void 0 : g.name));
66
+ const u = (h = (s = this.objectData) == null ? void 0 : s.panels) == null ? void 0 : h.find((o) => (o == null ? void 0 : o.type) === "tabs");
67
+ (i = u == null ? void 0 : u.items) != null && i.length && (this.component = ((x = u.items[0]) == null ? void 0 : x.component) || ((g = u.items[0]) == null ? void 0 : g.name));
68
68
  }
69
69
  },
70
70
  flattenMenu(t) {
@@ -77,7 +77,7 @@ const E = {
77
77
  }, A = {
78
78
  style: { width: "calc(100vw - 260px)", height: "calc(100vh - 60px)" },
79
79
  class: "p-4 overflow-y-auto bg-gray-50"
80
- }, G = { class: "h-[76px] bg-gray-50 flex items-center justify-between px-[30px]" }, O = { class: "" }, R = { class: "text-lg font-semibold md:text-xl text-stone-800 dark:text-neutral-200" }, F = { class: "flex items-center gap-[6px]" }, I = {
80
+ }, G = { class: "h-[76px] bg-gray-50 flex items-center justify-between pl-[15px]" }, O = { class: "" }, R = { class: "text-lg font-semibold md:text-xl text-stone-800 dark:text-neutral-200" }, F = { class: "flex items-center gap-[6px]" }, I = {
81
81
  key: 0,
82
82
  class: "bg-white border rounded-xl"
83
83
  }, P = { class: "p-[10px] pl-[20px] text-xl" }, S = ["innerHTML"], J = { key: 1 }, K = { class: "p-[10px] pl-[20px] text-xl" }, Q = {
@@ -97,18 +97,18 @@ const E = {
97
97
  class: "p-[20px] border-t"
98
98
  }, oe = ["innerHTML"];
99
99
  function re(t, r, a, l, s, h) {
100
- var x, g, d;
100
+ var x, g, u;
101
101
  const i = N("router-link");
102
102
  return n(), c("div", A, [
103
- u("div", G, [
104
- u("div", O, [
105
- u("button", {
103
+ d("div", G, [
104
+ d("div", O, [
105
+ d("button", {
106
106
  onClick: r[0] || (r[0] = (o) => t.$router.back()),
107
107
  class: "text-sm h-[20px] text-blue-600 font-medium hover:border-b hover:border-b-2 hover:border-b-blue-500"
108
108
  }, " До таблиці "),
109
- u("h2", R, C(h.getTitle), 1)
109
+ d("h2", R, C(h.getTitle), 1)
110
110
  ]),
111
- u("div", F, [
111
+ d("div", F, [
112
112
  m(i, {
113
113
  to: `/edit?table=${h.getRoute}&id=${(g = (x = t.$route) == null ? void 0 : x.params) == null ? void 0 : g.id}`,
114
114
  class: "inline-flex items-center px-3 py-2 text-sm font-medium text-white duration-300 bg-blue-600 border border-transparent rounded-lg gap-x-2 hover:bg-blue-700 hover:text-white"
@@ -120,18 +120,18 @@ function re(t, r, a, l, s, h) {
120
120
  }, 8, ["to"])
121
121
  ])
122
122
  ]),
123
- u("div", {
123
+ d("div", {
124
124
  class: T(["grid gap-[20px]", h.getGridClass()])
125
125
  }, [
126
- (n(!0), c(k, null, M((d = s.objectData) == null ? void 0 : d.panels, (o, j) => {
126
+ (n(!0), c(k, null, M((u = s.objectData) == null ? void 0 : u.panels, (o, j) => {
127
127
  var w;
128
128
  return n(), c("div", {
129
129
  key: j,
130
130
  class: T(h.getColClass(o.col))
131
131
  }, [
132
132
  o != null && o.name ? (n(), c("div", I, [
133
- u("h2", P, C((o == null ? void 0 : o.title) || "Панель"), 1),
134
- u("div", {
133
+ d("h2", P, C((o == null ? void 0 : o.title) || "Панель"), 1),
134
+ d("div", {
135
135
  class: "p-[20px] border-t",
136
136
  innerHTML: (w = s.objectData) == null ? void 0 : w.data[o == null ? void 0 : o.name]
137
137
  }, null, 8, S)
@@ -142,7 +142,7 @@ function re(t, r, a, l, s, h) {
142
142
  key: y,
143
143
  class: "border rounded-xl bg-white mb-[20px]"
144
144
  }, [
145
- u("h2", K, C((e == null ? void 0 : e.title) || "Панель"), 1),
145
+ d("h2", K, C((e == null ? void 0 : e.title) || "Панель"), 1),
146
146
  e != null && e.component ? (n(), c("div", Q, [
147
147
  (n(), L(H(e.component), {
148
148
  geometry: (p = (b = s.objectData) == null ? void 0 : b.rows[0]) == null ? void 0 : p.geom,
@@ -151,7 +151,7 @@ function re(t, r, a, l, s, h) {
151
151
  }, null, 8, ["geometry", "id"]))
152
152
  ])) : v("", !0),
153
153
  e != null && e.name ? (n(), c("div", U, [
154
- u("div", {
154
+ d("div", {
155
155
  innerHTML: (D = s.objectData) == null ? void 0 : D.data[e == null ? void 0 : e.name]
156
156
  }, null, 8, W)
157
157
  ])) : v("", !0)
@@ -159,7 +159,7 @@ function re(t, r, a, l, s, h) {
159
159
  }), 128))
160
160
  ])) : v("", !0),
161
161
  (o == null ? void 0 : o.type) === "tabs" ? (n(), c(k, { key: 2 }, [
162
- u("nav", X, [
162
+ d("nav", X, [
163
163
  (n(!0), c(k, null, M(o == null ? void 0 : o.items, (e) => (n(), c("button", {
164
164
  key: (e == null ? void 0 : e.name) || (e == null ? void 0 : e.component),
165
165
  onClick: (y) => s.component = (e == null ? void 0 : e.component) || (e == null ? void 0 : e.name),
@@ -181,7 +181,7 @@ function re(t, r, a, l, s, h) {
181
181
  }, null, 8, ["geometry", "id"]))
182
182
  ])) : v("", !0),
183
183
  e != null && e.name ? (n(), c("div", te, [
184
- u("div", {
184
+ d("div", {
185
185
  innerHTML: (D = s.objectData) == null ? void 0 : D.data[e == null ? void 0 : e.name]
186
186
  }, null, 8, oe)
187
187
  ])) : v("", !0)
@@ -194,7 +194,7 @@ function re(t, r, a, l, s, h) {
194
194
  ], 2)
195
195
  ]);
196
196
  }
197
- const ae = /* @__PURE__ */ V(E, [["render", re], ["__scopeId", "data-v-fcc7131b"]]);
197
+ const ae = /* @__PURE__ */ V(E, [["render", re], ["__scopeId", "data-v-e9d5b2dd"]]);
198
198
  export {
199
199
  ae as default
200
200
  };
@@ -1,5 +1,5 @@
1
1
  import { resolveComponent as e, openBlock as r, createBlock as t } from "vue";
2
- import { _ as c } from "./import-file-CL8r9Pju.js";
2
+ import { _ as c } from "./import-file-YqGiZOb_.js";
3
3
  const n = {};
4
4
  function s(_, p, a, i, f, m) {
5
5
  const o = e("router-view");
@@ -1,4 +1,4 @@
1
- import { _ as m, u as b, a as i } from "./import-file-CL8r9Pju.js";
1
+ import { _ as m, u as b, a as i } from "./import-file-YqGiZOb_.js";
2
2
  import { resolveComponent as d, openBlock as u, createElementBlock as h, createElementVNode as n, createBlock as p, createCommentVNode as f } from "vue";
3
3
  const g = {
4
4
  data() {
@@ -3577,17 +3577,17 @@ function LI(t, e) {
3577
3577
  return [i, n, r];
3578
3578
  }
3579
3579
  const FI = [
3580
- { name: "edit", path: "/edit", component: () => import("./edit-page-D4hRn8sR.js") },
3581
- { name: "add", path: "/add", component: () => import("./add-page-DxsI9oTt.js") },
3580
+ { name: "edit", path: "/edit", component: () => import("./edit-page-BBYenvB9.js") },
3581
+ { name: "add", path: "/add", component: () => import("./add-page-CWG_sjY-.js") },
3582
3582
  {
3583
3583
  name: "card-view",
3584
3584
  path: "/card",
3585
- component: () => import("./card-view-RRo1C2UV.js"),
3585
+ component: () => import("./card-view-B-tInKRH.js"),
3586
3586
  children: [{
3587
3587
  name: "table",
3588
3588
  path: ":table",
3589
- component: () => import("./card-view-RRo1C2UV.js"),
3590
- children: [{ name: "card", path: ":id", component: () => import("./card-page-BEJ2rFfi.js") }]
3589
+ component: () => import("./card-view-B-tInKRH.js"),
3590
+ children: [{ name: "card", path: ":id", component: () => import("./card-page-DCoKtnma.js") }]
3591
3591
  }]
3592
3592
  }
3593
3593
  ], BI = {}, NI = { class: "bg-gray-200 w-full px-16 md:px-0 h-screen flex items-center justify-center" }, $I = { class: "bg-white border border-gray-200 flex flex-col items-center justify-center px-4 md:px-8 lg:px-24 py-8 rounded-lg shadow-2xl" };
@@ -3635,14 +3635,14 @@ const jI = /* @__PURE__ */ Rt(BI, [["render", VI]]), UI = (t) => {
3635
3635
  {
3636
3636
  path: "/",
3637
3637
  name: "home",
3638
- component: () => import("./admin-view-DE_wFOGr.js"),
3638
+ component: () => import("./admin-view-QbbIb27N.js"),
3639
3639
  children: [
3640
3640
  ...e,
3641
3641
  ...t,
3642
3642
  // { path: '/', redirect: '/home' },
3643
3643
  {
3644
3644
  path: "/:catchAll(.*)",
3645
- component: () => import("./admin-interface-D1Z9zulm.js")
3645
+ component: () => import("./admin-interface-AsFloazv.js")
3646
3646
  }
3647
3647
  ]
3648
3648
  }
@@ -25356,7 +25356,7 @@ function qL(t, e, i, n, r, l) {
25356
25356
  ]))
25357
25357
  ], 4);
25358
25358
  }
25359
- const WL = /* @__PURE__ */ Rt(BL, [["render", qL], ["__scopeId", "data-v-3f5a9aff"]]), r1 = {
25359
+ const WL = /* @__PURE__ */ Rt(BL, [["render", qL], ["__scopeId", "data-v-14698eb6"]]), r1 = {
25360
25360
  width: 200,
25361
25361
  show: !0,
25362
25362
  position: "horizontal"
@@ -25500,7 +25500,7 @@ function eF(t, e, i, n, r, l) {
25500
25500
  ]))
25501
25501
  ], 2);
25502
25502
  }
25503
- const tF = /* @__PURE__ */ Rt(GL, [["render", eF], ["__scopeId", "data-v-deb51e0a"]]), { Map: iF, NavigationControl: nF, Popup: rF } = zL, sF = {
25503
+ const tF = /* @__PURE__ */ Rt(GL, [["render", eF], ["__scopeId", "data-v-180f4367"]]), { Map: iF, NavigationControl: nF, Popup: rF } = zL, sF = {
25504
25504
  mixins: [FL],
25505
25505
  components: { VsMapPopup: tF },
25506
25506
  props: {
@@ -31047,7 +31047,7 @@ function tN(t, e) {
31047
31047
  let r = [];
31048
31048
  for (let l in i) {
31049
31049
  let u = i[l];
31050
- u.groups.indexOf(e) > -1 && r.push(u);
31050
+ u.isInGroup(e) && r.push(u);
31051
31051
  }
31052
31052
  return r.length == 0 && t.err("No node type or group '" + e + "' found"), r;
31053
31053
  }
@@ -31243,6 +31243,13 @@ let F1 = class F2 {
31243
31243
  return this.isLeaf || !!this.spec.atom;
31244
31244
  }
31245
31245
  /**
31246
+ Return true when this node type is part of the given
31247
+ [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).
31248
+ */
31249
+ isInGroup(e) {
31250
+ return this.groups.indexOf(e) > -1;
31251
+ }
31252
+ /**
31246
31253
  The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.
31247
31254
  */
31248
31255
  get whitespace() {
@@ -31859,7 +31866,7 @@ class $1 {
31859
31866
  this.findInside(e), i.getContent(e, this.parser.schema).forEach((y) => this.insertNode(y, n));
31860
31867
  else {
31861
31868
  let y = e;
31862
- typeof i.contentElement == "string" ? y = e.querySelector(i.contentElement) : typeof i.contentElement == "function" ? y = i.contentElement(e) : i.contentElement && (y = i.contentElement), this.findAround(e, y, !0), this.addAll(y, n);
31869
+ typeof i.contentElement == "string" ? y = e.querySelector(i.contentElement) : typeof i.contentElement == "function" ? y = i.contentElement(e) : i.contentElement && (y = i.contentElement), this.findAround(e, y, !0), this.addAll(y, n), this.findAround(e, y, !1);
31863
31870
  }
31864
31871
  l && this.sync(a) && this.open--;
31865
31872
  }
@@ -31989,7 +31996,7 @@ class $1 {
31989
31996
  return !1;
31990
31997
  } else {
31991
31998
  let S = y > 0 || y == 0 && r ? this.nodes[y].type : n && y >= l ? n.node(y - l).type : null;
31992
- if (!S || S.name != _ && S.groups.indexOf(_) == -1)
31999
+ if (!S || S.name != _ && !S.isInGroup(_))
31993
32000
  return !1;
31994
32001
  y--;
31995
32002
  }
@@ -47056,7 +47063,7 @@ function vH(t, e, i, n, r, l) {
47056
47063
  ], 40, _H))), 128))
47057
47064
  ]);
47058
47065
  }
47059
- const xH = /* @__PURE__ */ Rt(gH, [["render", vH], ["__scopeId", "data-v-95b2773a"]]), bH = {
47066
+ const xH = /* @__PURE__ */ Rt(gH, [["render", vH], ["__scopeId", "data-v-d46b1d2e"]]), bH = {
47060
47067
  components: {
47061
47068
  VsNoData: iH,
47062
47069
  VsChoceColor: EM,
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .vs-popover>div{text-align:start}.map-popup__vertical[data-v-3f5a9aff]{overflow:auto;max-height:300px}.map-popup__vertical[data-v-3f5a9aff]::-webkit-scrollbar{width:6px;height:6px;background-color:#f5f5f5}.map-popup__vertical[data-v-3f5a9aff]::-webkit-scrollbar-thumb{border-radius:5px;background-color:#dedede}.map-popup__vertical[data-v-3f5a9aff]::-webkit-scrollbar-track{background-color:#f5f5f5}.map__popup-body[data-v-3f5a9aff]{table-layout:fixed;width:100%}.map__popup-body-item[data-v-3f5a9aff]:not(:last-child){border-bottom:1px solid #eeeeee}.map__popup-body-item td[data-v-3f5a9aff]{width:50%;word-wrap:break-word;text-align:start}.map__popup-body-item td[data-v-3f5a9aff]:first-child{font-weight:600}.popup-image[data-v-deb51e0a]{max-width:100%;max-height:220px;margin-bottom:10px;-o-object-fit:contain;object-fit:contain}.maplibregl-ctrl-bottom-right,.maplibregl-popup-close-button{display:none}.widget-file .vs-button{background-color:#2563eb;color:#fff;font-size:.875rem;line-height:1.25rem;font-weight:600}.ui-dialog__modal div.flex.justify-between.items-center.py-3.px-4.border-b{border-bottom-width:0px;--tw-text-opacity: 1;color:#1f2937;font-weight:500;font-size:1.125rem;line-height:1.75rem;padding-bottom:0rem}.ui-dialog__modal .ui-dialog__content .p-4{padding-top:0rem}.widget-images__item-desc span:first-child:after{content:"";width:2px;height:2px;border-radius:50%;display:flex;align-items:center;background:#676a6c;margin:0 5px}.disabled{cursor:not-allowed!important}.item__text-content,.item{transition:all .5s cubic-bezier(.4,0,.2,1)}.item:hover .item__text-content{opacity:.8}.vs-widget-images .vs-button{background-color:#2563eb;color:#fff;font-size:.875rem;line-height:1.25rem;font-weight:600}.ProseMirror-focused{outline:none}.editor-toolbar{background-color:#f9fafb}.editor-content{min-height:160px}button{transition:background-color .2s ease;outline:none}button:focus{outline:none}.editor-content ul{margin-left:20px}.editor-content ul>li{list-style:disc}.editor-content ol{list-style-type:decimal;margin-left:20px}.editor-content pre{background-color:#e7e7e7;border-radius:4px;padding:0 2px}.mention-popup{background-color:#fafafa;padding:10px;border-radius:10px;box-shadow:0 4px 6px #0000001a;max-width:200px;overflow-y:auto;width:auto}.mention{padding:2px 4px;border-radius:8px;background-color:#e7e7e7}.mention-option{padding:5px 10px;cursor:pointer;transition:background-color .2s;border-radius:8px}.mention-option:hover{background-color:#f0f0f0}.border-top:not(:first-child){--tw-border-opacity: 1;border-color:#e5e7eb;border-top-width:1px}.widget-comment-form .vs-button{padding:.625rem 1rem;font-size:.75rem;line-height:1rem;font-weight:500}.widget-comment-form .vs-button:focus{border:transparent;--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254);--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 rgba(0, 0, 0, 0))}li[data-v-95b2773a]{cursor:move}.grid[data-v-fcc7131b]{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}.admin-wrapper[data-v-e777119e]{display:flex;height:100vh;align-items:start}.vs-popover__content>div{padding:.25rem}.hs-accordion-heading[data-v-4139bc00]{display:flex;align-items:center}.hs-accordion-toggle[data-v-4139bc00]{cursor:pointer}.hs-accordion-content[data-v-4139bc00]{padding-left:1.5rem}.table-info-card .editor-container{min-width:200px;width:270px}.slide-fade-enter-active[data-v-bbbe9039],.slide-fade-leave-active[data-v-bbbe9039]{transition:all .3s linear}.slide-fade-enter-from[data-v-bbbe9039],.slide-fade-leave-to[data-v-bbbe9039]{transform:translate(20px);opacity:0}
1
+ .vs-popover>div{text-align:start}.map-popup__vertical[data-v-14698eb6]{overflow:auto;max-height:300px}.map-popup__vertical[data-v-14698eb6]::-webkit-scrollbar{width:6px;height:6px;background-color:#f5f5f5}.map-popup__vertical[data-v-14698eb6]::-webkit-scrollbar-thumb{border-radius:5px;background-color:#dedede}.map-popup__vertical[data-v-14698eb6]::-webkit-scrollbar-track{background-color:#f5f5f5}.map__popup-body[data-v-14698eb6]{table-layout:fixed;width:100%}.map__popup-body-item[data-v-14698eb6]:not(:last-child){border-bottom:1px solid #eeeeee}.map__popup-body-item td[data-v-14698eb6]{width:50%;word-wrap:break-word;text-align:start}.map__popup-body-item td[data-v-14698eb6]:first-child{font-weight:600}.popup-image[data-v-180f4367]{max-width:100%;max-height:220px;margin-bottom:10px;-o-object-fit:contain;object-fit:contain}.maplibregl-ctrl-bottom-right,.maplibregl-popup-close-button{display:none}.widget-file .vs-button{background-color:#2563eb;color:#fff;font-size:.875rem;line-height:1.25rem;font-weight:600}.ui-dialog__modal div.flex.justify-between.items-center.py-3.px-4.border-b{border-bottom-width:0px;--tw-text-opacity: 1;color:#1f2937;font-weight:500;font-size:1.125rem;line-height:1.75rem;padding-bottom:0rem}.ui-dialog__modal .ui-dialog__content .p-4{padding-top:0rem}.widget-images__item-desc span:first-child:after{content:"";width:2px;height:2px;border-radius:50%;display:flex;align-items:center;background:#676a6c;margin:0 5px}.disabled{cursor:not-allowed!important}.item__text-content,.item{transition:all .5s cubic-bezier(.4,0,.2,1)}.item:hover .item__text-content{opacity:.8}.vs-widget-images .vs-button{background-color:#2563eb;color:#fff;font-size:.875rem;line-height:1.25rem;font-weight:600}.ProseMirror-focused{outline:none}.editor-toolbar{background-color:#f9fafb}.editor-content{min-height:160px}button{transition:background-color .2s ease;outline:none}button:focus{outline:none}.editor-content ul{margin-left:20px}.editor-content ul>li{list-style:disc}.editor-content ol{list-style-type:decimal;margin-left:20px}.editor-content pre{background-color:#e7e7e7;border-radius:4px;padding:0 2px}.mention-popup{background-color:#fafafa;padding:10px;border-radius:10px;box-shadow:0 4px 6px #0000001a;max-width:200px;overflow-y:auto;width:auto}.mention{padding:2px 4px;border-radius:8px;background-color:#e7e7e7}.mention-option{padding:5px 10px;cursor:pointer;transition:background-color .2s;border-radius:8px}.mention-option:hover{background-color:#f0f0f0}.border-top:not(:first-child){--tw-border-opacity: 1;border-color:#e5e7eb;border-top-width:1px}.widget-comment-form .vs-button{padding:.625rem 1rem;font-size:.75rem;line-height:1rem;font-weight:500}.widget-comment-form .vs-button:focus{border:transparent;--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254);--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 rgba(0, 0, 0, 0))}li[data-v-d46b1d2e]{cursor:move}.grid[data-v-e9d5b2dd]{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}.admin-wrapper[data-v-776e8b33]{display:flex;height:100vh;align-items:start}.vs-popover__content>div{padding:.25rem}.hs-accordion-heading[data-v-f5ecdb9a]{display:flex;align-items:center}.hs-accordion-toggle[data-v-f5ecdb9a]{cursor:pointer}.hs-accordion-content[data-v-f5ecdb9a]{padding-left:1.5rem}.table-info-card .editor-container{min-width:200px;width:270px}.slide-fade-enter-active[data-v-d1eaaef8],.slide-fade-leave-active[data-v-d1eaaef8]{transition:all .3s linear}.slide-fade-enter-from[data-v-d1eaaef8],.slide-fade-leave-to[data-v-d1eaaef8]{transform:translate(20px);opacity:0}
@@ -1,28 +1,28 @@
1
- {{#contentList table="admin.access" query="role_id='{{id}}'" order="cdate desc" sql1=1}}
2
- <table class="min-w-full divide-y divide-gray-200">
3
- <thead class="bg-gray-50">
4
- <tr>
5
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
- ID шаблона</th>
7
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
- Назва шаблону</th>
9
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
- Права</th>
11
- </tr>
12
- </thead>
13
- <tbody class="bg-white divide-y divide-gray-200">
14
- {{#each rows}}
15
- <tr>
16
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
17
- {{route_id}}</td>
18
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
19
- {{!-- {{route_id}} --}}
20
- </td>
21
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
22
- {{actions}}
23
- </td>
24
- </tr>
25
- {{/each}}
26
- </tbody>
27
- </table>
1
+ {{#contentList table="admin.access" query="role_id='{{id}}'" order="cdate desc" sql1=1}}
2
+ <table class="min-w-full divide-y divide-gray-200">
3
+ <thead class="bg-gray-50">
4
+ <tr>
5
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
+ ID шаблона</th>
7
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
+ Назва шаблону</th>
9
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
+ Права</th>
11
+ </tr>
12
+ </thead>
13
+ <tbody class="bg-white divide-y divide-gray-200">
14
+ {{#each rows}}
15
+ <tr>
16
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
17
+ {{route_id}}</td>
18
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
19
+ {{!-- {{route_id}} --}}
20
+ </td>
21
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
22
+ {{actions}}
23
+ </td>
24
+ </tr>
25
+ {{/each}}
26
+ </tbody>
27
+ </table>
28
28
  {{/contentList}}
@@ -1,17 +1,17 @@
1
- <dl class="-my-3 divide-y divide-gray-100 text-sm">
2
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
3
- <dt class="font-medium text-gray-900">Назва</dt>
4
- <dd class="text-gray-700 sm:col-span-2">{{name}}</dd>
5
- </div>
6
-
7
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
8
- <dt class="font-medium text-gray-900">On/Off</dt>
9
- <dd class="text-gray-700 sm:col-span-2">{{select enabled data="yes_no"}}</dd>
10
- </div>
11
-
12
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
13
- <dt class="font-medium text-gray-900">Опис</dt>
14
- <dd class="text-gray-700 sm:col-span-2">{{info}}</dd>
15
- </div>
16
-
1
+ <dl class="-my-3 divide-y divide-gray-100 text-sm">
2
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
3
+ <dt class="font-medium text-gray-900">Назва</dt>
4
+ <dd class="text-gray-700 sm:col-span-2">{{name}}</dd>
5
+ </div>
6
+
7
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
8
+ <dt class="font-medium text-gray-900">On/Off</dt>
9
+ <dd class="text-gray-700 sm:col-span-2">{{select enabled data="yes_no"}}</dd>
10
+ </div>
11
+
12
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
13
+ <dt class="font-medium text-gray-900">Опис</dt>
14
+ <dd class="text-gray-700 sm:col-span-2">{{info}}</dd>
15
+ </div>
16
+
17
17
  </dl>
@@ -1,14 +1,14 @@
1
- component: default
2
- panels:
3
- - name: general_info
4
- title: Загальна інформація
5
- col: 4
6
- - type: container
7
- col: 8
8
- items:
9
- - component: vs-widget-table
10
- title: Користувачі
11
- props: { table: admin.user_roles.table, query: role_id=@id, edit: true }
12
- - name: access
13
- title: Права до інтерфейсів
14
- col: 4
1
+ component: default
2
+ panels:
3
+ - name: general_info
4
+ title: Загальна інформація
5
+ col: 4
6
+ - type: container
7
+ col: 8
8
+ items:
9
+ - component: vs-widget-table
10
+ title: Користувачі
11
+ props: { table: admin.user_roles.table, query: role_id=@id, edit: true }
12
+ - name: access
13
+ title: Права до інтерфейсів
14
+ col: 4
@@ -1,28 +1,28 @@
1
- {{#contentList table="admin.user_roles" query="role_id='{{id}}'" order="cdate desc" limit="50" sql1=1}}
2
- <table class="min-w-full divide-y divide-gray-200">
3
- <thead class="bg-gray-50">
4
- <tr>
5
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
- Користувач</th>
7
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
- Закінчення терміну дії доступу до групи</th>
9
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
- Дата надання доступу</th>
11
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
12
- Хто надав доступ</th>
13
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
14
- Дії</th>
15
- </tr>
16
- </thead>
17
- <tbody class="bg-white divide-y divide-gray-200">
18
- {{#each rows}}
19
- <tr>
20
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{user_uid}}</td>
21
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{formatDate expiration}}</td>
22
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{formatDate access_granted_time}}</td>
23
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{access_granted}}</td>
24
- </tr>
25
- {{/each}}
26
- </tbody>
27
- </table>
1
+ {{#contentList table="admin.user_roles" query="role_id='{{id}}'" order="cdate desc" limit="50" sql1=1}}
2
+ <table class="min-w-full divide-y divide-gray-200">
3
+ <thead class="bg-gray-50">
4
+ <tr>
5
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
+ Користувач</th>
7
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
+ Закінчення терміну дії доступу до групи</th>
9
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
+ Дата надання доступу</th>
11
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
12
+ Хто надав доступ</th>
13
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
14
+ Дії</th>
15
+ </tr>
16
+ </thead>
17
+ <tbody class="bg-white divide-y divide-gray-200">
18
+ {{#each rows}}
19
+ <tr>
20
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{user_uid}}</td>
21
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{formatDate expiration}}</td>
22
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{formatDate access_granted_time}}</td>
23
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{access_granted}}</td>
24
+ </tr>
25
+ {{/each}}
26
+ </tbody>
27
+ </table>
28
28
  {{/contentList}}
@@ -1,41 +1,41 @@
1
- <dl class="-my-3 divide-y divide-gray-100 text-sm">
2
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
3
- <dt class="font-medium text-gray-900">Назва файлу інтерфейсу</dt>
4
- <dd class="text-gray-700 sm:col-span-2">{{alias}}</dd>
5
- </div>
6
-
7
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
8
- <dt class="font-medium text-gray-900">Назва інтерфейсу українською</dt>
9
- <dd class="text-gray-700 sm:col-span-2">{{title}}</dd>
10
- </div>
11
-
12
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
13
- <dt class="font-medium text-gray-900">Кількість користувачів</dt>
14
- <dd class="text-gray-700 sm:col-span-2">{{user_count}}</dd>
15
- </div>
16
-
17
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
18
- <dt class="font-medium text-gray-900">Кількість груп</dt>
19
- <dd class="text-gray-700 sm:col-span-2">{{roles_count}}</dd>
20
- </div>
21
-
22
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
23
- <dt class="font-medium text-gray-900">Ознака чи для всіх показується</dt>
24
- <dd class="text-gray-700 sm:col-span-2">{{select public data="yes_no"}}</dd>
25
- </div>
26
-
27
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
28
- <dt class="font-medium text-gray-900">Пункт меню</dt>
29
- <dd class="text-gray-700 sm:col-span-2">{{menu_id}}</dd>
30
- </div>
31
-
32
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
33
- <dt class="font-medium text-gray-900">On / Off</dt>
34
- <dd class="text-gray-700 sm:col-span-2">{{select enabled data="yes_no"}}</dd>
35
- </div>
36
-
37
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
38
- <dt class="font-medium text-gray-900">Дата створення</dt>
39
- <dd class="text-gray-700 sm:col-span-2">{{formatDate cdate}}</dd>
40
- </div>
1
+ <dl class="-my-3 divide-y divide-gray-100 text-sm">
2
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
3
+ <dt class="font-medium text-gray-900">Назва файлу інтерфейсу</dt>
4
+ <dd class="text-gray-700 sm:col-span-2">{{alias}}</dd>
5
+ </div>
6
+
7
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
8
+ <dt class="font-medium text-gray-900">Назва інтерфейсу українською</dt>
9
+ <dd class="text-gray-700 sm:col-span-2">{{title}}</dd>
10
+ </div>
11
+
12
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
13
+ <dt class="font-medium text-gray-900">Кількість користувачів</dt>
14
+ <dd class="text-gray-700 sm:col-span-2">{{user_count}}</dd>
15
+ </div>
16
+
17
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
18
+ <dt class="font-medium text-gray-900">Кількість груп</dt>
19
+ <dd class="text-gray-700 sm:col-span-2">{{roles_count}}</dd>
20
+ </div>
21
+
22
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
23
+ <dt class="font-medium text-gray-900">Ознака чи для всіх показується</dt>
24
+ <dd class="text-gray-700 sm:col-span-2">{{select public data="yes_no"}}</dd>
25
+ </div>
26
+
27
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
28
+ <dt class="font-medium text-gray-900">Пункт меню</dt>
29
+ <dd class="text-gray-700 sm:col-span-2">{{menu_id}}</dd>
30
+ </div>
31
+
32
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
33
+ <dt class="font-medium text-gray-900">On / Off</dt>
34
+ <dd class="text-gray-700 sm:col-span-2">{{select enabled data="yes_no"}}</dd>
35
+ </div>
36
+
37
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
38
+ <dt class="font-medium text-gray-900">Дата створення</dt>
39
+ <dd class="text-gray-700 sm:col-span-2">{{formatDate cdate}}</dd>
40
+ </div>
41
41
  </dl>
@@ -1,8 +1,8 @@
1
- component: default
2
- panels:
3
- - name: general_info
4
- title: Загальна інформація
5
- col: 4
6
- - name: users
7
- title: Користувачі
8
- col: 8
1
+ component: default
2
+ panels:
3
+ - name: general_info
4
+ title: Загальна інформація
5
+ col: 4
6
+ - name: users
7
+ title: Користувачі
8
+ col: 8
@@ -1,34 +1,34 @@
1
- {{#contentList table="admin.access" query="route_id='{{id}}'" order="cdate desc" limit="50" sql1=1}}
2
- <table class="min-w-full divide-y divide-gray-200">
3
- <thead class="bg-gray-50">
4
- <tr>
5
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
- Користувач</th>
7
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
- Права</th>
9
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
- Користувач який надав доступ</th>
11
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
12
- Дії</th>
13
- </tr>
14
- </thead>
15
- <tbody class="bg-white divide-y divide-gray-200">
16
- {{#each rows}}
17
- <tr>
18
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
19
- {{!-- {{select user_uid data="core.user_uid"}} --}}
20
- {{user_uid}}
21
- </td>
22
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
23
- {{!-- {{select actions data="core.actions"}} --}}
24
- {{actions}}
25
- </td>
26
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
27
- {{!-- {{select access_granted data="core.user_uid"}} --}}
28
- {{access_granted}}
29
- </td>
30
- </tr>
31
- {{/each}}
32
- </tbody>
33
- </table>
1
+ {{#contentList table="admin.access" query="route_id='{{id}}'" order="cdate desc" limit="50" sql1=1}}
2
+ <table class="min-w-full divide-y divide-gray-200">
3
+ <thead class="bg-gray-50">
4
+ <tr>
5
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
+ Користувач</th>
7
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
+ Права</th>
9
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
+ Користувач який надав доступ</th>
11
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
12
+ Дії</th>
13
+ </tr>
14
+ </thead>
15
+ <tbody class="bg-white divide-y divide-gray-200">
16
+ {{#each rows}}
17
+ <tr>
18
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
19
+ {{!-- {{select user_uid data="core.user_uid"}} --}}
20
+ {{user_uid}}
21
+ </td>
22
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
23
+ {{!-- {{select actions data="core.actions"}} --}}
24
+ {{actions}}
25
+ </td>
26
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
27
+ {{!-- {{select access_granted data="core.user_uid"}} --}}
28
+ {{access_granted}}
29
+ </td>
30
+ </tr>
31
+ {{/each}}
32
+ </tbody>
33
+ </table>
34
34
  {{/contentList}}