adminizer 4.6.0 → 4.7.0-build.221
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +12 -0
- package/assets/RelationDialogStack-CnHFOYyR.css +1 -0
- package/assets/RelationDialogStack-DI2bZxQX.js +20 -0
- package/assets/add-4213XScp.js +1 -0
- package/assets/add-group--F1XxfJ1.js +1 -0
- package/assets/add-group-form-DKRXC2n-.js +1 -0
- package/assets/add-user-b9HfMq7z.js +1 -0
- package/assets/add-user-form-UXAToWQd.js +1 -0
- package/assets/app-Clx8f5hd.css +1 -0
- package/assets/app-layout-C02ja4OI.js +1 -0
- package/assets/app-shell-D8wtkECO.js +1 -0
- package/assets/app-sidebar-BR5_zwxj.js +1 -0
- package/assets/app-sidebar-header-BZbIBQjq.js +1 -0
- package/assets/app.js +59 -7990
- package/assets/breadcrumbs-CODaqVkB.js +1 -0
- package/assets/catalog-6ZZjWdFs.js +6 -0
- package/assets/dashboard-CftAdKiH.js +3 -0
- package/assets/date-picker-DSOkNiNo.js +1 -0
- package/assets/del-modal-Cd4M7af8.js +1 -0
- package/assets/dynamic-controls-BsrJhPDY.js +1 -0
- package/assets/geo-json-CzR5JBXL.js +1 -0
- package/assets/handsontable-BI98OF5R.js +336 -0
- package/assets/history-DLHSU7Ak.js +1 -0
- package/assets/home-NcQ7nnU0.js +2 -0
- package/assets/icon-C2JNaLxH.js +1 -0
- package/assets/init-user-D2HSyXup.js +1 -0
- package/assets/input-error-CH2caTtO.js +1 -0
- package/assets/jsoneditor-DVNQmA6G.js +3869 -0
- package/assets/list-CFU0-TgN.js +4 -0
- package/assets/login-DFSLEO17.js +1 -0
- package/assets/manifest.json +246 -273
- package/assets/material-icon-Bx9pGQiQ.js +1 -0
- package/assets/media-manager-WcKe1EvD.js +6 -0
- package/assets/module-CT7PC6pc.js +1 -0
- package/assets/monaco-Bl4zdWCn.js +11 -0
- package/assets/nav-footer-BiSQkPt4.js +1 -0
- package/assets/nav-main-rTH0PfDw.js +1 -0
- package/assets/nav-user-Bj6cWs0a.js +1 -0
- package/assets/notification-Bi-PX87D.js +20 -0
- package/assets/pagination-render-AKJvTIRA.js +1 -0
- package/assets/register-BTP4uxsK.js +1 -0
- package/assets/ru-eW0WKkga.js +1 -0
- package/assets/theme-switcher-Dm8EOGzx.js +1 -0
- package/assets/toast-editor-DOg_gvSp.js +668 -0
- package/assets/user-filters-list-YUfR4XMI.js +1 -0
- package/assets/user-info-BgSbT02v.js +1 -0
- package/assets/user-menu-content-TQTXHIv6.js +1 -0
- package/assets/{vanilla-picker-l5rcX3cq.js → vanilla-picker-B3LgXoKV.js} +1 -7
- package/assets/welcome-vLwTu1R6.js +1 -0
- package/controllers/add.d.ts +1 -1
- package/controllers/add.js +20 -26
- package/controllers/addGroup.d.ts +1 -1
- package/controllers/addGroup.js +7 -15
- package/controllers/addUser.d.ts +1 -1
- package/controllers/addUser.js +10 -16
- package/controllers/catalog/Catalog.d.ts +1 -1
- package/controllers/catalog/Catalog.js +1 -10
- package/controllers/catalog/FrontendCatalogAdapter.d.ts +3 -3
- package/controllers/catalog/FrontendCatalogAdapter.js +0 -6
- package/controllers/catalog/FrontentCatalogAdapter.d.ts +3 -3
- package/controllers/catalog/FrontentCatalogAdapter.js +0 -4
- package/controllers/ckeditorUpload.js +2 -18
- package/controllers/dashboard.d.ts +1 -1
- package/controllers/dashboard.js +2 -5
- package/controllers/edit.js +24 -37
- package/controllers/editGroup.d.ts +1 -1
- package/controllers/editGroup.js +10 -21
- package/controllers/editUser.d.ts +1 -1
- package/controllers/editUser.js +11 -23
- package/controllers/exportData.d.ts +6 -0
- package/controllers/exportData.js +315 -0
- package/controllers/feed.d.ts +6 -0
- package/controllers/feed.js +73 -0
- package/controllers/feedback/feedbackController.d.ts +1 -1
- package/controllers/feedback/feedbackController.js +5 -7
- package/controllers/filter-fields/columns.d.ts +11 -0
- package/controllers/filter-fields/columns.js +106 -0
- package/controllers/filter-fields/filterFields.d.ts +10 -0
- package/controllers/filter-fields/filterFields.js +141 -0
- package/controllers/filter-fields/getAllUserFilters.d.ts +6 -0
- package/controllers/filter-fields/getAllUserFilters.js +115 -0
- package/controllers/filter-fields/groups.d.ts +5 -0
- package/controllers/filter-fields/groups.js +26 -0
- package/controllers/filter-fields/savedFilters.d.ts +25 -0
- package/controllers/filter-fields/savedFilters.js +317 -0
- package/controllers/getAllWidgets.d.ts +1 -1
- package/controllers/getAllWidgets.js +1 -9
- package/controllers/history-actions/HistoryController.js +6 -31
- package/controllers/initUser.js +6 -5
- package/controllers/inlineUpdate.d.ts +7 -0
- package/controllers/inlineUpdate.js +148 -0
- package/controllers/list.d.ts +1 -1
- package/controllers/list.js +383 -70
- package/controllers/listUserFilters.d.ts +5 -0
- package/controllers/listUserFilters.js +26 -0
- package/controllers/login.js +2 -2
- package/controllers/media-manager/mediaManagerApi.js +0 -9
- package/controllers/navigation/edit.js +3 -9
- package/controllers/notifications/NotificationController.d.ts +1 -1
- package/controllers/notifications/NotificationController.js +12 -36
- package/controllers/register.js +10 -9
- package/controllers/remove.js +10 -19
- package/controllers/timezones.d.ts +1 -1
- package/controllers/timezones.js +0 -6
- package/controllers/userApiKey.d.ts +7 -0
- package/controllers/userApiKey.js +36 -0
- package/controllers/view.js +14 -26
- package/controllers/welcome.d.ts +1 -1
- package/controllers/welcome.js +0 -4
- package/controllers/widgets/Action.d.ts +1 -1
- package/controllers/widgets/Action.js +1 -9
- package/controllers/widgets/Custom.d.ts +1 -1
- package/controllers/widgets/Custom.js +1 -9
- package/controllers/widgets/Info.d.ts +1 -1
- package/controllers/widgets/Info.js +1 -9
- package/controllers/widgets/filterInfo.d.ts +1 -0
- package/controllers/widgets/filterInfo.js +44 -0
- package/controllers/widgets/switch.d.ts +1 -1
- package/controllers/widgets/switch.js +1 -9
- package/controllers/widgetsDB.d.ts +1 -1
- package/controllers/widgetsDB.js +2 -8
- package/helpers/accessRightsHelper.d.ts +1 -1
- package/helpers/accessRightsHelper.js +5 -4
- package/helpers/apiKeyHelper.d.ts +5 -0
- package/helpers/apiKeyHelper.js +8 -0
- package/helpers/configHelper.js +12 -15
- package/helpers/controllerHelper.d.ts +14 -21
- package/helpers/controllerHelper.js +50 -83
- package/helpers/fieldsHelper.js +3 -3
- package/helpers/filterDatetimeHelper.d.ts +5 -0
- package/helpers/filterDatetimeHelper.js +84 -0
- package/helpers/inertiaActionsHelper.d.ts +2 -2
- package/helpers/inertiaActionsHelper.js +5 -4
- package/helpers/inertiaAddHelper.d.ts +3 -414
- package/helpers/inertiaAddHelper.js +39 -15
- package/helpers/inertiaGroupHelper.d.ts +2 -2
- package/helpers/inertiaGroupHelper.js +3 -3
- package/helpers/inertiaListHelper.d.ts +7 -3
- package/helpers/inertiaListHelper.js +26 -12
- package/helpers/inertiaMenuHelper.d.ts +1 -0
- package/helpers/inertiaMenuHelper.js +15 -3
- package/helpers/inertiaUserHelper.d.ts +3 -2
- package/helpers/inertiaUserHelper.js +7 -3
- package/helpers/menuHelper.d.ts +5 -2
- package/helpers/menuHelper.js +64 -12
- package/helpers/viteHelper.js +1 -2
- package/index.d.ts +6 -2
- package/index.js +6 -2
- package/interfaces/adminpanelConfig.d.ts +126 -39
- package/interfaces/internalModelAccess.d.ts +37 -0
- package/interfaces/internalModelAccess.js +1 -0
- package/interfaces/listQueryBuilder.d.ts +22 -0
- package/interfaces/listQueryBuilder.js +1 -0
- package/interfaces/queryCriteria.d.ts +54 -0
- package/interfaces/queryCriteria.js +1 -0
- package/interfaces/types.d.ts +1 -13
- package/lib/Adminizer.d.ts +4 -2
- package/lib/Adminizer.js +29 -10
- package/lib/DataAccessor.d.ts +8 -5
- package/lib/DataAccessor.js +89 -42
- package/lib/I18n.d.ts +5 -1
- package/lib/I18n.js +45 -19
- package/lib/MiddlewareManager.d.ts +8 -0
- package/lib/MiddlewareManager.js +53 -0
- package/lib/ai-assistant/OpenAiModelService.d.ts +3 -3
- package/lib/ai-assistant/OpenAiModelService.js +23 -24
- package/lib/catalog/Navigation.d.ts +1 -0
- package/lib/catalog/Navigation.js +12 -11
- package/lib/controls/jsoneditor/JsonEditor.d.ts +1 -2
- package/lib/controls/markdown/ToastUiEditor.d.ts +1 -2
- package/lib/feedback/FeedbackHandler.js +2 -2
- package/lib/filters/ConditionValidator.d.ts +107 -0
- package/lib/filters/ConditionValidator.js +483 -0
- package/lib/filters/CustomFilterHandler.d.ts +122 -0
- package/lib/filters/CustomFilterHandler.js +131 -0
- package/lib/filters/FilterCustomFieldHandler.d.ts +2 -0
- package/lib/filters/FilterCustomFieldHandler.js +2 -0
- package/lib/filters/FilterService.d.ts +82 -0
- package/lib/filters/FilterService.js +323 -0
- package/lib/filters/index.d.ts +6 -0
- package/lib/filters/index.js +4 -0
- package/lib/history-actions/AbstractHistoryAdapter.d.ts +5 -4
- package/lib/history-actions/AbstractHistoryAdapter.js +45 -30
- package/lib/history-actions/DefaultHistoryAdapter.d.ts +2 -0
- package/lib/history-actions/DefaultHistoryAdapter.js +12 -6
- package/lib/history-actions/HistoryHandler.js +1 -1
- package/lib/list-query-builder/ListQueryBuilder.d.ts +117 -0
- package/lib/list-query-builder/ListQueryBuilder.js +707 -0
- package/lib/media-manager/AbstractMediaManager.d.ts +9 -8
- package/lib/media-manager/DefaultMediaManager.d.ts +2 -0
- package/lib/media-manager/DefaultMediaManager.js +27 -15
- package/lib/media-manager/Items.d.ts +4 -1
- package/lib/media-manager/Items.js +62 -59
- package/lib/media-manager/MediaManagerHandler.js +1 -1
- package/lib/media-manager/helpers/MediaManagerHelper.d.ts +5 -1
- package/lib/media-manager/helpers/MediaManagerHelper.js +38 -4
- package/lib/model/AbstractModel.d.ts +33 -25
- package/lib/model/AbstractModel.js +54 -2
- package/lib/model/InternalModelAccessFactory.d.ts +18 -0
- package/lib/model/InternalModelAccessFactory.js +82 -0
- package/lib/model/ModelHandler.d.ts +6 -0
- package/lib/model/ModelHandler.js +14 -0
- package/lib/model/adapter/sequelize.d.ts +32 -10
- package/lib/model/adapter/sequelize.js +409 -62
- package/lib/model/adapter/typeorm.d.ts +62 -0
- package/lib/model/adapter/typeorm.js +777 -0
- package/lib/model/internalModelAccessToken.d.ts +1 -0
- package/lib/model/internalModelAccessToken.js +1 -0
- package/lib/model/internalModelRepository.d.ts +3 -0
- package/lib/model/internalModelRepository.js +4 -0
- package/lib/notifications/AbstractNotificationService.d.ts +3 -0
- package/lib/notifications/AbstractNotificationService.js +42 -36
- package/lib/notifications/GeneralNotificationService.js +37 -40
- package/lib/notifications/SystemNotificationService.js +33 -36
- package/lib/requestProcessor.js +0 -3
- package/lib/ui-i18n/getUiTranslations.d.ts +1 -0
- package/lib/ui-i18n/getUiTranslations.js +3 -0
- package/lib/ui-i18n/uiTranslationKeys.d.ts +6 -0
- package/lib/ui-i18n/uiTranslationKeys.js +268 -0
- package/lib/widgets/widgetHandler.d.ts +7 -2
- package/lib/widgets/widgetHandler.js +98 -18
- package/models/FilterAP.d.ts +116 -0
- package/models/FilterAP.js +68 -0
- package/models/FilterColumnAP.d.ts +32 -0
- package/models/FilterColumnAP.js +21 -0
- package/models/GroupAP.d.ts +1 -1
- package/models/HistoryActionsAP.d.ts +3 -3
- package/models/MediaManagerMetaAP.d.ts +1 -1
- package/models/NavigationAP.d.ts +1 -1
- package/models/UserAP.d.ts +6 -1
- package/models/UserAP.js +4 -0
- package/package.json +39 -32
- package/policies/authPolicies.d.ts +12 -0
- package/policies/authPolicies.js +104 -0
- package/policies/permissionResolvers.d.ts +12 -0
- package/policies/permissionResolvers.js +52 -0
- package/services/FeedService.d.ts +70 -0
- package/services/FeedService.js +334 -0
- package/system/Router.d.ts +1 -0
- package/system/Router.js +136 -59
- package/system/bindAccessRights.js +11 -30
- package/system/bindAuthorization.js +18 -18
- package/system/bindCors.js +16 -1
- package/system/bindCustomFilterHandlers.d.ts +2 -0
- package/system/bindCustomFilterHandlers.js +4 -0
- package/system/bindInertia.js +18 -61
- package/system/bindReqFunctions.js +10 -2
- package/system/bindTranslations.js +7 -3
- package/system/buildInternalModelAccess.d.ts +4 -0
- package/system/buildInternalModelAccess.js +59 -0
- package/system/defaults.js +18 -14
- package/system/routePolicies.d.ts +2 -0
- package/system/routePolicies.js +29 -0
- package/translations/en.json +151 -39
- package/translations/ru.json +211 -64
- package/ui/components/handsontable.js +13 -27
- package/ui/components/ui/dialog-stack.js +1 -3
- package/ui/components/ui/popover.js +1 -1
- package/ui/components/ui/sidebar.js +1 -1
- package/assets/RelationDialogStack-D9UVEF9s.js +0 -407
- package/assets/RelationDialogStack-DV8OITPR.css +0 -4
- package/assets/add-BlvzWQKF.js +0 -1
- package/assets/add-group-1Uoq9NWe.js +0 -1
- package/assets/add-group-form-B01gwDGu.js +0 -1
- package/assets/add-user-BQCAsaRy.js +0 -1
- package/assets/add-user-form-Cgwc9JkI.js +0 -1
- package/assets/app-DaOMy1nl.css +0 -72
- package/assets/app-layout-CAm60qoE.js +0 -1
- package/assets/app-shell-QWCtn9ye.js +0 -1
- package/assets/app-sidebar-CfaYbnSy.js +0 -1
- package/assets/app-sidebar-header-BsPFDhZ8.js +0 -1
- package/assets/breadcrumbs-CZZirDj8.js +0 -1
- package/assets/catalog-k5myk7fk.js +0 -6
- package/assets/dashboard-BkL9ybBw.js +0 -3
- package/assets/date-picker-B5AZ_7Q9.js +0 -1
- package/assets/del-modal-BoyXZloG.js +0 -1
- package/assets/dynamic-controls-k61T9W2P.js +0 -1
- package/assets/form-1WGY0YgG.js +0 -1
- package/assets/form-DJapG3qF.js +0 -1
- package/assets/geo-json-DsMUHo0l.js +0 -4
- package/assets/handsontable-PxYdjN8c.js +0 -298
- package/assets/history-CluyR-yJ.js +0 -1
- package/assets/home-Dug9zBzM.js +0 -2
- package/assets/icon-DfDLMG5f.js +0 -1
- package/assets/init-user-CF80MEnT.js +0 -1
- package/assets/input-error-DuuqFgZa.js +0 -1
- package/assets/jsoneditor-De1FvcYu.js +0 -3882
- package/assets/list-CuexshNt.js +0 -1
- package/assets/list-table-BsEWjTKY.js +0 -22
- package/assets/login-eDemYzN-.js +0 -1
- package/assets/material-icon-DMT8KdmE.js +0 -1
- package/assets/media-manager-DfYa_mT_.js +0 -14
- package/assets/module-Cd4Tm6uq.js +0 -1
- package/assets/monaco-BhBYtg3d.js +0 -11
- package/assets/nav-footer-D3olYxtz.js +0 -1
- package/assets/nav-main-BctqyzeV.js +0 -1
- package/assets/nav-user-Bn1Lt-BZ.js +0 -1
- package/assets/notification-D64qvni-.js +0 -27
- package/assets/pagination-render-DxD78ahJ.js +0 -1
- package/assets/register-349PwYbe.js +0 -1
- package/assets/theme-switcher-DfExsHW2.js +0 -1
- package/assets/toast-editor-ESK5iWPx.js +0 -845
- package/assets/user-info-DtBK5Kh8.js +0 -1
- package/assets/user-menu-content-0XYOCMaA.js +0 -1
- package/assets/welcome-PDp-gUei.js +0 -1
- package/controllers/form.d.ts +0 -1
- package/controllers/form.js +0 -86
- package/helpers/formHelper.d.ts +0 -6
- package/helpers/formHelper.js +0 -38
- package/helpers/inertiaFromHelper.d.ts +0 -11
- package/helpers/inertiaFromHelper.js +0 -98
- package/helpers/runtimeMode.d.ts +0 -1
- package/helpers/runtimeMode.js +0 -3
- package/lib/PolicyManager.d.ts +0 -8
- package/lib/PolicyManager.js +0 -53
- package/lib/datatable/NodeTable.d.ts +0 -49
- package/lib/datatable/NodeTable.js +0 -207
- package/lib/model/adapter/waterline.d.ts +0 -32
- package/lib/model/adapter/waterline.js +0 -180
- package/migrations/index.d.ts +0 -3
- package/migrations/index.js +0 -4
- package/migrations/knex/20250106000001_adminizer_init.d.ts +0 -8
- package/migrations/knex/20250106000001_adminizer_init.js +0 -164
- package/migrations/umzug/0001.d.ts +0 -7
- package/migrations/umzug/0001.js +0 -121
- package/migrations/umzugExports.d.ts +0 -2
- package/migrations/umzugExports.js +0 -9
- package/system/bindForms.d.ts +0 -2
- package/system/bindForms.js +0 -20
- /package/{policies → middlewares}/addMessages.d.ts +0 -0
- /package/{policies → middlewares}/addMessages.js +0 -0
- /package/{policies → middlewares}/checkAuth.d.ts +0 -0
- /package/{policies → middlewares}/checkAuth.js +0 -0
- /package/{policies → middlewares}/setLocale.d.ts +0 -0
- /package/{policies → middlewares}/setLocale.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c8 as e,ci as G,bX as H,r as V,bW as k,aw as z,b7 as X,ba as Y,bb as Z,b8 as $,b9 as A,bB as q,bF as D,bG as b,bE as p,bC as W,bD as x,bU as v,B as j,aq as _,aB as J}from"./app.js";import{aZ as a}from"./handsontable-BI98OF5R.js";import{A as K}from"./app-layout-C02ja4OI.js";import"./jsoneditor-DVNQmA6G.js";import"./monaco-Bl4zdWCn.js";import"./app-shell-D8wtkECO.js";import"./app-sidebar-BR5_zwxj.js";import"./nav-main-rTH0PfDw.js";import"./material-icon-Bx9pGQiQ.js";import"./app-sidebar-header-BZbIBQjq.js";import"./breadcrumbs-CODaqVkB.js";import"./nav-user-Bj6cWs0a.js";import"./user-info-BgSbT02v.js";import"./user-menu-content-TQTXHIv6.js";import"./theme-switcher-Dm8EOGzx.js";import"./icon-C2JNaLxH.js";import"./RelationDialogStack-DI2bZxQX.js";import"./dynamic-controls-BsrJhPDY.js";import"./input-error-CH2caTtO.js";const Q=50,ee=[];function se({visibility:o,groupNames:d,t:l}){switch(o){case"private":return e.jsxs(j,{variant:"outline",className:"gap-1 text-xs font-normal",children:[e.jsx(J,{className:"h-3 w-3"}),l("Private")]});case"public":return e.jsxs(j,{variant:"outline",className:"gap-1 text-xs font-normal border-emerald-500/50 text-emerald-600 dark:text-emerald-400",children:[e.jsx(_,{className:"h-3 w-3"}),l("Public")]});case"groups":return e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[e.jsxs(j,{variant:"outline",className:"gap-1 text-xs font-normal border-blue-500/50 text-blue-600 dark:text-blue-400",children:[e.jsx(v,{className:"h-3 w-3"}),l("Groups")]}),d&&d.map((t,u)=>e.jsx("span",{className:"text-xs text-muted-foreground",children:t},u))]});default:return e.jsx(j,{variant:"outline",className:"text-xs font-normal",children:o})}}function te({title:o,models:d,apiEndpoint:l}){const{t}=G(),[u,N]=a.useState([]),[E,I]=a.useState(d),[r,g]=a.useState(""),[m,w]=a.useState("all"),[S,y]=a.useState(0),[C,M]=a.useState(!1),[h,F]=a.useState(!1),[L,B]=a.useState(!0),T=a.useRef(null),f=a.useCallback(async(s=!1)=>{if(h)return;const n=s?0:S;s&&(N([]),y(0)),F(!0);try{const i={offset:n,limit:Q};r&&(i.search=r),m!=="all"&&(i.modelName=m);const c=(await H.get(l,{params:i})).data;N(s?c.filters:U=>[...U,...c.filters]),M(c.hasMore),y(n+c.filters.length),c.models&&c.models.length>0&&I(c.models)}catch(i){console.error("Failed to load filters:",i)}finally{F(!1),B(!1)}},[l,h,S,r,m]);a.useEffect(()=>{f(!0)},[]),a.useEffect(()=>{const s=setTimeout(()=>{f(!0)},300);return()=>clearTimeout(s)},[r]),a.useEffect(()=>{f(!0)},[m]),a.useEffect(()=>{const s=new IntersectionObserver(i=>{i[0].isIntersecting&&C&&!h&&f(!1)},{threshold:.1}),n=T.current;return n&&s.observe(n),()=>{n&&s.unobserve(n)}},[C,h,f]);const O=s=>{window.location.href=`/adminizer/model/${s.modelName}?filterId=${s.id}`},P=()=>{g("")},R=r||m!=="all";return L?e.jsx("div",{className:"flex items-center justify-center h-64",children:e.jsx("p",{className:"text-muted-foreground",children:t("Loading...")})}):e.jsxs("div",{className:"flex flex-col gap-4 p-4 h-full",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h1",{className:"text-2xl font-semibold",children:o}),R&&e.jsxs(V,{variant:"destructive",size:"sm",onClick:()=>{g(""),w("all")},className:"gap-1.5",children:[e.jsx(k,{className:"h-4 w-4"}),t("Reset")]})]}),e.jsxs("div",{className:"flex gap-3 items-center",children:[e.jsxs("div",{className:"relative flex-1 max-w-sm",children:[e.jsx(z,{placeholder:t("Search filters..."),value:r,onChange:s=>g(s.target.value)}),r&&e.jsx("button",{className:"absolute right-0 top-0 h-full w-8 px-0 text-destructive cursor-pointer",onClick:P,children:e.jsx(k,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"w-52",children:e.jsxs(X,{value:m,onValueChange:w,children:[e.jsx(Y,{children:e.jsx(Z,{placeholder:t("All models")})}),e.jsxs($,{children:[e.jsx(A,{value:"all",children:t("All models")}),E.map(s=>e.jsx(A,{value:s.name,children:s.title},s.name))]})]})}),e.jsxs("span",{className:"text-sm text-muted-foreground ml-auto",children:[u.length," ",t("found")]})]}),e.jsx("div",{className:"rounded-md border",children:e.jsxs(q,{wrapperHeight:"overflow-y-auto h-[calc(100svh-300px)]",children:[e.jsx(D,{children:e.jsxs(b,{children:[e.jsx(p,{className:"w-[40%]",children:t("Filter Name")}),e.jsx(p,{className:"w-[20%]",children:t("Model")}),e.jsx(p,{className:"w-[15%]",children:t("Visibility")}),e.jsx(p,{className:"w-[10%]",children:t("API access (feed)")}),e.jsx(p,{className:"w-[15%]",children:t("Owner")})]})}),e.jsx(W,{children:u.length===0?e.jsx(b,{children:e.jsx(x,{colSpan:5,className:"text-center text-muted-foreground py-12",children:e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx(v,{className:"h-8 w-8 text-muted-foreground/50"}),e.jsx("p",{children:t("No filters found")})]})})}):u.map(s=>e.jsxs(b,{className:"cursor-pointer group",onClick:()=>O(s),children:[e.jsx(x,{className:"font-medium",children:e.jsx("span",{className:"text-primary group-hover:underline",children:s.name})}),e.jsx(x,{className:"text-muted-foreground",children:s.modelTitle}),e.jsx(x,{children:e.jsx(se,{visibility:s.visibility,groupNames:s.groupNames,t})}),e.jsx(x,{className:"text-sm text-muted-foreground",children:s.apiEnabled?t("Yes"):t("No")}),e.jsx(x,{className:"text-sm text-muted-foreground",children:e.jsx("div",{className:"flex items-center gap-1.5",children:s.isOwner?e.jsxs(e.Fragment,{children:[e.jsx(v,{className:"h-3.5 w-3.5 text-muted-foreground/50"}),t("You")]}):e.jsx(e.Fragment,{children:s.ownerName||t("Unknown")})})})]},s.id))})]})}),e.jsx("div",{ref:T,className:"h-8 flex items-center justify-center",children:h&&!L&&e.jsx("p",{className:"text-sm text-muted-foreground",children:t("Loading more...")})})]})}function Se({title:o,models:d,apiEndpoint:l}){return e.jsx(K,{breadcrumbs:ee,className:"overflow-auto h-[calc(100svh-16px)]",children:e.jsx(te,{title:o,models:d,apiEndpoint:l})})}export{Se as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c8 as a,e as l,g as i,f as c}from"./app.js";import{aZ as o}from"./handsontable-BI98OF5R.js";import"./jsoneditor-DVNQmA6G.js";import"./monaco-Bl4zdWCn.js";function m(){return o.useCallback(n=>{const t=n.trim().split(" ");if(t.length===0)return"";if(t.length===1)return t[0].charAt(0).toUpperCase();const r=t[0].charAt(0),s=t[t.length-1].charAt(0);return`${r}${s}`.toUpperCase()},[])}function h({user:e,showEmail:n=!1}){const t=m();return a.jsxs(a.Fragment,{children:[a.jsxs(l,{className:"h-8 w-8 overflow-hidden rounded-full",children:[a.jsx(i,{src:e.avatar,alt:e.login}),a.jsx(c,{className:"rounded-lg bg-neutral-200 text-black dark:bg-neutral-700 dark:text-white",children:t(e.login)})]}),a.jsxs("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[a.jsx("span",{className:"truncate font-medium",children:e.login}),n&&a.jsx("span",{className:"text-muted-foreground truncate text-xs",children:e.email})]})]})}export{h as UserInfo};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c8 as e,ak as a,al as n,aj as l,az as c,aC as i}from"./app.js";import{UserInfo as m}from"./user-info-BgSbT02v.js";import{aZ as p}from"./handsontable-BI98OF5R.js";import"./jsoneditor-DVNQmA6G.js";import"./monaco-Bl4zdWCn.js";function u(){return p.useCallback(()=>{document.body.style.removeProperty("pointer-events")},[])}function b({user:t,logout:r,logoutBtn:s}){const o=u();return e.jsxs(e.Fragment,{children:[e.jsx(a,{className:"p-0 font-normal",children:e.jsx("div",{className:"flex items-center gap-2 px-1 py-1.5 text-left text-sm",children:e.jsx(m,{user:t,showEmail:!0})})}),e.jsx(n,{}),e.jsx(l,{asChild:!0,children:e.jsxs(c,{className:"block w-full cursor-pointer",method:"get",href:r,as:"button",onClick:o,children:[e.jsx(i,{className:"mr-2"}),s]})})]})}export{b as UserMenuContent};
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* vanilla-picker v2.12.3
|
|
3
|
-
* https://vanilla-picker.js.org
|
|
4
|
-
*
|
|
5
|
-
* Copyright 2017-2024 Andreas Borgen (https://github.com/Sphinxxxx), Adam Brooks (https://github.com/dissimulate)
|
|
6
|
-
* Released under the ISC license.
|
|
7
|
-
*/var O=function(l,n){if(!(l instanceof n))throw new TypeError("Cannot call a class as a function")},R=(function(){function l(n,e){for(var t=0;t<e.length;t++){var r=e[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}return function(n,e,t){return e&&l(n.prototype,e),t&&l(n,t),n}})(),y=(function(){function l(n,e){var t=[],r=!0,i=!1,o=void 0;try{for(var c=n[Symbol.iterator](),a;!(r=(a=c.next()).done)&&(t.push(a.value),!(e&&t.length===e));r=!0);}catch(s){i=!0,o=s}finally{try{!r&&c.return&&c.return()}finally{if(i)throw o}}return t}return function(n,e){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return l(n,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})();String.prototype.startsWith=String.prototype.startsWith||function(l){return this.indexOf(l)===0};String.prototype.padStart=String.prototype.padStart||function(l,n){for(var e=this;e.length<l;)e=n+e;return e};var I={cb:"0f8ff",tqw:"aebd7",q:"-ffff",qmrn:"7fffd4",zr:"0ffff",bg:"5f5dc",bsq:"e4c4",bck:"---",nch:"ebcd",b:"--ff",bvt:"8a2be2",brwn:"a52a2a",brw:"deb887",ctb:"5f9ea0",hrt:"7fff-",chcT:"d2691e",cr:"7f50",rnw:"6495ed",crns:"8dc",crms:"dc143c",cn:"-ffff",Db:"--8b",Dcn:"-8b8b",Dgnr:"b8860b",Dgr:"a9a9a9",Dgrn:"-64-",Dkhk:"bdb76b",Dmgn:"8b-8b",Dvgr:"556b2f",Drng:"8c-",Drch:"9932cc",Dr:"8b--",Dsmn:"e9967a",Dsgr:"8fbc8f",DsTb:"483d8b",DsTg:"2f4f4f",Dtrq:"-ced1",Dvt:"94-d3",ppnk:"1493",pskb:"-bfff",mgr:"696969",grb:"1e90ff",rbrc:"b22222",rwht:"af0",stg:"228b22",chs:"-ff",gnsb:"dcdcdc",st:"8f8ff",g:"d7-",gnr:"daa520",gr:"808080",grn:"-8-0",grnw:"adff2f",hnw:"0fff0",htpn:"69b4",nnr:"cd5c5c",ng:"4b-82",vr:"0",khk:"0e68c",vnr:"e6e6fa",nrb:"0f5",wngr:"7cfc-",mnch:"acd",Lb:"add8e6",Lcr:"08080",Lcn:"e0ffff",Lgnr:"afad2",Lgr:"d3d3d3",Lgrn:"90ee90",Lpnk:"b6c1",Lsmn:"a07a",Lsgr:"20b2aa",Lskb:"87cefa",LsTg:"778899",Lstb:"b0c4de",Lw:"e0",m:"-ff-",mgrn:"32cd32",nn:"af0e6",mgnt:"-ff",mrn:"8--0",mqm:"66cdaa",mmb:"--cd",mmrc:"ba55d3",mmpr:"9370db",msg:"3cb371",mmsT:"7b68ee","":"-fa9a",mtr:"48d1cc",mmvt:"c71585",mnLb:"191970",ntc:"5fffa",mstr:"e4e1",mccs:"e4b5",vjw:"dead",nv:"--80",c:"df5e6",v:"808-0",vrb:"6b8e23",rng:"a5-",rngr:"45-",rch:"da70d6",pgnr:"eee8aa",pgrn:"98fb98",ptrq:"afeeee",pvtr:"db7093",ppwh:"efd5",pchp:"dab9",pr:"cd853f",pnk:"c0cb",pm:"dda0dd",pwrb:"b0e0e6",prp:"8-080",cc:"663399",r:"--",sbr:"bc8f8f",rb:"4169e1",sbrw:"8b4513",smn:"a8072",nbr:"4a460",sgrn:"2e8b57",ssh:"5ee",snn:"a0522d",svr:"c0c0c0",skb:"87ceeb",sTb:"6a5acd",sTgr:"708090",snw:"afa",n:"-ff7f",stb:"4682b4",tn:"d2b48c",t:"-8080",thst:"d8bfd8",tmT:"6347",trqs:"40e0d0",vt:"ee82ee",whT:"5deb3",wht:"",hts:"5f5f5",w:"-",wgrn:"9acd32"};function A(l){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,e=n>0?l.toFixed(n).replace(/0+$/,"").replace(/\.$/,""):l.toString();return e||"0"}var N=(function(){function l(n,e,t,r){O(this,l);var i=this;function o(a){if(a.startsWith("hsl")){var s=a.match(/([\-\d\.e]+)/g).map(Number),p=y(s,4),f=p[0],u=p[1],d=p[2],b=p[3];b===void 0&&(b=1),f/=360,u/=100,d/=100,i.hsla=[f,u,d,b]}else if(a.startsWith("rgb")){var m=a.match(/([\-\d\.e]+)/g).map(Number),h=y(m,4),v=h[0],g=h[1],E=h[2],k=h[3];k===void 0&&(k=1),i.rgba=[v,g,E,k]}else a.startsWith("#")?i.rgba=l.hexToRgb(a):i.rgba=l.nameToRgb(a)||l.hexToRgb(a)}if(n!==void 0)if(Array.isArray(n))this.rgba=n;else if(t===void 0){var c=n&&""+n;c&&o(c.toLowerCase())}else this.rgba=[n,e,t,r===void 0?1:r]}return R(l,[{key:"printRGB",value:function(e){var t=e?this.rgba:this.rgba.slice(0,3),r=t.map(function(i,o){return A(i,o===3?3:0)});return e?"rgba("+r+")":"rgb("+r+")"}},{key:"printHSL",value:function(e){var t=[360,100,100,1],r=["","%","%",""],i=e?this.hsla:this.hsla.slice(0,3),o=i.map(function(c,a){return A(c*t[a],a===3?3:1)+r[a]});return e?"hsla("+o+")":"hsl("+o+")"}},{key:"printHex",value:function(e){var t=this.hex;return e?t:t.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=l.hslToRgb(this._hsla)},set:function(e){e.length===3&&(e[3]=1),this._rgba=e,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=l.rgbToHsl(this._rgba)},set:function(e){e.length===3&&(e[3]=1),this._hsla=e,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var e=this.rgba,t=e.map(function(r,i){return i<3?r.toString(16):Math.round(r*255).toString(16)});return"#"+t.map(function(r){return r.padStart(2,"0")}).join("")},set:function(e){this.rgba=l.hexToRgb(e)}}],[{key:"hexToRgb",value:function(e){var t=(e.startsWith("#")?e.slice(1):e).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!t.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+e);var r=t.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(i){return parseInt(i,16)});return r[3]=r[3]/255,r}},{key:"nameToRgb",value:function(e){var t=e.toLowerCase().replace("at","T").replace(/[aeiouyldf]/g,"").replace("ght","L").replace("rk","D").slice(-5,4),r=I[t];return r===void 0?r:l.hexToRgb(r.replace(/\-/g,"00").padStart(6,"f"))}},{key:"rgbToHsl",value:function(e){var t=y(e,4),r=t[0],i=t[1],o=t[2],c=t[3];r/=255,i/=255,o/=255;var a=Math.max(r,i,o),s=Math.min(r,i,o),p=void 0,f=void 0,u=(a+s)/2;if(a===s)p=f=0;else{var d=a-s;switch(f=u>.5?d/(2-a-s):d/(a+s),a){case r:p=(i-o)/d+(i<o?6:0);break;case i:p=(o-r)/d+2;break;case o:p=(r-i)/d+4;break}p/=6}return[p,f,u,c]}},{key:"hslToRgb",value:function(e){var t=y(e,4),r=t[0],i=t[1],o=t[2],c=t[3],a=void 0,s=void 0,p=void 0;if(i===0)a=s=p=o;else{var f=function(h,v,g){return g<0&&(g+=1),g>1&&(g-=1),g<.16666666666666666?h+(v-h)*6*g:g<.5?v:g<.6666666666666666?h+(v-h)*(.6666666666666666-g)*6:h},u=o<.5?o*(1+i):o+i-o*i,d=2*o-u;a=f(d,u,r+1/3),s=f(d,u,r),p=f(d,u,r-1/3)}var b=[a*255,s*255,p*255].map(Math.round);return b[3]=c,b}}]),l})(),z=(function(){function l(){O(this,l),this._events=[]}return R(l,[{key:"add",value:function(e,t,r){e.addEventListener(t,r,!1),this._events.push({target:e,type:t,handler:r})}},{key:"remove",value:function(e,t,r){this._events=this._events.filter(function(i){var o=!0;return e&&e!==i.target&&(o=!1),t&&t!==i.type&&(o=!1),r&&r!==i.handler&&(o=!1),o&&l._doRemove(i.target,i.type,i.handler),!o})}},{key:"destroy",value:function(){this._events.forEach(function(e){return l._doRemove(e.target,e.type,e.handler)}),this._events=[]}}],[{key:"_doRemove",value:function(e,t,r){e.removeEventListener(t,r,!1)}}]),l})();function F(l){var n=document.createElement("div");return n.innerHTML=l,n.firstElementChild}function L(l,n,e){var t=!1;function r(a,s,p){return Math.max(s,Math.min(a,p))}function i(a,s,p){if(p&&(t=!0),!!t){a.preventDefault();var f=n.getBoundingClientRect(),u=f.width,d=f.height,b=s.clientX,m=s.clientY,h=r(b-f.left,0,u),v=r(m-f.top,0,d);e(h/u,v/d)}}function o(a,s){var p=a.buttons===void 0?a.which:a.buttons;p===1?i(a,a,s):t=!1}function c(a,s){a.touches.length===1?i(a,a.touches[0],s):t=!1}l.add(n,"mousedown",function(a){o(a,!0)}),l.add(n,"touchstart",function(a){c(a,!0)}),l.add(window,"mousemove",o),l.add(n,"touchmove",c),l.add(window,"mouseup",function(a){t=!1}),l.add(n,"touchend",function(a){t=!1}),l.add(n,"touchcancel",function(a){t=!1})}var U=`linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em,
|
|
1
|
+
var O=function(l,n){if(!(l instanceof n))throw new TypeError("Cannot call a class as a function")},R=(function(){function l(n,e){for(var t=0;t<e.length;t++){var r=e[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}return function(n,e,t){return e&&l(n.prototype,e),t&&l(n,t),n}})(),y=(function(){function l(n,e){var t=[],r=!0,i=!1,o=void 0;try{for(var c=n[Symbol.iterator](),a;!(r=(a=c.next()).done)&&(t.push(a.value),!(e&&t.length===e));r=!0);}catch(s){i=!0,o=s}finally{try{!r&&c.return&&c.return()}finally{if(i)throw o}}return t}return function(n,e){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return l(n,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})();String.prototype.startsWith=String.prototype.startsWith||function(l){return this.indexOf(l)===0};String.prototype.padStart=String.prototype.padStart||function(l,n){for(var e=this;e.length<l;)e=n+e;return e};var I={cb:"0f8ff",tqw:"aebd7",q:"-ffff",qmrn:"7fffd4",zr:"0ffff",bg:"5f5dc",bsq:"e4c4",bck:"---",nch:"ebcd",b:"--ff",bvt:"8a2be2",brwn:"a52a2a",brw:"deb887",ctb:"5f9ea0",hrt:"7fff-",chcT:"d2691e",cr:"7f50",rnw:"6495ed",crns:"8dc",crms:"dc143c",cn:"-ffff",Db:"--8b",Dcn:"-8b8b",Dgnr:"b8860b",Dgr:"a9a9a9",Dgrn:"-64-",Dkhk:"bdb76b",Dmgn:"8b-8b",Dvgr:"556b2f",Drng:"8c-",Drch:"9932cc",Dr:"8b--",Dsmn:"e9967a",Dsgr:"8fbc8f",DsTb:"483d8b",DsTg:"2f4f4f",Dtrq:"-ced1",Dvt:"94-d3",ppnk:"1493",pskb:"-bfff",mgr:"696969",grb:"1e90ff",rbrc:"b22222",rwht:"af0",stg:"228b22",chs:"-ff",gnsb:"dcdcdc",st:"8f8ff",g:"d7-",gnr:"daa520",gr:"808080",grn:"-8-0",grnw:"adff2f",hnw:"0fff0",htpn:"69b4",nnr:"cd5c5c",ng:"4b-82",vr:"0",khk:"0e68c",vnr:"e6e6fa",nrb:"0f5",wngr:"7cfc-",mnch:"acd",Lb:"add8e6",Lcr:"08080",Lcn:"e0ffff",Lgnr:"afad2",Lgr:"d3d3d3",Lgrn:"90ee90",Lpnk:"b6c1",Lsmn:"a07a",Lsgr:"20b2aa",Lskb:"87cefa",LsTg:"778899",Lstb:"b0c4de",Lw:"e0",m:"-ff-",mgrn:"32cd32",nn:"af0e6",mgnt:"-ff",mrn:"8--0",mqm:"66cdaa",mmb:"--cd",mmrc:"ba55d3",mmpr:"9370db",msg:"3cb371",mmsT:"7b68ee","":"-fa9a",mtr:"48d1cc",mmvt:"c71585",mnLb:"191970",ntc:"5fffa",mstr:"e4e1",mccs:"e4b5",vjw:"dead",nv:"--80",c:"df5e6",v:"808-0",vrb:"6b8e23",rng:"a5-",rngr:"45-",rch:"da70d6",pgnr:"eee8aa",pgrn:"98fb98",ptrq:"afeeee",pvtr:"db7093",ppwh:"efd5",pchp:"dab9",pr:"cd853f",pnk:"c0cb",pm:"dda0dd",pwrb:"b0e0e6",prp:"8-080",cc:"663399",r:"--",sbr:"bc8f8f",rb:"4169e1",sbrw:"8b4513",smn:"a8072",nbr:"4a460",sgrn:"2e8b57",ssh:"5ee",snn:"a0522d",svr:"c0c0c0",skb:"87ceeb",sTb:"6a5acd",sTgr:"708090",snw:"afa",n:"-ff7f",stb:"4682b4",tn:"d2b48c",t:"-8080",thst:"d8bfd8",tmT:"6347",trqs:"40e0d0",vt:"ee82ee",whT:"5deb3",wht:"",hts:"5f5f5",w:"-",wgrn:"9acd32"};function A(l){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,e=n>0?l.toFixed(n).replace(/0+$/,"").replace(/\.$/,""):l.toString();return e||"0"}var N=(function(){function l(n,e,t,r){O(this,l);var i=this;function o(a){if(a.startsWith("hsl")){var s=a.match(/([\-\d\.e]+)/g).map(Number),p=y(s,4),f=p[0],u=p[1],d=p[2],b=p[3];b===void 0&&(b=1),f/=360,u/=100,d/=100,i.hsla=[f,u,d,b]}else if(a.startsWith("rgb")){var m=a.match(/([\-\d\.e]+)/g).map(Number),h=y(m,4),v=h[0],g=h[1],E=h[2],k=h[3];k===void 0&&(k=1),i.rgba=[v,g,E,k]}else a.startsWith("#")?i.rgba=l.hexToRgb(a):i.rgba=l.nameToRgb(a)||l.hexToRgb(a)}if(n!==void 0)if(Array.isArray(n))this.rgba=n;else if(t===void 0){var c=n&&""+n;c&&o(c.toLowerCase())}else this.rgba=[n,e,t,r===void 0?1:r]}return R(l,[{key:"printRGB",value:function(e){var t=e?this.rgba:this.rgba.slice(0,3),r=t.map(function(i,o){return A(i,o===3?3:0)});return e?"rgba("+r+")":"rgb("+r+")"}},{key:"printHSL",value:function(e){var t=[360,100,100,1],r=["","%","%",""],i=e?this.hsla:this.hsla.slice(0,3),o=i.map(function(c,a){return A(c*t[a],a===3?3:1)+r[a]});return e?"hsla("+o+")":"hsl("+o+")"}},{key:"printHex",value:function(e){var t=this.hex;return e?t:t.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=l.hslToRgb(this._hsla)},set:function(e){e.length===3&&(e[3]=1),this._rgba=e,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=l.rgbToHsl(this._rgba)},set:function(e){e.length===3&&(e[3]=1),this._hsla=e,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var e=this.rgba,t=e.map(function(r,i){return i<3?r.toString(16):Math.round(r*255).toString(16)});return"#"+t.map(function(r){return r.padStart(2,"0")}).join("")},set:function(e){this.rgba=l.hexToRgb(e)}}],[{key:"hexToRgb",value:function(e){var t=(e.startsWith("#")?e.slice(1):e).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!t.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+e);var r=t.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(i){return parseInt(i,16)});return r[3]=r[3]/255,r}},{key:"nameToRgb",value:function(e){var t=e.toLowerCase().replace("at","T").replace(/[aeiouyldf]/g,"").replace("ght","L").replace("rk","D").slice(-5,4),r=I[t];return r===void 0?r:l.hexToRgb(r.replace(/\-/g,"00").padStart(6,"f"))}},{key:"rgbToHsl",value:function(e){var t=y(e,4),r=t[0],i=t[1],o=t[2],c=t[3];r/=255,i/=255,o/=255;var a=Math.max(r,i,o),s=Math.min(r,i,o),p=void 0,f=void 0,u=(a+s)/2;if(a===s)p=f=0;else{var d=a-s;switch(f=u>.5?d/(2-a-s):d/(a+s),a){case r:p=(i-o)/d+(i<o?6:0);break;case i:p=(o-r)/d+2;break;case o:p=(r-i)/d+4;break}p/=6}return[p,f,u,c]}},{key:"hslToRgb",value:function(e){var t=y(e,4),r=t[0],i=t[1],o=t[2],c=t[3],a=void 0,s=void 0,p=void 0;if(i===0)a=s=p=o;else{var f=function(h,v,g){return g<0&&(g+=1),g>1&&(g-=1),g<.16666666666666666?h+(v-h)*6*g:g<.5?v:g<.6666666666666666?h+(v-h)*(.6666666666666666-g)*6:h},u=o<.5?o*(1+i):o+i-o*i,d=2*o-u;a=f(d,u,r+1/3),s=f(d,u,r),p=f(d,u,r-1/3)}var b=[a*255,s*255,p*255].map(Math.round);return b[3]=c,b}}]),l})(),z=(function(){function l(){O(this,l),this._events=[]}return R(l,[{key:"add",value:function(e,t,r){e.addEventListener(t,r,!1),this._events.push({target:e,type:t,handler:r})}},{key:"remove",value:function(e,t,r){this._events=this._events.filter(function(i){var o=!0;return e&&e!==i.target&&(o=!1),t&&t!==i.type&&(o=!1),r&&r!==i.handler&&(o=!1),o&&l._doRemove(i.target,i.type,i.handler),!o})}},{key:"destroy",value:function(){this._events.forEach(function(e){return l._doRemove(e.target,e.type,e.handler)}),this._events=[]}}],[{key:"_doRemove",value:function(e,t,r){e.removeEventListener(t,r,!1)}}]),l})();function F(l){var n=document.createElement("div");return n.innerHTML=l,n.firstElementChild}function L(l,n,e){var t=!1;function r(a,s,p){return Math.max(s,Math.min(a,p))}function i(a,s,p){if(p&&(t=!0),!!t){a.preventDefault();var f=n.getBoundingClientRect(),u=f.width,d=f.height,b=s.clientX,m=s.clientY,h=r(b-f.left,0,u),v=r(m-f.top,0,d);e(h/u,v/d)}}function o(a,s){var p=a.buttons===void 0?a.which:a.buttons;p===1?i(a,a,s):t=!1}function c(a,s){a.touches.length===1?i(a,a.touches[0],s):t=!1}l.add(n,"mousedown",function(a){o(a,!0)}),l.add(n,"touchstart",function(a){c(a,!0)}),l.add(window,"mousemove",o),l.add(n,"touchmove",c),l.add(window,"mouseup",function(a){t=!1}),l.add(n,"touchend",function(a){t=!1}),l.add(n,"touchcancel",function(a){t=!1})}var U=`linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em,
|
|
8
2
|
linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em`,B=360,P="keydown",x="mousedown",T="focusin";function _(l,n){return(n||document).querySelector(l)}function G(l){l.preventDefault(),l.stopPropagation()}function H(l,n,e,t,r){l.add(n,P,function(i){e.indexOf(i.key)>=0&&t(i)})}var K=(function(){function l(n){O(this,l),this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex",cancelButton:!1,defaultColor:"#0cf"},this._events=new z,this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,this.setOptions(n)}return R(l,[{key:"setOptions",value:function(e){var t=this;if(!e)return;var r=this.settings;function i(s,p,f){for(var u in s)p[u]=s[u]}if(e instanceof HTMLElement)r.parent=e;else{r.parent&&e.parent&&r.parent!==e.parent&&(this._events.remove(r.parent),this._popupInited=!1),i(e,r),e.onChange&&(this.onChange=e.onChange),e.onDone&&(this.onDone=e.onDone),e.onOpen&&(this.onOpen=e.onOpen),e.onClose&&(this.onClose=e.onClose);var o=e.color||e.colour;o&&this._setColor(o)}var c=r.parent;if(c&&r.popup&&!this._popupInited){var a=function(p){return t.openHandler(p)};this._events.add(c,"click",a),H(this._events,c,[" ","Spacebar","Enter"],a),this._popupInited=!0}else e.parent&&!r.popup&&this.show()}},{key:"openHandler",value:function(e){if(this.show()){e&&e.preventDefault(),this.settings.parent.style.pointerEvents="none";var t=e&&e.type===P?this._domEdit:this.domElement;setTimeout(function(){return t.focus()},100),this.onOpen&&this.onOpen(this.colour)}}},{key:"closeHandler",value:function(e){var t=e&&e.type,r=!1;if(!e)r=!0;else if(t===x||t===T){var i=(this.__containedEvent||0)+100;e.timeStamp>i&&(r=!0)}else G(e),r=!0;r&&this.hide()&&(this.settings.parent.style.pointerEvents="",t!==x&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}},{key:"movePopup",value:function(e,t){this.closeHandler(),this.setOptions(e),t&&this.openHandler()}},{key:"setColor",value:function(e,t){this._setColor(e,{silent:t})}},{key:"_setColor",value:function(e,t){if(typeof e=="string"&&(e=e.trim()),!!e){t=t||{};var r=void 0;try{r=new N(e)}catch(o){if(t.failSilently)return;throw o}if(!this.settings.alpha){var i=r.hsla;i[3]=1,r.hsla=i}this.colour=this.color=r,this._setHSLA(null,null,null,null,t)}}},{key:"setColour",value:function(e,t){this.setColor(e,t)}},{key:"show",value:function(){var e=this.settings.parent;if(!e)return!1;if(this.domElement){var t=this._toggleDOM(!0);return this._setPosition(),t}var r=this.settings.template||'<div class="picker_wrapper" tabindex="-1"><div class="picker_arrow"></div><div class="picker_hue picker_slider"><div class="picker_selector"></div></div><div class="picker_sl"><div class="picker_selector"></div></div><div class="picker_alpha picker_slider"><div class="picker_selector"></div></div><div class="picker_editor"><input aria-label="Type a color name or hex value"/></div><div class="picker_sample"></div><div class="picker_done"><button>Ok</button></div><div class="picker_cancel"><button>Cancel</button></div></div>',i=F(r);return this.domElement=i,this._domH=_(".picker_hue",i),this._domSL=_(".picker_sl",i),this._domA=_(".picker_alpha",i),this._domEdit=_(".picker_editor input",i),this._domSample=_(".picker_sample",i),this._domOkay=_(".picker_done button",i),this._domCancel=_(".picker_cancel button",i),i.classList.add("layout_"+this.settings.layout),this.settings.alpha||i.classList.add("no_alpha"),this.settings.editor||i.classList.add("no_editor"),this.settings.cancelButton||i.classList.add("no_cancel"),this._ifPopup(function(){return i.classList.add("popup")}),this._setPosition(),this.colour?this._updateUI():this._setColor(this.settings.defaultColor),this._bindEvents(),!0}},{key:"hide",value:function(){return this._toggleDOM(!1)}},{key:"destroy",value:function(){this._events.destroy(),this.domElement&&this.settings.parent.removeChild(this.domElement)}},{key:"_bindEvents",value:function(){var e=this,t=this,r=this.domElement,i=this._events;function o(s,p,f){i.add(s,p,f)}o(r,"click",function(s){return s.preventDefault()}),L(i,this._domH,function(s,p){return t._setHSLA(s)}),L(i,this._domSL,function(s,p){return t._setHSLA(null,s,1-p)}),this.settings.alpha&&L(i,this._domA,function(s,p){return t._setHSLA(null,null,null,1-p)});var c=this._domEdit;o(c,"input",function(s){t._setColor(this.value,{fromEditor:!0,failSilently:!0})}),o(c,"focus",function(s){var p=this;p.selectionStart===p.selectionEnd&&p.select()}),this._ifPopup(function(){var s=function(u){return e.closeHandler(u)};o(window,x,s),o(window,T,s),H(i,r,["Esc","Escape"],s);var p=function(u){e.__containedEvent=u.timeStamp};o(r,x,p),o(r,T,p),o(e._domCancel,"click",s)});var a=function(p){e._ifPopup(function(){return e.closeHandler(p)}),e.onDone&&e.onDone(e.colour)};o(this._domOkay,"click",a),H(i,r,["Enter"],a)}},{key:"_setPosition",value:function(){var e=this.settings.parent,t=this.domElement;e!==t.parentNode&&e.appendChild(t),this._ifPopup(function(r){getComputedStyle(e).position==="static"&&(e.style.position="relative");var i=r===!0?"popup_right":"popup_"+r;["popup_top","popup_bottom","popup_left","popup_right"].forEach(function(o){o===i?t.classList.add(o):t.classList.remove(o)}),t.classList.add(i)})}},{key:"_setHSLA",value:function(e,t,r,i,o){o=o||{};var c=this.colour,a=c.hsla;[e,t,r,i].forEach(function(s,p){(s||s===0)&&(a[p]=s)}),c.hsla=a,this._updateUI(o),this.onChange&&!o.silent&&this.onChange(c)}},{key:"_updateUI",value:function(e){if(!this.domElement)return;e=e||{};var t=this.colour,r=t.hsla,i="hsl("+r[0]*B+", 100%, 50%)",o=t.hslString,c=t.hslaString,a=this._domH,s=this._domSL,p=this._domA,f=_(".picker_selector",a),u=_(".picker_selector",s),d=_(".picker_selector",p);function b(M,S,C){S.style.left=C*100+"%"}function m(M,S,C){S.style.top=C*100+"%"}b(a,f,r[0]),this._domSL.style.backgroundColor=this._domH.style.color=i,b(s,u,r[1]),m(s,u,1-r[2]),s.style.color=o,m(p,d,1-r[3]);var h=o,v=h.replace("hsl","hsla").replace(")",", 0)"),g="linear-gradient("+[h,v]+")";if(this._domA.style.background=g+", "+U,!e.fromEditor){var E=this.settings.editorFormat,k=this.settings.alpha,w=void 0;switch(E){case"rgb":w=t.printRGB(k);break;case"hsl":w=t.printHSL(k);break;default:w=t.printHex(k)}this._domEdit.value=w}this._domSample.style.color=c}},{key:"_ifPopup",value:function(e,t){this.settings.parent&&this.settings.popup?e&&e(this.settings.popup):t&&t()}},{key:"_toggleDOM",value:function(e){var t=this.domElement;if(!t)return!1;var r=e?"":"none",i=t.style.display!==r;return i&&(t.style.display=r),i}}]),l})();{var D=document.createElement("style");D.textContent='.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.picker_wrapper.no_cancel .picker_cancel{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:"";display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:"";display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6.5rem}.layout_default .picker_editor input{width:100%;height:100%}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done,.layout_default .picker_cancel{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{box-sizing:border-box;border:none;box-shadow:0 0 0 1px silver;outline:none}.picker_wrapper button:focus,.picker_wrapper button:active,.picker_wrapper input:focus,.picker_wrapper input:active{box-shadow:0 0 2px 1px #1e90ff}.picker_wrapper button{padding:.4em .6em;cursor:pointer;background-color:#f5f5f5;background-image:linear-gradient(0deg, gainsboro, transparent)}.picker_wrapper button:active{background-image:linear-gradient(0deg, transparent, gainsboro)}.picker_wrapper button:hover{background-color:#fff}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid #fff;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255, 255, 255, 0) 50%),linear-gradient(0deg, black, rgba(0, 0, 0, 0) 50%),linear-gradient(90deg, #808080, rgba(128, 128, 128, 0))}.picker_alpha,.picker_sample{position:relative;background:linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0/2em 2em,linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em/2em 2em;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{font-family:monospace;padding:.2em .4em}.picker_sample::before{content:"";position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:"";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}',document.documentElement.firstElementChild.appendChild(D),K.StyleElement=D}export{K as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ck as o,c8 as t}from"./app.js";import{A as p}from"./app-layout-C02ja4OI.js";import"./jsoneditor-DVNQmA6G.js";import"./handsontable-BI98OF5R.js";import"./monaco-Bl4zdWCn.js";import"./app-shell-D8wtkECO.js";import"./app-sidebar-BR5_zwxj.js";import"./nav-main-rTH0PfDw.js";import"./material-icon-Bx9pGQiQ.js";import"./app-sidebar-header-BZbIBQjq.js";import"./breadcrumbs-CODaqVkB.js";import"./nav-user-Bj6cWs0a.js";import"./user-info-BgSbT02v.js";import"./user-menu-content-TQTXHIv6.js";import"./theme-switcher-Dm8EOGzx.js";import"./icon-C2JNaLxH.js";import"./RelationDialogStack-DI2bZxQX.js";import"./dynamic-controls-BsrJhPDY.js";import"./input-error-CH2caTtO.js";const i=[];function L(){const r=o();return t.jsx(p,{breadcrumbs:i,children:t.jsxs("div",{className:"flex h-full flex-1 flex-col gap-4 rounded-xl p-4",children:[r.props.title&&t.jsx("div",{className:"text-3xl mb-8",children:r.props.title}),t.jsx("div",{className:"text-3xl mb-8",children:"Adminizer"}),r.props.text&&t.jsx("div",{dangerouslySetInnerHTML:{__html:r.props.text}})]})})}export{L as default};
|
package/controllers/add.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function add(req: ReqType, res: ResType): Promise<
|
|
1
|
+
export default function add(req: ReqType, res: ResType): Promise<import("express").Response<any, Record<string, any>>>;
|
package/controllers/add.js
CHANGED
|
@@ -1,28 +1,19 @@
|
|
|
1
1
|
import { ControllerHelper } from "../helpers/controllerHelper.js";
|
|
2
2
|
import { RequestProcessor } from "../lib/requestProcessor.js";
|
|
3
3
|
import { FieldsHelper } from "../helpers/fieldsHelper.js";
|
|
4
|
-
import { detachMediaManagerField, saveRelationsMediaManager } from "../lib/media-manager/helpers/MediaManagerHelper.js";
|
|
4
|
+
import { detachMediaManagerField, isMediaManagerFieldConfig, saveRelationsMediaManager, updateCurrentHistoryMediaManagerData } from "../lib/media-manager/helpers/MediaManagerHelper.js";
|
|
5
5
|
import { DataAccessor } from "../lib/DataAccessor.js";
|
|
6
6
|
import { Adminizer } from "../lib/Adminizer.js";
|
|
7
7
|
import inertiaAddHelper from "../helpers/inertiaAddHelper.js";
|
|
8
|
-
import { redirectToLogin } from '../helpers/inertiaAutHelper.js';
|
|
9
8
|
export default async function add(req, res) {
|
|
10
|
-
let
|
|
11
|
-
if (!
|
|
9
|
+
let modelResource = ControllerHelper.findModelResource(req);
|
|
10
|
+
if (!modelResource.model) {
|
|
12
11
|
return res.status(404).send({ error: 'Model not Found' });
|
|
13
12
|
}
|
|
14
|
-
if (!
|
|
15
|
-
return req.Inertia.redirect(`${req.adminizer.config.routePrefix}/${
|
|
13
|
+
if (!modelResource.config?.add) {
|
|
14
|
+
return req.Inertia.redirect(`${req.adminizer.config.routePrefix}/${modelResource.uri}`);
|
|
16
15
|
}
|
|
17
|
-
|
|
18
|
-
if (!req.user) {
|
|
19
|
-
return redirectToLogin(req, res);
|
|
20
|
-
}
|
|
21
|
-
else if (!req.adminizer.accessRightsHelper.hasPermission(`create-${entity.name}-model`, req.user)) {
|
|
22
|
-
return res.sendStatus(403);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
let dataAccessor = new DataAccessor(req.adminizer, req.user, entity, "add");
|
|
16
|
+
let dataAccessor = new DataAccessor(req.adminizer, req.user, modelResource, "add");
|
|
26
17
|
let fields = dataAccessor.getFieldsConfig();
|
|
27
18
|
// add deprecated 'records' to config
|
|
28
19
|
fields = await FieldsHelper.loadAssociations(req, fields, "add");
|
|
@@ -51,7 +42,7 @@ export default async function add(req, res) {
|
|
|
51
42
|
}
|
|
52
43
|
}
|
|
53
44
|
}
|
|
54
|
-
if (fieldConfigConfig
|
|
45
|
+
if (isMediaManagerFieldConfig(fieldConfigConfig)) {
|
|
55
46
|
detachMediaManagerField(reqData, rawReqData, prop);
|
|
56
47
|
continue;
|
|
57
48
|
}
|
|
@@ -75,25 +66,28 @@ export default async function add(req, res) {
|
|
|
75
66
|
reqData[prop] = reqData[prop].join("");
|
|
76
67
|
}
|
|
77
68
|
}
|
|
78
|
-
// callback before save
|
|
79
|
-
let
|
|
80
|
-
if (typeof
|
|
81
|
-
reqData =
|
|
69
|
+
// callback before save modelResource
|
|
70
|
+
let addConfig = modelResource.config.add;
|
|
71
|
+
if (typeof addConfig.entityModifier === "function") {
|
|
72
|
+
reqData = addConfig.entityModifier(reqData);
|
|
82
73
|
}
|
|
83
74
|
try {
|
|
84
|
-
let record = await
|
|
75
|
+
let record = await modelResource.model.create(reqData, dataAccessor);
|
|
76
|
+
const identifierField = modelResource.config.identifierField || req.adminizer.config.identifierField;
|
|
77
|
+
const redirectId = record?.[identifierField] ?? record?.id;
|
|
85
78
|
// save associations media to json
|
|
86
|
-
await saveRelationsMediaManager(req.adminizer, fields, rawReqData,
|
|
79
|
+
await saveRelationsMediaManager(req.adminizer, fields, rawReqData, modelResource.model.identity, record.id);
|
|
80
|
+
await updateCurrentHistoryMediaManagerData(req.adminizer, fields, rawReqData, modelResource.name, record.id);
|
|
87
81
|
Adminizer.log.debug(`A new record was created: `, record);
|
|
88
82
|
if (req.body.jsonPopupCatalog) {
|
|
89
|
-
dataAccessor = new DataAccessor(req.adminizer, req.user,
|
|
90
|
-
record = await
|
|
83
|
+
dataAccessor = new DataAccessor(req.adminizer, req.user, modelResource, "edit");
|
|
84
|
+
record = await modelResource.model.findOne({ where: { id: record.id } }, dataAccessor);
|
|
91
85
|
// await new Promise(resolve => setTimeout(resolve, 2000));
|
|
92
86
|
return res.json({ record: record });
|
|
93
87
|
}
|
|
94
88
|
else {
|
|
95
89
|
req.flash.setFlashMessage('success', req.i18n.__('New record was created'));
|
|
96
|
-
return req.Inertia.redirect(`${req.adminizer.config.routePrefix}/model/${
|
|
90
|
+
return req.Inertia.redirect(`${req.adminizer.config.routePrefix}/model/${modelResource.name}/edit/${redirectId}`);
|
|
97
91
|
}
|
|
98
92
|
}
|
|
99
93
|
catch (e) {
|
|
@@ -102,7 +96,7 @@ export default async function add(req, res) {
|
|
|
102
96
|
data = reqData;
|
|
103
97
|
}
|
|
104
98
|
}
|
|
105
|
-
const props = inertiaAddHelper(req,
|
|
99
|
+
const props = inertiaAddHelper(req, modelResource, fields);
|
|
106
100
|
if (req.query?.without_layout) {
|
|
107
101
|
return res.json({
|
|
108
102
|
props: props
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function addGroup(req: ReqType, res: ResType): Promise<
|
|
1
|
+
export default function addGroup(req: ReqType, res: ResType): Promise<import("express").Response<any, Record<string, any>>>;
|
package/controllers/addGroup.js
CHANGED
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
import { ControllerHelper } from "../helpers/controllerHelper.js";
|
|
2
2
|
import { Adminizer } from "../lib/Adminizer.js";
|
|
3
3
|
import { inertiaGroupHelper } from "../helpers/inertiaGroupHelper.js";
|
|
4
|
-
import { redirectToLogin } from '../helpers/inertiaAutHelper.js';
|
|
5
4
|
export default async function addGroup(req, res) {
|
|
6
|
-
let
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
else if (!req.adminizer.accessRightsHelper.hasPermission(`create-${entity.name}-model`, req.user)) {
|
|
12
|
-
return res.sendStatus(403);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
5
|
+
let modelResource = ControllerHelper.findModelResource(req);
|
|
6
|
+
const internalUsers = req.adminizer.modelHandler.internal("users");
|
|
7
|
+
const userModel = internalUsers.get("UserAP");
|
|
8
|
+
const groupModel = internalUsers.get("GroupAP");
|
|
15
9
|
let users;
|
|
16
10
|
try {
|
|
17
|
-
|
|
18
|
-
users = await req.adminizer.modelHandler.model.get("UserAP")["_find"]({ isAdministrator: false });
|
|
11
|
+
users = await userModel.find({ where: { isAdministrator: false } });
|
|
19
12
|
}
|
|
20
13
|
catch (e) {
|
|
21
14
|
Adminizer.log.error(e);
|
|
@@ -47,8 +40,7 @@ export default async function addGroup(req, res) {
|
|
|
47
40
|
}
|
|
48
41
|
let group;
|
|
49
42
|
try {
|
|
50
|
-
|
|
51
|
-
group = await req.adminizer.modelHandler.model.get("GroupAP")?.["_create"]({
|
|
43
|
+
group = await groupModel.create({
|
|
52
44
|
name: req.body.name, description: req.body.description,
|
|
53
45
|
users: usersInThisGroup, tokens: tokensOfThisGroup
|
|
54
46
|
});
|
|
@@ -61,7 +53,7 @@ export default async function addGroup(req, res) {
|
|
|
61
53
|
req.session.messages.adminError.push(e.message || 'Something went wrong...');
|
|
62
54
|
}
|
|
63
55
|
}
|
|
64
|
-
const props = inertiaGroupHelper(
|
|
56
|
+
const props = inertiaGroupHelper(modelResource, req, users, groupedTokens);
|
|
65
57
|
return req.Inertia.render({
|
|
66
58
|
component: 'add-group',
|
|
67
59
|
props: props
|
package/controllers/addUser.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function (req: ReqType, res: ResType): Promise<
|
|
1
|
+
export default function (req: ReqType, res: ResType): Promise<import("express").Response<any, Record<string, any>>>;
|
package/controllers/addUser.js
CHANGED
|
@@ -2,21 +2,15 @@ import { ControllerHelper } from "../helpers/controllerHelper.js";
|
|
|
2
2
|
import { Adminizer } from "../lib/Adminizer.js";
|
|
3
3
|
import { generate } from 'password-hash';
|
|
4
4
|
import { inertiaUserHelper } from "../helpers/inertiaUserHelper.js";
|
|
5
|
-
import {
|
|
5
|
+
import { generateUserApiKey } from "../helpers/apiKeyHelper.js";
|
|
6
6
|
export default async function (req, res) {
|
|
7
|
-
let
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
else if (!req.adminizer.accessRightsHelper.hasPermission(`create-${entity.name}-model`, req.user)) {
|
|
13
|
-
return res.sendStatus(403);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
7
|
+
let modelResource = ControllerHelper.findModelResource(req);
|
|
8
|
+
const internalUsers = req.adminizer.modelHandler.internal("users");
|
|
9
|
+
const groupModel = internalUsers.get("GroupAP");
|
|
10
|
+
const userModel = internalUsers.get("UserAP");
|
|
16
11
|
let groups;
|
|
17
12
|
try {
|
|
18
|
-
|
|
19
|
-
groups = await req.adminizer.modelHandler.model.get("GroupAP")["_find"]({});
|
|
13
|
+
groups = await groupModel.find({});
|
|
20
14
|
}
|
|
21
15
|
catch (e) {
|
|
22
16
|
Adminizer.log.error(e);
|
|
@@ -42,11 +36,11 @@ export default async function (req, res) {
|
|
|
42
36
|
try {
|
|
43
37
|
let passwordHashed = generate(req.body.login + req.body.userPassword + process.env.AP_PASSWORD_SALT);
|
|
44
38
|
let password = 'masked';
|
|
45
|
-
|
|
46
|
-
user = await req.adminizer.modelHandler.model.get("UserAP")["_create"]({
|
|
39
|
+
user = await userModel.create({
|
|
47
40
|
login: req.body.login, fullName: req.body.fullName, email: req.body.email,
|
|
48
41
|
passwordHashed: passwordHashed, timezone: req.body.timezone, expires: req.body.date,
|
|
49
|
-
locale: locale, isAdministrator: isAdministrator, isConfirmed: isConfirmed, groups: userGroups
|
|
42
|
+
locale: locale, isAdministrator: isAdministrator, isConfirmed: isConfirmed, groups: userGroups,
|
|
43
|
+
apiKey: generateUserApiKey()
|
|
50
44
|
});
|
|
51
45
|
Adminizer.log.debug(`A new user was created: `, user);
|
|
52
46
|
req.flash.setFlashMessage('success', 'A new user was created !');
|
|
@@ -57,7 +51,7 @@ export default async function (req, res) {
|
|
|
57
51
|
req.session.messages.adminError.push(e.message || 'Something went wrong...');
|
|
58
52
|
}
|
|
59
53
|
}
|
|
60
|
-
const props = inertiaUserHelper(
|
|
54
|
+
const props = inertiaUserHelper(modelResource, req, groups);
|
|
61
55
|
return req.Inertia.render({
|
|
62
56
|
component: 'add-user',
|
|
63
57
|
props: props
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function catalogController(req: ReqType, res: ResType): Promise<
|
|
1
|
+
export declare function catalogController(req: ReqType, res: ResType): Promise<import("express").Response<any, Record<string, any>>>;
|
|
@@ -1,18 +1,8 @@
|
|
|
1
1
|
import { FrontendCatalog, FrontendCatalogUtils } from "./FrontendCatalogAdapter.js";
|
|
2
2
|
import { Adminizer } from "../../lib/Adminizer.js";
|
|
3
|
-
import { redirectToLogin } from '../../helpers/inertiaAutHelper.js';
|
|
4
3
|
export async function catalogController(req, res) {
|
|
5
4
|
const slug = req.params.slug;
|
|
6
5
|
let id = req.params.id ? req.params.id : '';
|
|
7
|
-
const postfix = id ? `${slug}-${id}` : `${slug}`;
|
|
8
|
-
if (req.adminizer.config.auth.enable) {
|
|
9
|
-
if (!req.user) {
|
|
10
|
-
return redirectToLogin(req, res);
|
|
11
|
-
}
|
|
12
|
-
else if (!req.adminizer.accessRightsHelper.hasPermission(`catalog-${postfix}`, req.user)) {
|
|
13
|
-
return res.sendStatus(403);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
6
|
if (slug === 'navigation' && !id) {
|
|
17
7
|
return res.sendStatus(404);
|
|
18
8
|
}
|
|
@@ -94,4 +84,5 @@ export async function catalogController(req, res) {
|
|
|
94
84
|
return res.json({ data: await frontendCatalog.deleteItem(data.data, req) });
|
|
95
85
|
}
|
|
96
86
|
}
|
|
87
|
+
return res.status(405).end();
|
|
97
88
|
}
|
|
@@ -31,7 +31,7 @@ export declare class FrontendCatalog {
|
|
|
31
31
|
catalog: AbstractCatalog;
|
|
32
32
|
constructor(_catalog: AbstractCatalog);
|
|
33
33
|
setId(id: string): void;
|
|
34
|
-
getItemType(type: string): import("
|
|
34
|
+
getItemType(type: string): import("../..").BaseItem<Item>;
|
|
35
35
|
getAddTemplate(item: any, req: ReqType): Promise<{
|
|
36
36
|
type: "component" | "navigation.group" | "navigation.link" | "model" | "model.link";
|
|
37
37
|
data: any;
|
|
@@ -46,12 +46,12 @@ export declare class FrontendCatalog {
|
|
|
46
46
|
isGroup: boolean;
|
|
47
47
|
allowedRoot: boolean;
|
|
48
48
|
icon: string;
|
|
49
|
-
actionHandlers: import("
|
|
49
|
+
actionHandlers: import("../..").ActionHandler[];
|
|
50
50
|
}[];
|
|
51
51
|
getLocales(req: ReqType): {
|
|
52
52
|
[key: string]: string;
|
|
53
53
|
};
|
|
54
|
-
getActions(items: NodeModel<any>[], type: string): Promise<import("
|
|
54
|
+
getActions(items: NodeModel<any>[], type: string): Promise<import("../..").ActionHandler[]>;
|
|
55
55
|
handleAction(actionId: string, items: any[], data: any, req: ReqType): Promise<string | void>;
|
|
56
56
|
getPopUpTemplate(actionId: string, req: ReqType): Promise<string>;
|
|
57
57
|
getLink(actionId: string): Promise<string>;
|
|
@@ -62,7 +62,6 @@ export class FrontendCatalog {
|
|
|
62
62
|
item.data.id = null;
|
|
63
63
|
arrItems.push(await this.catalog.find(item.data));
|
|
64
64
|
}
|
|
65
|
-
console.log(arrItems);
|
|
66
65
|
if (type === 'tools') {
|
|
67
66
|
return (await this.catalog.getActions(arrItems))?.filter(e => e.displayTool);
|
|
68
67
|
}
|
|
@@ -77,7 +76,6 @@ export class FrontendCatalog {
|
|
|
77
76
|
item.data.id = null;
|
|
78
77
|
arrItems.push(await this.catalog.find(item.data));
|
|
79
78
|
}
|
|
80
|
-
console.log(arrItems);
|
|
81
79
|
return this.catalog.handleAction(actionId, arrItems, data, req);
|
|
82
80
|
}
|
|
83
81
|
async getPopUpTemplate(actionId, req) {
|
|
@@ -120,13 +118,9 @@ export class FrontendCatalog {
|
|
|
120
118
|
// }
|
|
121
119
|
async search(s, req) {
|
|
122
120
|
let searchResult = await this.catalog.search(s, undefined, req);
|
|
123
|
-
// let itemsTree = AbstractCatalog.buildTree(searchResult);
|
|
124
|
-
// console.log(itemsTree)
|
|
125
121
|
return FrontendCatalogUtils.treeToNode(searchResult, this.catalog.getGroupType().type);
|
|
126
122
|
}
|
|
127
123
|
async updateTree(data, req) {
|
|
128
|
-
// console.dir(data, {depth: null})
|
|
129
|
-
// return
|
|
130
124
|
let reqParent = data.reqParent;
|
|
131
125
|
if (reqParent.data.id === 0)
|
|
132
126
|
reqParent.data.id = null;
|
|
@@ -31,7 +31,7 @@ export declare class FrontendCatalog {
|
|
|
31
31
|
catalog: AbstractCatalog;
|
|
32
32
|
constructor(_catalog: AbstractCatalog);
|
|
33
33
|
setId(id: string): void;
|
|
34
|
-
getItemType(type: string): import("
|
|
34
|
+
getItemType(type: string): import("../..").BaseItem<Item>;
|
|
35
35
|
getAddTemplate(item: any, req: ReqType): Promise<{
|
|
36
36
|
type: "component" | "navigation.group" | "navigation.link" | "model" | "model.link";
|
|
37
37
|
data: any;
|
|
@@ -46,12 +46,12 @@ export declare class FrontendCatalog {
|
|
|
46
46
|
isGroup: boolean;
|
|
47
47
|
allowedRoot: boolean;
|
|
48
48
|
icon: string;
|
|
49
|
-
actionHandlers: import("
|
|
49
|
+
actionHandlers: import("../..").ActionHandler[];
|
|
50
50
|
}[];
|
|
51
51
|
getLocales(req: ReqType): {
|
|
52
52
|
[key: string]: string;
|
|
53
53
|
};
|
|
54
|
-
getActions(items: NodeModel<any>[], type: string): Promise<import("
|
|
54
|
+
getActions(items: NodeModel<any>[], type: string): Promise<import("../..").ActionHandler[]>;
|
|
55
55
|
handleAction(actionId: string, items: any[], data: any, req: ReqType): Promise<string | void>;
|
|
56
56
|
getPopUpTemplate(actionId: string, req: ReqType): Promise<string>;
|
|
57
57
|
getLink(actionId: string): Promise<string>;
|
|
@@ -62,7 +62,6 @@ export class FrontendCatalog {
|
|
|
62
62
|
item.data.id = null;
|
|
63
63
|
arrItems.push(await this.catalog.find(item.data));
|
|
64
64
|
}
|
|
65
|
-
console.log(arrItems);
|
|
66
65
|
if (type === 'tools') {
|
|
67
66
|
return (await this.catalog.getActions(arrItems))?.filter(e => e.displayTool);
|
|
68
67
|
}
|
|
@@ -77,7 +76,6 @@ export class FrontendCatalog {
|
|
|
77
76
|
item.data.id = null;
|
|
78
77
|
arrItems.push(await this.catalog.find(item.data));
|
|
79
78
|
}
|
|
80
|
-
console.log(arrItems);
|
|
81
79
|
return this.catalog.handleAction(actionId, arrItems, data, req);
|
|
82
80
|
}
|
|
83
81
|
async getPopUpTemplate(actionId, req) {
|
|
@@ -117,8 +115,6 @@ export class FrontendCatalog {
|
|
|
117
115
|
// }
|
|
118
116
|
async search(s, req) {
|
|
119
117
|
let searchResult = await this.catalog.search(s, undefined, req);
|
|
120
|
-
// let itemsTree = AbstractCatalog.buildTree(searchResult);
|
|
121
|
-
// console.log(itemsTree)
|
|
122
118
|
return FrontendCatalogUtils.treeToNode(searchResult, this.catalog.getGroupType().type);
|
|
123
119
|
}
|
|
124
120
|
async updateTree(data, req) {
|
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
import { ControllerHelper } from "../helpers/controllerHelper.js";
|
|
2
2
|
import * as fs from "fs";
|
|
3
3
|
import multer from "multer";
|
|
4
|
-
import { redirectToLogin } from '../helpers/inertiaAutHelper.js';
|
|
5
4
|
export async function ckEditorUpload(req, res) {
|
|
6
|
-
let
|
|
7
|
-
|
|
8
|
-
if (!req.user) {
|
|
9
|
-
redirectToLogin(req, res);
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
else if (!req.adminizer.accessRightsHelper.enoughPermissions([
|
|
13
|
-
`update-${entity.name}-model`,
|
|
14
|
-
`create-${entity.name}-model`,
|
|
15
|
-
`update-${entity.name}-form`,
|
|
16
|
-
`create-${entity.name}-form`
|
|
17
|
-
], req.user)) {
|
|
18
|
-
res.sendStatus(403);
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
const dirDownload = `uploads/${entity.type}/${entity.name}/ckeditor`;
|
|
5
|
+
let modelResource = ControllerHelper.findModelResource(req);
|
|
6
|
+
const dirDownload = `uploads/model/${modelResource.name}/ckeditor`;
|
|
23
7
|
await handleUpload(req, res, dirDownload);
|
|
24
8
|
}
|
|
25
9
|
async function handleUpload(req, res, dirDownload) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function (req: ReqType, res: ResType):
|
|
1
|
+
export default function (req: ReqType, res: ResType): Promise<import("express").Response<any, Record<string, any>>>;
|
package/controllers/dashboard.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import { redirectToLogin } from '../helpers/inertiaAutHelper.js';
|
|
2
1
|
export default function (req, res) {
|
|
3
|
-
if (req.adminizer.config.auth.enable && !req.user) {
|
|
4
|
-
return redirectToLogin(req, res);
|
|
5
|
-
}
|
|
6
2
|
return req.Inertia.render({
|
|
7
3
|
component: 'dashboard',
|
|
8
4
|
props: {
|
|
@@ -16,7 +12,8 @@ export default function (req, res) {
|
|
|
16
12
|
'Fast links': req.i18n.__('Fast links'),
|
|
17
13
|
'Actions': req.i18n.__('Actions'),
|
|
18
14
|
'Info': req.i18n.__('Info'),
|
|
19
|
-
'Switcher': req.i18n.__('Switcher')
|
|
15
|
+
'Switcher': req.i18n.__('Switcher'),
|
|
16
|
+
'Filters': req.i18n.__('Filters')
|
|
20
17
|
},
|
|
21
18
|
searchPlaceholder: req.i18n.__('Search'),
|
|
22
19
|
}
|