@opengis/admin 0.1.98 → 0.1.100

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 (63) hide show
  1. package/dist/add-page-Dl_bGhPC.js +92 -0
  2. package/dist/admin-interface-Dma-D4A9.js +1351 -0
  3. package/dist/admin-view-TeTAUVK1.js +640 -0
  4. package/dist/admin.js +1 -1
  5. package/dist/admin.umd.cjs +83 -128
  6. package/dist/card-page-D-3aubBo.js +230 -0
  7. package/dist/{card-view-BpcpqR_U.js → card-view-CZjPaUKx.js} +1 -1
  8. package/dist/edit-page-RhKgRai9.js +103 -0
  9. package/dist/{import-file-eH-_Imyb.js → import-file-DgJqxKyF.js} +18308 -19458
  10. package/dist/style.css +1 -1
  11. package/module/settings/card/admin.accounts.table/index.yml +8 -0
  12. package/module/settings/card/admin.accounts.table/rules.hbs +19 -0
  13. package/module/settings/card/admin.accounts.table/users.hbs +14 -0
  14. package/module/settings/card/admin.roles.table/access.hbs +3 -24
  15. package/module/settings/card/admin.roles.table/general_info.hbs +1 -17
  16. package/module/settings/card/admin.roles.table/index.yml +4 -1
  17. package/module/settings/card/admin.roles.table/users.hbs +6 -27
  18. package/module/settings/card/admin.routes.table/general_info.hbs +14 -41
  19. package/module/settings/card/admin.routes.table/groups.hbs +12 -0
  20. package/module/settings/card/admin.routes.table/index.yml +3 -0
  21. package/module/settings/card/admin.routes.table/users.hbs +16 -33
  22. package/module/settings/card/admin.users.table/context.hbs +15 -0
  23. package/module/settings/card/admin.users.table/general_info.hbs +13 -26
  24. package/module/settings/card/admin.users.table/index.yml +17 -7
  25. package/module/settings/card/admin.users.table/last_login.hbs +10 -0
  26. package/module/settings/card/admin.users.table/logs.hbs +11 -31
  27. package/module/settings/card/admin.users.table/routes.hbs +8 -0
  28. package/module/settings/card/admin.users.table/user_roles.hbs +13 -25
  29. package/module/settings/form/admin.accounts.form.json +13 -0
  30. package/module/settings/form/admin.rules.form.json +31 -0
  31. package/module/settings/form/admin.user_roles.form.json +0 -8
  32. package/module/settings/form/admin.user_roles_card.form.json +14 -0
  33. package/module/settings/form/admin.users.form.json +2 -2
  34. package/module/settings/form/context.account_grants.form.json +24 -0
  35. package/module/settings/form/context.account_users.form.json +12 -0
  36. package/module/settings/menu.json +24 -0
  37. package/module/settings/select/core.accounts.sql +1 -0
  38. package/module/settings/select/core.roles.sql +1 -1
  39. package/module/settings/select/core.rules.sql +1 -0
  40. package/module/settings/select/core.user_uid.sql +0 -1
  41. package/module/settings/table/admin.accounts.table.json +42 -0
  42. package/module/settings/table/admin.roles.table.json +1 -1
  43. package/module/settings/table/admin.routes.table.json +9 -4
  44. package/module/settings/table/admin.rules.table.json +77 -0
  45. package/module/settings/table/admin.users.table.json +17 -6
  46. package/module/settings/table/context.account_grants.table.json +68 -0
  47. package/module/settings/table/context.account_users.table.json +38 -0
  48. package/package.json +3 -2
  49. package/server/helpers/core/select.js +4 -6
  50. package/server/helpers/list/tableList.js +9 -6
  51. package/server/routes/access/controllers/access.group.js +1 -1
  52. package/server/routes/access/controllers/access.group.post.js +4 -4
  53. package/server/routes/data/controllers/cardData.js +11 -0
  54. package/server/routes/data/controllers/tableData.js +13 -4
  55. package/server/routes/menu/controllers/getMenu.js +12 -25
  56. package/dist/IconChevronDown-irxwDmQp.js +0 -26
  57. package/dist/add-page-UtwEANeW.js +0 -105
  58. package/dist/admin-interface-PJfd31TQ.js +0 -1600
  59. package/dist/admin-view-BuVQ8ziq.js +0 -383
  60. package/dist/assets/favicon.svg +0 -1
  61. package/dist/assets/logo.svg +0 -42
  62. package/dist/edit-page-Bd6VW9hb.js +0 -120
  63. package/module/settings/select/core.roles.json +0 -3
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}:root{--f-spinner-width: 36px;--f-spinner-height: 36px;--f-spinner-color-1: rgba(0, 0, 0, .1);--f-spinner-color-2: rgba(17, 24, 28, .8);--f-spinner-stroke: 2.75}.f-spinner{margin:auto;padding:0;width:var(--f-spinner-width);height:var(--f-spinner-height)}.f-spinner svg{width:100%;height:100%;vertical-align:top;animation:f-spinner-rotate 2s linear infinite}.f-spinner svg *{stroke-width:var(--f-spinner-stroke);fill:none}.f-spinner svg *:first-child{stroke:var(--f-spinner-color-1)}.f-spinner svg *:last-child{stroke:var(--f-spinner-color-2);animation:f-spinner-dash 2s ease-in-out infinite}@keyframes f-spinner-rotate{to{transform:rotate(360deg)}}@keyframes f-spinner-dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.f-throwOutUp{animation:var(--f-throw-out-duration, .175s) ease-out both f-throwOutUp}.f-throwOutDown{animation:var(--f-throw-out-duration, .175s) ease-out both f-throwOutDown}@keyframes f-throwOutUp{to{transform:translate3d(0,calc(var(--f-throw-out-distance, 150px) * -1),0);opacity:0}}@keyframes f-throwOutDown{to{transform:translate3d(0,var(--f-throw-out-distance, 150px),0);opacity:0}}.f-zoomInUp{animation:var(--f-transition-duration, .2s) ease .1s both f-zoomInUp}.f-zoomOutDown{animation:var(--f-transition-duration, .2s) ease both f-zoomOutDown}@keyframes f-zoomInUp{0%{transform:scale(.975) translate3d(0,16px,0);opacity:0}to{transform:scale(1) translateZ(0);opacity:1}}@keyframes f-zoomOutDown{to{transform:scale(.975) translate3d(0,16px,0);opacity:0}}.f-fadeIn{animation:var(--f-transition-duration, .2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeIn;z-index:2}.f-fadeOut{animation:var(--f-transition-duration, .2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeOut;z-index:1}@keyframes f-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes f-fadeOut{to{opacity:0}}.f-fadeFastIn{animation:var(--f-transition-duration, .2s) ease-out both f-fadeFastIn;z-index:2}.f-fadeFastOut{animation:var(--f-transition-duration, .1s) ease-out both f-fadeFastOut;z-index:2}@keyframes f-fadeFastIn{0%{opacity:.75}to{opacity:1}}@keyframes f-fadeFastOut{to{opacity:0}}.f-fadeSlowIn{animation:var(--f-transition-duration, .5s) ease both f-fadeSlowIn;z-index:2}.f-fadeSlowOut{animation:var(--f-transition-duration, .5s) ease both f-fadeSlowOut;z-index:1}@keyframes f-fadeSlowIn{0%{opacity:0}to{opacity:1}}@keyframes f-fadeSlowOut{to{opacity:0}}.f-crossfadeIn{animation:var(--f-transition-duration, .2s) ease-out both f-crossfadeIn;z-index:2}.f-crossfadeOut{animation:calc(var(--f-transition-duration, .2s)*.5) linear .1s both f-crossfadeOut;z-index:1}@keyframes f-crossfadeIn{0%{opacity:0}to{opacity:1}}@keyframes f-crossfadeOut{to{opacity:0}}.f-slideIn.from-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideInNext}.f-slideIn.from-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideInPrev}.f-slideOut.to-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideOutNext}.f-slideOut.to-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideOutPrev}@keyframes f-slideInPrev{0%{transform:translate(100%)}to{transform:translateZ(0)}}@keyframes f-slideInNext{0%{transform:translate(-100%)}to{transform:translateZ(0)}}@keyframes f-slideOutNext{to{transform:translate(-100%)}}@keyframes f-slideOutPrev{to{transform:translate(100%)}}.f-classicIn.from-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicInNext;z-index:2}.f-classicIn.from-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicInPrev;z-index:2}.f-classicOut.to-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicOutNext;z-index:1}.f-classicOut.to-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-classicOutPrev;z-index:1}@keyframes f-classicInNext{0%{transform:translate(-75px);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes f-classicInPrev{0%{transform:translate(75px);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes f-classicOutNext{to{transform:translate(-75px);opacity:0}}@keyframes f-classicOutPrev{to{transform:translate(75px);opacity:0}}:root{--f-button-width: 40px;--f-button-height: 40px;--f-button-border: 0;--f-button-border-radius: 0;--f-button-color: #374151;--f-button-bg: #f8f8f8;--f-button-hover-bg: #e0e0e0;--f-button-active-bg: #d0d0d0;--f-button-shadow: none;--f-button-transition: all .15s ease;--f-button-transform: none;--f-button-svg-width: 20px;--f-button-svg-height: 20px;--f-button-svg-stroke-width: 1.5;--f-button-svg-fill: none;--f-button-svg-filter: none;--f-button-svg-disabled-opacity: .65}.f-button{display:flex;justify-content:center;align-items:center;box-sizing:content-box;position:relative;margin:0;padding:0;width:var(--f-button-width);height:var(--f-button-height);border:var(--f-button-border);border-radius:var(--f-button-border-radius);color:var(--f-button-color);background:var(--f-button-bg);box-shadow:var(--f-button-shadow);pointer-events:all;cursor:pointer;transition:var(--f-button-transition)}@media (hover: hover){.f-button:hover:not([disabled]){color:var(--f-button-hover-color);background-color:var(--f-button-hover-bg)}}.f-button:active:not([disabled]){background-color:var(--f-button-active-bg)}.f-button:focus:not(:focus-visible){outline:none}.f-button:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--f-button-outline, 2px) var(--f-button-outline-color, var(--f-button-color))}.f-button svg{width:var(--f-button-svg-width);height:var(--f-button-svg-height);fill:var(--f-button-svg-fill);stroke:currentColor;stroke-width:var(--f-button-svg-stroke-width);stroke-linecap:round;stroke-linejoin:round;transition:opacity .15s ease;transform:var(--f-button-transform);filter:var(--f-button-svg-filter);pointer-events:none}.f-button[disabled]{cursor:default}.f-button[disabled] svg{opacity:var(--f-button-svg-disabled-opacity)}.f-carousel__nav .f-button.is-prev,.f-carousel__nav .f-button.is-next,.fancybox__nav .f-button.is-prev,.fancybox__nav .f-button.is-next{position:absolute;z-index:1}.is-horizontal .f-carousel__nav .f-button.is-prev,.is-horizontal .f-carousel__nav .f-button.is-next,.is-horizontal .fancybox__nav .f-button.is-prev,.is-horizontal .fancybox__nav .f-button.is-next{top:50%;transform:translateY(-50%)}.is-horizontal .f-carousel__nav .f-button.is-prev,.is-horizontal .fancybox__nav .f-button.is-prev{left:var(--f-button-prev-pos)}.is-horizontal .f-carousel__nav .f-button.is-next,.is-horizontal .fancybox__nav .f-button.is-next{right:var(--f-button-next-pos)}.is-horizontal.is-rtl .f-carousel__nav .f-button.is-prev,.is-horizontal.is-rtl .fancybox__nav .f-button.is-prev{left:auto;right:var(--f-button-next-pos)}.is-horizontal.is-rtl .f-carousel__nav .f-button.is-next,.is-horizontal.is-rtl .fancybox__nav .f-button.is-next{right:auto;left:var(--f-button-prev-pos)}.is-vertical .f-carousel__nav .f-button.is-prev,.is-vertical .f-carousel__nav .f-button.is-next,.is-vertical .fancybox__nav .f-button.is-prev,.is-vertical .fancybox__nav .f-button.is-next{top:auto;left:50%;transform:translate(-50%)}.is-vertical .f-carousel__nav .f-button.is-prev,.is-vertical .fancybox__nav .f-button.is-prev{top:var(--f-button-next-pos)}.is-vertical .f-carousel__nav .f-button.is-next,.is-vertical .fancybox__nav .f-button.is-next{bottom:var(--f-button-next-pos)}.is-vertical .f-carousel__nav .f-button.is-prev svg,.is-vertical .f-carousel__nav .f-button.is-next svg,.is-vertical .fancybox__nav .f-button.is-prev svg,.is-vertical .fancybox__nav .f-button.is-next svg{transform:rotate(90deg)}.f-carousel__nav .f-button:disabled,.fancybox__nav .f-button:disabled{pointer-events:none}html.with-fancybox{width:auto;overflow:visible;scroll-behavior:auto}html.with-fancybox body{touch-action:none}html.with-fancybox body.hide-scrollbar{width:auto;margin-right:calc(var(--fancybox-body-margin, 0px) + var(--fancybox-scrollbar-compensate, 0px));overflow:hidden!important;overscroll-behavior-y:none}.fancybox__container{--fancybox-color: #dbdbdb;--fancybox-hover-color: #fff;--fancybox-bg: rgba(24, 24, 27, .98);--fancybox-slide-gap: 10px;--f-spinner-width: 50px;--f-spinner-height: 50px;--f-spinner-color-1: rgba(255, 255, 255, .1);--f-spinner-color-2: #bbb;--f-spinner-stroke: 3.65;position:fixed;top:0;left:0;bottom:0;right:0;direction:ltr;display:flex;flex-direction:column;box-sizing:border-box;margin:0;padding:0;color:#f8f8f8;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:visible;z-index:var(--fancybox-zIndex, 1050);outline:none;transform-origin:top left;-webkit-text-size-adjust:100%;-moz-text-size-adjust:none;text-size-adjust:100%;overscroll-behavior-y:contain}.fancybox__container *,.fancybox__container *:before,.fancybox__container *:after{box-sizing:inherit}.fancybox__container::backdrop{background-color:#0000}.fancybox__backdrop{position:fixed;top:0;left:0;bottom:0;right:0;z-index:-1;background:var(--fancybox-bg);opacity:var(--fancybox-opacity, 1);will-change:opacity}.fancybox__carousel{position:relative;box-sizing:border-box;flex:1;min-height:0;z-index:10;overflow-y:visible;overflow-x:clip}.fancybox__viewport{width:100%;height:100%}.fancybox__viewport.is-draggable{cursor:move;cursor:grab}.fancybox__viewport.is-dragging{cursor:move;cursor:grabbing}.fancybox__track{display:flex;margin:0 auto;height:100%}.fancybox__slide{flex:0 0 auto;position:relative;display:flex;flex-direction:column;align-items:center;width:100%;height:100%;margin:0 var(--fancybox-slide-gap) 0 0;padding:4px;overflow:auto;overscroll-behavior:contain;transform:translateZ(0);backface-visibility:hidden}.fancybox__container:not(.is-compact) .fancybox__slide.has-close-btn{padding-top:40px}.fancybox__slide.has-iframe,.fancybox__slide.has-video,.fancybox__slide.has-html5video,.fancybox__slide.has-image{overflow:hidden}.fancybox__slide.has-image.is-animating,.fancybox__slide.has-image.is-selected{overflow:visible}.fancybox__slide:before,.fancybox__slide:after{content:"";flex:0 0 0;margin:auto}.fancybox__backdrop:empty,.fancybox__viewport:empty,.fancybox__track:empty,.fancybox__slide:empty{display:block}.fancybox__content{align-self:center;display:flex;flex-direction:column;position:relative;margin:0;padding:2rem;max-width:100%;color:var(--fancybox-content-color, #374151);background:var(--fancybox-content-bg, #fff);cursor:default;border-radius:0;z-index:20}.is-loading .fancybox__content{opacity:0}.is-draggable .fancybox__content{cursor:move;cursor:grab}.can-zoom_in .fancybox__content{cursor:zoom-in}.can-zoom_out .fancybox__content{cursor:zoom-out}.is-dragging .fancybox__content{cursor:move;cursor:grabbing}.fancybox__content [data-selectable],.fancybox__content [contenteditable]{cursor:auto}.fancybox__slide.has-image>.fancybox__content{padding:0;background:#0000;min-height:1px;background-repeat:no-repeat;background-size:contain;background-position:center center;transition:none;transform:translateZ(0);backface-visibility:hidden}.fancybox__slide.has-image>.fancybox__content>picture>img{width:100%;height:auto;max-height:100%}.is-animating .fancybox__content,.is-dragging .fancybox__content{will-change:transform,width,height}.fancybox-image{margin:auto;display:block;width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;filter:blur(0px)}.fancybox__caption{align-self:center;max-width:100%;flex-shrink:0;margin:0;padding:14px 0 4px;overflow-wrap:anywhere;line-height:1.375;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);cursor:auto;visibility:visible}.is-loading .fancybox__caption,.is-closing .fancybox__caption{opacity:0;visibility:hidden}.is-compact .fancybox__caption{padding-bottom:0}.f-button.is-close-btn{--f-button-svg-stroke-width: 2;position:absolute;top:0;right:8px;z-index:40}.fancybox__content>.f-button.is-close-btn{--f-button-width: 34px;--f-button-height: 34px;--f-button-border-radius: 4px;--f-button-color: var(--fancybox-color, #fff);--f-button-hover-color: var(--fancybox-color, #fff);--f-button-bg: transparent;--f-button-hover-bg: transparent;--f-button-active-bg: transparent;--f-button-svg-width: 22px;--f-button-svg-height: 22px;position:absolute;top:-38px;right:0;opacity:.75}.is-loading .fancybox__content>.f-button.is-close-btn{visibility:hidden}.is-zooming-out .fancybox__content>.f-button.is-close-btn{visibility:hidden}.fancybox__content>.f-button.is-close-btn:hover{opacity:1}.fancybox__footer{padding:0;margin:0;position:relative}.fancybox__footer .fancybox__caption{width:100%;padding:24px;opacity:var(--fancybox-opacity, 1);transition:all .25s ease}.is-compact .fancybox__footer{position:absolute;bottom:0;left:0;right:0;z-index:20;background:#18181b80}.is-compact .fancybox__footer .fancybox__caption{padding:12px}.is-compact .fancybox__content>.f-button.is-close-btn{--f-button-border-radius: 50%;--f-button-color: #fff;--f-button-hover-color: #fff;--f-button-outline-color: #000;--f-button-bg: rgba(0, 0, 0, .6);--f-button-active-bg: rgba(0, 0, 0, .6);--f-button-hover-bg: rgba(0, 0, 0, .6);--f-button-svg-width: 18px;--f-button-svg-height: 18px;--f-button-svg-filter: none;top:5px;right:5px}.fancybox__nav{--f-button-width: 50px;--f-button-height: 50px;--f-button-border: 0;--f-button-border-radius: 50%;--f-button-color: var(--fancybox-color);--f-button-hover-color: var(--fancybox-hover-color);--f-button-bg: transparent;--f-button-hover-bg: rgba(24, 24, 27, .3);--f-button-active-bg: rgba(24, 24, 27, .5);--f-button-shadow: none;--f-button-transition: all .15s ease;--f-button-transform: none;--f-button-svg-width: 26px;--f-button-svg-height: 26px;--f-button-svg-stroke-width: 2.5;--f-button-svg-fill: none;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, .5));--f-button-svg-disabled-opacity: .65;--f-button-next-pos: 1rem;--f-button-prev-pos: 1rem;opacity:var(--fancybox-opacity, 1)}.fancybox__nav .f-button:before{position:absolute;content:"";top:-30px;right:-20px;left:-20px;bottom:-30px;z-index:1}.is-idle .fancybox__nav{animation:.15s ease-out both f-fadeOut}.is-idle.is-compact .fancybox__footer{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__slide>.f-spinner{position:absolute;top:50%;left:50%;margin:var(--f-spinner-top, calc(var(--f-spinner-width) * -.5)) 0 0 var(--f-spinner-left, calc(var(--f-spinner-height) * -.5));z-index:30;cursor:pointer}.fancybox-protected{position:absolute;top:0;left:0;right:0;bottom:0;z-index:40;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fancybox-ghost{position:absolute;top:0;left:0;width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain;z-index:40;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.fancybox-focus-guard{outline:none;opacity:0;position:fixed;pointer-events:none}.fancybox__container:not([aria-hidden]){opacity:0}.fancybox__container.is-animated[aria-hidden=false]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=false] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=false] .fancybox__slide>*:not(.fancybox__content){animation:var(--f-interface-enter-duration, .25s) ease .1s backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=false] .fancybox__backdrop{animation:var(--f-backdrop-enter-duration, .35s) ease backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=true]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=true] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=true] .fancybox__slide>*:not(.fancybox__content){animation:var(--f-interface-exit-duration, .15s) ease forwards f-fadeOut}.fancybox__container.is-animated[aria-hidden=true] .fancybox__backdrop{animation:var(--f-backdrop-exit-duration, .35s) ease forwards f-fadeOut}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{max-width:100%;flex-shrink:1;min-height:1px;overflow:visible}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content{width:calc(100% - 120px);height:90%}.fancybox__container.is-compact .has-iframe .fancybox__content,.fancybox__container.is-compact .has-map .fancybox__content,.fancybox__container.is-compact .has-pdf .fancybox__content{width:100%;height:100%}.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{width:960px;height:540px;max-width:100%;max-height:100%}.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{padding:0;background:#18181be6;color:#fff}.has-map .fancybox__content{background:#e5e3df}.fancybox__html5video,.fancybox__iframe{border:0;display:block;height:100%;width:100%;background:#0000}.fancybox-placeholder{border:0!important;clip:rect(1px,1px,1px,1px)!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.f-carousel__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-outline: 0;--f-thumb-outline-color: #5eb0ef;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1;--f-thumb-border-radius: 2px;--f-thumb-offset: 0px;--f-button-next-pos: 0;--f-button-prev-pos: 0}.f-carousel__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: .5;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1}.f-carousel__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 16px;--f-thumb-clip-width: 46px}.f-thumbs{position:relative;flex:0 0 auto;margin:0;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;user-select:none;perspective:1000px;transform:translateZ(0)}.f-thumbs .f-spinner{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:2px;background-image:linear-gradient(#ebeff2,#e2e8f0);z-index:-1}.f-thumbs .f-spinner svg{display:none}.f-thumbs.is-vertical{height:100%}.f-thumbs__viewport{width:100%;height:auto;overflow:hidden;transform:translateZ(0)}.f-thumbs__track{display:flex}.f-thumbs__slide{position:relative;flex:0 0 auto;box-sizing:content-box;display:flex;align-items:center;justify-content:center;padding:0;margin:0;width:var(--f-thumb-width);height:var(--f-thumb-height);overflow:visible;cursor:pointer}.f-thumbs__slide.is-loading img{opacity:0}.is-classic .f-thumbs__viewport{height:100%}.is-modern .f-thumbs__track{width:-moz-max-content;width:max-content}.is-modern .f-thumbs__track:before{content:"";position:absolute;top:0;bottom:0;left:calc((var(--f-thumb-clip-width, 0))*-.5);width:calc(var(--width, 0)*1px + var(--f-thumb-clip-width, 0));cursor:pointer}.is-modern .f-thumbs__slide{width:var(--f-thumb-clip-width);transform:translate3d(calc(var(--shift, 0) * -1px),0,0);transition:none;pointer-events:none}.is-modern.is-resting .f-thumbs__slide{transition:transform .33s ease}.is-modern.is-resting .f-thumbs__slide__button{transition:clip-path .33s ease}.is-using-tab .is-modern .f-thumbs__slide:focus-within{filter:drop-shadow(-1px 0px 0px var(--f-thumb-outline-color)) drop-shadow(2px 0px 0px var(--f-thumb-outline-color)) drop-shadow(0px -1px 0px var(--f-thumb-outline-color)) drop-shadow(0px 2px 0px var(--f-thumb-outline-color))}.f-thumbs__slide__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:var(--f-thumb-width);height:100%;margin:0 -100%;padding:0;border:0;position:relative;border-radius:var(--f-thumb-border-radius);overflow:hidden;background:#0000;outline:none;cursor:pointer;pointer-events:auto;touch-action:manipulation;opacity:var(--f-thumb-opacity);transition:opacity .2s ease}.f-thumbs__slide__button:hover{opacity:var(--f-thumb-hover-opacity)}.f-thumbs__slide__button:focus:not(:focus-visible){outline:none}.f-thumbs__slide__button:focus-visible{outline:none;opacity:var(--f-thumb-selected-opacity)}.is-modern .f-thumbs__slide__button{--clip-path: inset( 0 calc( ((var(--f-thumb-width, 0) - var(--f-thumb-clip-width, 0))) * (1 - var(--progress, 0)) * .5 ) round var(--f-thumb-border-radius, 0) );clip-path:var(--clip-path)}.is-classic .is-nav-selected .f-thumbs__slide__button{opacity:var(--f-thumb-selected-opacity)}.is-classic .is-nav-selected .f-thumbs__slide__button:after{content:"";position:absolute;top:0;left:0;right:0;height:auto;bottom:0;border:var(--f-thumb-outline, 0) solid var(--f-thumb-outline-color, transparent);border-radius:var(--f-thumb-border-radius);animation:f-fadeIn .2s ease-out;z-index:10}.f-thumbs__slide__img{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:var(--f-thumb-offset);box-sizing:border-box;pointer-events:none;-o-object-fit:cover;object-fit:cover;border-radius:var(--f-thumb-border-radius)}.f-thumbs.is-horizontal .f-thumbs__track{padding:8px 0 12px}.f-thumbs.is-horizontal .f-thumbs__slide{margin:0 var(--f-thumb-gap) 0 0}.f-thumbs.is-vertical .f-thumbs__track{flex-wrap:wrap;padding:0 8px}.f-thumbs.is-vertical .f-thumbs__slide{margin:0 0 var(--f-thumb-gap) 0}.fancybox__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-border-radius: 2px;--f-thumb-outline: 2px;--f-thumb-outline-color: #ededed;position:relative;opacity:var(--fancybox-opacity, 1);transition:max-height .35s cubic-bezier(.23,1,.32,1)}.fancybox__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: .5;--f-thumb-hover-opacity: 1}.fancybox__thumbs.is-classic .f-spinner{background-image:linear-gradient(#ffffff1a,#ffffff0d)}.fancybox__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 16px;--f-thumb-clip-width: 46px;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1}.fancybox__thumbs.is-modern .f-spinner{background-image:linear-gradient(#ffffff1a,#ffffff0d)}.fancybox__thumbs.is-horizontal{padding:0 var(--f-thumb-gap)}.fancybox__thumbs.is-vertical{padding:var(--f-thumb-gap) 0}.is-compact .fancybox__thumbs{--f-thumb-width: 64px;--f-thumb-clip-width: 32px;--f-thumb-height: 48px;--f-thumb-extra-gap: 10px}.fancybox__thumbs.is-masked{max-height:0px!important}.is-closing .fancybox__thumbs{transition:none!important}.fancybox__toolbar{--f-progress-color: var(--fancybox-color, rgba(255, 255, 255, .94));--f-button-width: 46px;--f-button-height: 46px;--f-button-color: var(--fancybox-color);--f-button-hover-color: var(--fancybox-hover-color);--f-button-bg: rgba(24, 24, 27, .65);--f-button-hover-bg: rgba(70, 70, 73, .65);--f-button-active-bg: rgba(90, 90, 93, .65);--f-button-border-radius: 0;--f-button-svg-width: 24px;--f-button-svg-height: 24px;--f-button-svg-stroke-width: 1.5;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, .15));--f-button-svg-fill: none;--f-button-svg-disabled-opacity: .65;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI Adjusted,Segoe UI,Liberation Sans,sans-serif;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);text-shadow:var(--fancybox-toolbar-text-shadow, 1px 1px 1px rgba(0, 0, 0, .5));pointer-events:none;z-index:20}.fancybox__toolbar :focus-visible{z-index:1}.fancybox__toolbar.is-absolute,.is-compact .fancybox__toolbar{position:absolute;top:0;left:0;right:0}.is-idle .fancybox__toolbar{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__toolbar__column{display:flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start}.fancybox__toolbar__column.is-left,.fancybox__toolbar__column.is-right{flex-grow:1;flex-basis:0}.fancybox__toolbar__column.is-right{display:flex;justify-content:flex-end;flex-wrap:nowrap}.fancybox__infobar{padding:0 5px;line-height:var(--f-button-height);text-align:center;font-size:17px;font-variant-numeric:tabular-nums;-webkit-font-smoothing:subpixel-antialiased;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fancybox__infobar span{padding:0 5px}.fancybox__infobar:not(:first-child):not(:last-child){background:var(--f-button-bg)}[data-fancybox-toggle-slideshow]{position:relative}[data-fancybox-toggle-slideshow] .f-progress{height:100%;opacity:.3}[data-fancybox-toggle-slideshow] svg g:first-child{display:flex}[data-fancybox-toggle-slideshow] svg g:last-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:first-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:last-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:first-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:last-child{display:none}:fullscreen [data-fancybox-toggle-fullscreen] svg g:first-child{display:none}:fullscreen [data-fancybox-toggle-fullscreen] svg g:last-child{display:flex}.f-progress{position:absolute;top:0;left:0;right:0;height:3px;transform:scaleX(0);transform-origin:0;transition-property:transform;transition-timing-function:linear;background:var(--f-progress-color, var(--f-carousel-theme-color, #0091ff));z-index:30;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.item__text-content,.item{transition:all .5s cubic-bezier(.4,0,.2,1)}.item:hover .item__text-content{opacity:.8}.item img{-o-object-fit:contain;object-fit:contain}.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-87c0b333]{cursor:move}.grid[data-v-01228a74]{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}.admin-wrapper[data-v-98158745]{display:flex;height:100vh;align-items:start}.vs-popover__content>div{padding:.25rem}.hs-accordion-heading[data-v-c6318482]{display:flex;align-items:center}.hs-accordion-toggle[data-v-c6318482]{cursor:pointer}.hs-accordion-content[data-v-c6318482]{padding-left:1.5rem}.table-info-card .editor-container{width:330px}.slide-fade-enter-active[data-v-f939b7ed],.slide-fade-leave-active[data-v-f939b7ed]{transition:all .3s linear}.slide-fade-enter-from[data-v-f939b7ed],.slide-fade-leave-to[data-v-f939b7ed]{transform:translate(20px);opacity:0}
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-87c0b333]{cursor:move}.grid[data-v-274c6efe]{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}.admin-wrapper[data-v-2f422765]{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{width:330px}.slide-fade-enter-active[data-v-9b255a47],.slide-fade-leave-active[data-v-9b255a47]{transition:all .3s linear}.slide-fade-enter-from[data-v-9b255a47],.slide-fade-leave-to[data-v-9b255a47]{transform:translate(20px);opacity:0}
@@ -0,0 +1,8 @@
1
+ component: default
2
+ panels:
3
+ - name: users
4
+ title: Співробітники
5
+ col: 4
6
+ - name: rules
7
+ title: Повноваження
8
+ col: 8
@@ -0,0 +1,19 @@
1
+ <div>
2
+ {{{button this token=(token table="admin.account_grants" obj=(concat 'account_id=' id) form="context.account_grants.form") }}}
3
+ {{#contentList table="(select ag_id, r.routes,attr,cls,rule_name,rule_values,account_id from admin.account_grants g left join(select routes,attr,cls,rule_name,rule_id from admin.rules )r on r.rule_id=g.rule_id)" query="account_id='{{id}}'" sql1=1}}
4
+
5
+ {{{tableList
6
+ rows
7
+ table="admin.account_grants"
8
+ id="ag_id"
9
+ form="context.account_grants.form"
10
+ uid=../user.uid
11
+ columns="
12
+ Назва, rule_name,
13
+ Роути, routes,
14
+ Атрибут, attr,
15
+ Значення, rule_values
16
+ "
17
+ }}}
18
+ {{/contentList}}
19
+ </div>
@@ -0,0 +1,14 @@
1
+ <div>
2
+ {{{button this token=(token table="admin.account_users" obj=(concat 'account_id=' id) form="admin.user_roles_card.form") }}}
3
+ {{#contentList table="admin.account_users" query="account_id='{{id}}'" sql1=1}}
4
+ {{{tableList
5
+ rows
6
+ table="admin.account_users"
7
+ id="au_id"
8
+ uid=../user.uid
9
+ columns="
10
+ ПІБ, <a href='/card/admin.users.table/{{user_uid}}'>{{select user_uid data='core.user_uid'}}</a>
11
+ "
12
+ }}}
13
+ {{/contentList}}
14
+ </div>
@@ -1,25 +1,4 @@
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
- Інтерфейс</th>
7
-
8
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
9
- Права</th>
10
- </tr>
11
- </thead>
12
- <tbody class="bg-white divide-y divide-gray-200">
13
- {{#each rows}}
14
- <tr>
15
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
16
- {{route_id}}</td>
17
-
18
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
19
- {{actions}}
20
- </td>
21
- </tr>
22
- {{/each}}
23
- </tbody>
24
- </table>
1
+ {{#contentList table="admin.role_access" query="role_id='{{id}}'" order="cdate desc" sql1=1}}
2
+ {{{tableList rows columns="Інтерфейс,route_id,Права,{{actions}}"}}}
3
+
25
4
  {{/contentList}}
@@ -1,17 +1 @@
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
- </dl>
1
+ {{{descriptionList this columns="Назва,name,On/Off,enabled,Опис,info"}}}
@@ -1,4 +1,5 @@
1
1
  component: default
2
+ # title: Мій підпис
2
3
  tokens:
3
4
  id: { id: "{{id}}" }
4
5
  panels:
@@ -7,9 +8,11 @@ panels:
7
8
  items:
8
9
  - name: general_info
9
10
  title: Загальна інформація
11
+ - name: users
12
+ title: Користувачі
10
13
  - name: access
11
14
  title: Права до інтерфейсів
12
- col: 4
15
+ count: select 'Права до інтерфейсів 1' as title, 1 as count
13
16
 
14
17
  - type: container
15
18
  col: 8
@@ -1,28 +1,7 @@
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
+
2
+ {{#contentList table="(select ugr_id, user_name || coalesce(login,'') as name,role_id,uid from admin.users left join ( SELECT user_uid, ugr_id, role_id FROM admin.user_roles )r on users.uid=r.user_uid)q" query="role_id='{{id}}'" limit="50" sql1=1}}
3
+ {{{button this token=(token table="admin.user_roles" obj=(concat 'role_id=' @root.id) form="admin.user_roles_card.form") title="Додати"}}}
4
+
5
+ {{{tableList rows columns="Користувач,<a href='/card/admin.users.table/{{uid}}'>{{name}}</a>" table="admin.user_roles" id="ugr_id" uid=../user.uid}}}
6
+
28
7
  {{/contentList}}
@@ -1,41 +1,14 @@
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
- </dl>
1
+ <div>
2
+ {{{descriptionList
3
+ this
4
+ columns="
5
+ Назва файлу інтерфейсу, alias,
6
+ Назва інтерфейсу українською, title,
7
+ Кількість користувачів, user_count,
8
+ Кількість груп, roles_count,
9
+ Ознака чи для всіх показується, public,
10
+ Пункт меню, menu_id,
11
+ On / Off, enabled
12
+ "
13
+ }}}
14
+ </div>
@@ -0,0 +1,12 @@
1
+ {{#contentList table="admin.role_access" query="route_id='{{id}}'" order="cdate desc" limit="50" sql1=1}}
2
+ <div>
3
+ {{{tableList rows
4
+ table="admin.role_access" query="route_id='{{id}}'" order="cdate desc" limit="50"
5
+ columns="
6
+ Група, <a href='/card/admin.roles.table/{{role_id}}'>{{select role_id data='core.roles'}}</a>,
7
+ Права, {{actions}},
8
+ Хто надав права, {{select access_granted data='core.user_uid'}}
9
+ "
10
+ }}}
11
+ </div>
12
+ {{/contentList}}
@@ -6,3 +6,6 @@ panels:
6
6
  - name: users
7
7
  title: Користувачі
8
8
  col: 8
9
+ - name: groups
10
+ title: Групи
11
+ col: 4
@@ -1,34 +1,17 @@
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="(select user_uid,a.role_id,actions from admin.user_roles r inner join (select role_id,actions from admin.role_access where route_id='{{id}}' )a on a.role_id=r.role_id )" limit="50" sql1=1}}
2
+ <div>
3
+ {{{tableList rows
4
+ table="admin.role_access" query="route_id='{{id}}'" order="cdate desc" limit="50"
5
+ columns="
6
+ Користувач, {{select user_uid data='core.user_uid'}},
7
+ Група, {{select role_id data='core.roles'}} ,
8
+ Права, {{actions}},
9
+ Хто надав доступ, {{select access_granted data='core.user_uid'}},
10
+ Активність,
11
+ Надання доступу: {{formatDate access_granted_time}}<br>
12
+ Остання активність: - <br>
13
+ Створено: {{formatDate cdate}}
14
+ "
15
+ }}}
16
+ </div>
34
17
  {{/contentList}}
@@ -0,0 +1,15 @@
1
+ <div>
2
+
3
+ {{#contentList table="(select rule_name,attr,rule_values from admin.account_grants g
4
+ left join (select rule_name,attr,rule_id from admin.rules )r on r.rule_id=g.rule_id
5
+ where account_id in (select account_id from admin.account_users where user_uid='{{id}}'))" limit="50" sql1=1}}
6
+ {{{tableList rows
7
+
8
+ columns="
9
+ Правило, rule_name,
10
+ Атрибут,attr,
11
+ Значення,rule_values
12
+ "
13
+ }}}
14
+ {{/contentList}}
15
+ </div>
@@ -1,26 +1,13 @@
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">{{sur_name}} {{user_name}} {{father_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">Електронна пошта</dt>
9
- <dd class="text-gray-700 sm:col-span-2">{{email}}</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">{{phone}}</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">{{user_rnokpp}}</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">{{organ_edrpou}}</dd>
25
- </div>
26
- </dl>
1
+ <div>
2
+
3
+ {{{descriptionList
4
+ this
5
+ columns="
6
+ ПІБ, {{sur_name}} {{user_name}} {{father_name}},
7
+ Електронна пошта, {{email}},
8
+ Телефон, {{phone}},
9
+ РНОКПП, {{user_rnokpp}},
10
+ ЄДРПОУ, {{organ_edrpou}}
11
+ "
12
+ }}}
13
+ </div>
@@ -1,12 +1,22 @@
1
1
  component: default
2
2
  panels:
3
- - name: general_info
4
- title: Загальна інформація
3
+ - type: container
5
4
  col: 4
6
- - name: user_roles
7
- title: Перелік груп
5
+ items:
6
+ - name: general_info
7
+ title: Загальна інформація
8
+ - name: context
9
+ title: Повноваження
10
+ - name: logs
11
+ title: Активність
12
+ - name: last_login
13
+ title: Інформація про вхід до системи
14
+
15
+ - type: container
8
16
  col: 8
9
17
  items:
10
- - name: logs
11
- title: Інформація про вхід до системи
12
- col: 4
18
+ - name: user_roles
19
+ col: 6
20
+ title: Перелік груп
21
+ - name: routes
22
+ title: Інтерфейси
@@ -0,0 +1,10 @@
1
+ <div>
2
+ {{#contentList table="log.user_auth" query="user_id='{{id}}'" order="cdate desc" sql1=1}}
3
+ {{{tableList rows
4
+ columns="
5
+ Дата, {{formatDate auth_date}},
6
+ Тип авторизації, {{auth_type}}
7
+ "
8
+ }}}
9
+ {{/contentList}}
10
+ </div>
@@ -1,31 +1,11 @@
1
- {{#contentList table="log.table_changes" query="uid='{{uid}}'" 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
- Дата</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
- {{formatDate cdate format="dd.MM.yy hh:mm"}}</td>
18
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
19
- {{change_type}}</td>
20
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
21
- {{entity_type}}</td>
22
- </tr>
23
- {{else}}
24
- <tr>
25
- <td colspan="3" class="px-6 py-4 whitespace-nowrap text-center text-sm font-medium text-gray-500">
26
- Поки що не зафіксовано активності</td>
27
- </tr>
28
- {{/each}}
29
- </tbody>
30
- </table>
31
- {{/contentList}}
1
+ <div>
2
+ {{#contentList table="log.table_changes" query="uid='{{id}}'" order="cdate desc" sql1=1}}
3
+ {{{tableList rows
4
+ columns="
5
+ Дата, {{formatDate cdate}},
6
+ Тип операції, {{change_type}},
7
+ Таблиця, {{entity_type}}
8
+ "
9
+ }}}
10
+ {{/contentList}}
11
+ </div>
@@ -0,0 +1,8 @@
1
+ <div>
2
+ {{#contentList sql1=1 table="(SELECT alias, table_name, title,(select name from admin.roles where role_id=g.role_id) as role_name, g.actions,
3
+ (select string_agg(attr::text || rule_values::text,',') from admin.rules left join (select rule_id,rule_values from admin.account_grants where account_id in (select account_id from admin.account_users where user_uid='{{id}}'))g on g.rule_id=rules.rule_id where r.route_id=any(routes)) as context
4
+ FROM admin.routes r right join (select route_id, actions,role_id from admin.role_access n where role_id in (SELECT role_id FROM admin.user_roles where user_uid='{{id}}'))g on r.route_id=g.route_id )" }}
5
+
6
+ {{{tableList rows columns="Назва, title, Шлях, alias,Таблиця, table_name, Група, role_name, Повноваження, context, Дії, {{actions}} "}}}
7
+ {{/contentList}}
8
+ </div>
@@ -1,25 +1,13 @@
1
- {{#contentList table="admin.user_roles" query="user_uid='{{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
- </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
- {{select role_id data="core.roles"}}</td>
18
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
19
- {{formatDate expiration}}</td>
20
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500"></td>
21
- </tr>
22
- {{/each}}
23
- </tbody>
24
- </table>
25
- {{/contentList}}
1
+ <div>
2
+ {{{button this token=(token table="admin.user_roles" obj=(concat 'user_uid=' id) form="admin.user_roles.form") }}}
3
+ {{#contentList table="admin.user_roles" query="user_uid='{{id}}'" order="cdate desc" limit="50" sql1=1}}
4
+ {{{tableList rows
5
+ table="admin.user_roles"
6
+ id="ugr_id"
7
+ uid=../user.uid
8
+ columns="
9
+ Група, <a href='/card/admin.roles.table/{{role_id}}'>{{select role_id data='core.roles'}}</a>
10
+ "
11
+ }}}
12
+ {{/contentList}}
13
+ </div>
@@ -0,0 +1,13 @@
1
+ {
2
+ "account_name": {
3
+ "ua": "Назва",
4
+ "type": "Text",
5
+ "validators": [
6
+ "required"
7
+ ]
8
+ },
9
+ "description": {
10
+ "ua": "Опис",
11
+ "type": "Textarea"
12
+ }
13
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "rule_name": {
3
+ "ua": "Назва",
4
+ "type": "Text",
5
+ "validators": [
6
+ "required"
7
+ ]
8
+ },
9
+ "attr": {
10
+ "ua": "Колонка",
11
+ "type": "Text",
12
+ "data": "core.rule_type"
13
+ },
14
+ "rule_type": {
15
+ "ua": "Тип повноваження",
16
+ "type": "Text",
17
+ "data": "core.rule_type"
18
+ },
19
+ "cls": {
20
+ "ua": "CLS",
21
+ "type": "Text"
22
+ },
23
+ "rule_query": {
24
+ "ua": "Запит",
25
+ "type": "Text"
26
+ },
27
+ "routes": {
28
+ "ua": "Роути",
29
+ "type": "text"
30
+ }
31
+ }
@@ -7,14 +7,6 @@
7
7
  "required"
8
8
  ]
9
9
  },
10
- "user_uid": {
11
- "ua": "Користувач",
12
- "type": "Select",
13
- "data": "core.user_uid",
14
- "validators": [
15
- "required"
16
- ]
17
- },
18
10
  "expiration": {
19
11
  "ua": "Закінчення терміну дії доступу до групи",
20
12
  "type": "DatePicker"
@@ -0,0 +1,14 @@
1
+ {
2
+ "user_uid": {
3
+ "ua": "Користувач",
4
+ "type": "Select",
5
+ "data": "core.user_uid",
6
+ "validators": [
7
+ "required"
8
+ ]
9
+ },
10
+ "expiration": {
11
+ "ua": "Закінчення терміну дії доступу до групи",
12
+ "type": "DatePicker"
13
+ }
14
+ }