@ytsaurus/ui 1.16.1 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -11
- package/build/cjs/@types/core.d.ts +7 -7
- package/build/cjs/server/components/layout-config.js +3 -3
- package/build/cjs/server/components/layout-config.js.map +1 -1
- package/build/cjs/server/components/requestsSetup.js +13 -5
- package/build/cjs/server/components/requestsSetup.js.map +1 -1
- package/build/cjs/server/components/settings.d.ts +10 -5
- package/build/cjs/server/components/settings.js +24 -23
- package/build/cjs/server/components/settings.js.map +1 -1
- package/build/cjs/server/components/table.d.ts +3 -3
- package/build/cjs/server/components/table.js +4 -4
- package/build/cjs/server/components/table.js.map +1 -1
- package/build/cjs/server/components/yt-auth.d.ts +0 -2
- package/build/cjs/server/components/yt-auth.js +5 -14
- package/build/cjs/server/components/yt-auth.js.map +1 -1
- package/build/cjs/server/configs/common.js +5 -13
- package/build/cjs/server/configs/common.js.map +1 -1
- package/build/cjs/server/configs/local.js +0 -5
- package/build/cjs/server/configs/local.js.map +1 -1
- package/build/cjs/server/controllers/chyt-api.js +1 -1
- package/build/cjs/server/controllers/chyt-api.js.map +1 -1
- package/build/cjs/server/controllers/cluster-info.js +2 -2
- package/build/cjs/server/controllers/cluster-info.js.map +1 -1
- package/build/cjs/server/controllers/cluster-params.js +1 -1
- package/build/cjs/server/controllers/cluster-params.js.map +1 -1
- package/build/cjs/server/controllers/clusters.d.ts +1 -0
- package/build/cjs/server/controllers/clusters.js +24 -1
- package/build/cjs/server/controllers/clusters.js.map +1 -1
- package/build/cjs/server/controllers/home.js +10 -6
- package/build/cjs/server/controllers/home.js.map +1 -1
- package/build/cjs/server/controllers/login.js +18 -5
- package/build/cjs/server/controllers/login.js.map +1 -1
- package/build/cjs/server/controllers/odin-proxy-api.js +1 -1
- package/build/cjs/server/controllers/odin-proxy-api.js.map +1 -1
- package/build/cjs/server/controllers/scheduling-pools.js +2 -2
- package/build/cjs/server/controllers/scheduling-pools.js.map +1 -1
- package/build/cjs/server/controllers/settings.js +10 -10
- package/build/cjs/server/controllers/settings.js.map +1 -1
- package/build/cjs/server/controllers/table-column-preset.js +4 -3
- package/build/cjs/server/controllers/table-column-preset.js.map +1 -1
- package/build/cjs/server/controllers/yt-api.js +1 -1
- package/build/cjs/server/controllers/yt-api.js.map +1 -1
- package/build/cjs/server/controllers/yt-proxy-api.js +2 -2
- package/build/cjs/server/controllers/yt-proxy-api.js.map +1 -1
- package/build/cjs/server/index.js +11 -8
- package/build/cjs/server/index.js.map +1 -1
- package/build/cjs/server/middlewares/authorization.d.ts +1 -1
- package/build/cjs/server/middlewares/authorization.js +3 -2
- package/build/cjs/server/middlewares/authorization.js.map +1 -1
- package/build/cjs/server/middlewares/yt-auth.js +3 -2
- package/build/cjs/server/middlewares/yt-auth.js.map +1 -1
- package/build/cjs/server/routes.js +26 -25
- package/build/cjs/server/routes.js.map +1 -1
- package/build/cjs/server/utils/index.d.ts +1 -1
- package/build/cjs/server/utils/index.js +12 -4
- package/build/cjs/server/utils/index.js.map +1 -1
- package/build/cjs/shared/yt-types.d.ts +1 -0
- package/build/cjs/ui/common/utils/settings-remote-provider.d.ts +5 -5
- package/build/cjs/ui/common/utils/settings-remote-provider.js +42 -16
- package/build/cjs/ui/common/utils/settings-remote-provider.js.map +1 -1
- package/build/cjs/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
- package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
- package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
- package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
- package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js +7 -4
- package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
- package/build/cjs/ui/config/ui-settings.d.ts +1 -0
- package/build/cjs/ui/config/ui-settings.js +3 -2
- package/build/cjs/ui/config/ui-settings.js.map +1 -1
- package/build/cjs/ui/constants/index.d.ts +7 -0
- package/build/cjs/ui/constants/index.js +3 -1
- package/build/cjs/ui/constants/index.js.map +1 -1
- package/build/cjs/ui/containers/App/App.js +4 -3
- package/build/cjs/ui/containers/App/App.js.map +1 -1
- package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
- package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
- package/build/cjs/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
- package/build/cjs/ui/containers/ClusterPage/ClusterPage.js +3 -1
- package/build/cjs/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
- package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
- package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js +11 -3
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
- package/build/cjs/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
- package/build/cjs/ui/entries/main.js +4 -1
- package/build/cjs/ui/entries/main.js.map +1 -1
- package/build/cjs/ui/pages/operations/selectors.d.ts +5 -0
- package/build/cjs/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
- package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
- package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
- package/build/cjs/ui/pages/system/Chunks/Chunks.d.ts +1 -1
- package/build/cjs/ui/store/actions/cluster-params.d.ts +1 -0
- package/build/cjs/ui/store/actions/cluster-params.js +13 -0
- package/build/cjs/ui/store/actions/cluster-params.js.map +1 -1
- package/build/cjs/ui/store/actions/clusters-menu.d.ts +1 -0
- package/build/cjs/ui/store/actions/clusters-menu.js +22 -2
- package/build/cjs/ui/store/actions/clusters-menu.js.map +1 -1
- package/build/cjs/ui/store/actions/global/index.d.ts +3 -1
- package/build/cjs/ui/store/actions/global/index.js +19 -4
- package/build/cjs/ui/store/actions/global/index.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
- package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
- package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/content/table/table.js +2 -1
- package/build/cjs/ui/store/actions/navigation/content/table/table.js.map +1 -1
- package/build/cjs/ui/store/actions/settings/index.js +25 -19
- package/build/cjs/ui/store/actions/settings/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/accounts/usage/index.d.ts +1 -1
- package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
- package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js +8 -0
- package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
- package/build/cjs/ui/store/reducers/index.d.ts +5 -0
- package/build/cjs/ui/store/reducers/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/settings.js +1 -1
- package/build/cjs/ui/store/reducers/settings.js.map +1 -1
- package/build/cjs/ui/store/selectors/accounts/account-usage.d.ts +40 -0
- package/build/cjs/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
- package/build/cjs/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
- package/build/cjs/ui/store/selectors/chyt/index.d.ts +35 -0
- package/build/cjs/ui/store/selectors/components/node/memory.d.ts +35 -0
- package/build/cjs/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
- package/build/cjs/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
- package/build/cjs/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
- package/build/cjs/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
- package/build/cjs/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
- package/build/cjs/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
- package/build/cjs/ui/store/selectors/global/index.d.ts +912 -0
- package/build/cjs/ui/store/selectors/global/index.js +10 -1
- package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
- package/build/cjs/ui/store/selectors/global/supported-features.d.ts +30 -0
- package/build/cjs/ui/store/selectors/modals/errors.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/content/document.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
- package/build/cjs/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
- package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +35 -0
- package/build/cjs/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
- package/build/cjs/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/navigation.d.ts +10 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
- package/build/cjs/ui/store/selectors/operations/index.d.ts +60 -0
- package/build/cjs/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
- package/build/cjs/ui/store/selectors/operations/operation.d.ts +60 -0
- package/build/cjs/ui/store/selectors/operations/operations-list.d.ts +15 -0
- package/build/cjs/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
- package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/index.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
- package/build/cjs/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
- package/build/cjs/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
- package/build/cjs/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
- package/build/cjs/ui/store/selectors/thor/support.d.ts +25 -0
- package/build/esm/@types/core.d.ts +7 -7
- package/build/esm/server/components/layout-config.js +4 -3
- package/build/esm/server/components/layout-config.js.map +1 -1
- package/build/esm/server/components/requestsSetup.js +12 -5
- package/build/esm/server/components/requestsSetup.js.map +1 -1
- package/build/esm/server/components/settings.d.ts +10 -5
- package/build/esm/server/components/settings.js +33 -22
- package/build/esm/server/components/settings.js.map +1 -1
- package/build/esm/server/components/table.d.ts +3 -3
- package/build/esm/server/components/table.js +10 -10
- package/build/esm/server/components/table.js.map +1 -1
- package/build/esm/server/components/yt-auth.d.ts +0 -2
- package/build/esm/server/components/yt-auth.js +6 -11
- package/build/esm/server/components/yt-auth.js.map +1 -1
- package/build/esm/server/configs/common.js +4 -14
- package/build/esm/server/configs/common.js.map +1 -1
- package/build/esm/server/configs/local.js +0 -5
- package/build/esm/server/configs/local.js.map +1 -1
- package/build/esm/server/controllers/chyt-api.js +1 -1
- package/build/esm/server/controllers/chyt-api.js.map +1 -1
- package/build/esm/server/controllers/cluster-info.js +3 -3
- package/build/esm/server/controllers/cluster-info.js.map +1 -1
- package/build/esm/server/controllers/cluster-params.js +1 -1
- package/build/esm/server/controllers/cluster-params.js.map +1 -1
- package/build/esm/server/controllers/clusters.d.ts +1 -0
- package/build/esm/server/controllers/clusters.js +23 -0
- package/build/esm/server/controllers/clusters.js.map +1 -1
- package/build/esm/server/controllers/home.js +32 -28
- package/build/esm/server/controllers/home.js.map +1 -1
- package/build/esm/server/controllers/login.js +35 -21
- package/build/esm/server/controllers/login.js.map +1 -1
- package/build/esm/server/controllers/odin-proxy-api.js +1 -1
- package/build/esm/server/controllers/odin-proxy-api.js.map +1 -1
- package/build/esm/server/controllers/scheduling-pools.js +3 -3
- package/build/esm/server/controllers/scheduling-pools.js.map +1 -1
- package/build/esm/server/controllers/settings.js +26 -15
- package/build/esm/server/controllers/settings.js.map +1 -1
- package/build/esm/server/controllers/table-column-preset.js +15 -14
- package/build/esm/server/controllers/table-column-preset.js.map +1 -1
- package/build/esm/server/controllers/yt-api.js +1 -1
- package/build/esm/server/controllers/yt-api.js.map +1 -1
- package/build/esm/server/controllers/yt-proxy-api.js +3 -3
- package/build/esm/server/controllers/yt-proxy-api.js.map +1 -1
- package/build/esm/server/index.js +12 -8
- package/build/esm/server/index.js.map +1 -1
- package/build/esm/server/middlewares/authorization.d.ts +1 -1
- package/build/esm/server/middlewares/authorization.js +21 -16
- package/build/esm/server/middlewares/authorization.js.map +1 -1
- package/build/esm/server/middlewares/yt-auth.js +8 -7
- package/build/esm/server/middlewares/yt-auth.js.map +1 -1
- package/build/esm/server/routes.js +29 -26
- package/build/esm/server/routes.js.map +1 -1
- package/build/esm/server/utils/index.d.ts +1 -1
- package/build/esm/server/utils/index.js +12 -6
- package/build/esm/server/utils/index.js.map +1 -1
- package/build/esm/shared/yt-types.d.ts +1 -0
- package/build/esm/ui/common/utils/settings-remote-provider.d.ts +5 -5
- package/build/esm/ui/common/utils/settings-remote-provider.js +42 -16
- package/build/esm/ui/common/utils/settings-remote-provider.js.map +1 -1
- package/build/esm/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
- package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
- package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
- package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
- package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js +8 -5
- package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
- package/build/esm/ui/config/ui-settings.d.ts +1 -0
- package/build/esm/ui/config/ui-settings.js +2 -1
- package/build/esm/ui/config/ui-settings.js.map +1 -1
- package/build/esm/ui/constants/index.d.ts +7 -0
- package/build/esm/ui/constants/index.js +1 -0
- package/build/esm/ui/constants/index.js.map +1 -1
- package/build/esm/ui/containers/App/App.js +4 -3
- package/build/esm/ui/containers/App/App.js.map +1 -1
- package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
- package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
- package/build/esm/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
- package/build/esm/ui/containers/ClusterPage/ClusterPage.js +4 -2
- package/build/esm/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
- package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
- package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
- package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.scss +6 -0
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js +12 -4
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
- package/build/esm/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
- package/build/esm/ui/entries/main.js +4 -1
- package/build/esm/ui/entries/main.js.map +1 -1
- package/build/esm/ui/pages/operations/selectors.d.ts +5 -0
- package/build/esm/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
- package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
- package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
- package/build/esm/ui/pages/system/Chunks/Chunks.d.ts +1 -1
- package/build/esm/ui/store/actions/cluster-params.d.ts +1 -0
- package/build/esm/ui/store/actions/cluster-params.js +12 -0
- package/build/esm/ui/store/actions/cluster-params.js.map +1 -1
- package/build/esm/ui/store/actions/clusters-menu.d.ts +1 -0
- package/build/esm/ui/store/actions/clusters-menu.js +22 -3
- package/build/esm/ui/store/actions/clusters-menu.js.map +1 -1
- package/build/esm/ui/store/actions/global/index.d.ts +3 -1
- package/build/esm/ui/store/actions/global/index.js +19 -4
- package/build/esm/ui/store/actions/global/index.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
- package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
- package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/content/table/table.js +2 -1
- package/build/esm/ui/store/actions/navigation/content/table/table.js.map +1 -1
- package/build/esm/ui/store/actions/settings/index.js +25 -19
- package/build/esm/ui/store/actions/settings/index.js.map +1 -1
- package/build/esm/ui/store/reducers/accounts/usage/index.d.ts +1 -1
- package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
- package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js +9 -1
- package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
- package/build/esm/ui/store/reducers/index.d.ts +5 -0
- package/build/esm/ui/store/reducers/index.js.map +1 -1
- package/build/esm/ui/store/reducers/settings.js +1 -1
- package/build/esm/ui/store/reducers/settings.js.map +1 -1
- package/build/esm/ui/store/selectors/accounts/account-usage.d.ts +40 -0
- package/build/esm/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
- package/build/esm/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
- package/build/esm/ui/store/selectors/chyt/index.d.ts +35 -0
- package/build/esm/ui/store/selectors/components/node/memory.d.ts +35 -0
- package/build/esm/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
- package/build/esm/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
- package/build/esm/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
- package/build/esm/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
- package/build/esm/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
- package/build/esm/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
- package/build/esm/ui/store/selectors/global/index.d.ts +912 -0
- package/build/esm/ui/store/selectors/global/index.js +10 -1
- package/build/esm/ui/store/selectors/global/index.js.map +1 -1
- package/build/esm/ui/store/selectors/global/supported-features.d.ts +30 -0
- package/build/esm/ui/store/selectors/modals/errors.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/content/document.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
- package/build/esm/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
- package/build/esm/ui/store/selectors/navigation/content/table.d.ts +35 -0
- package/build/esm/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
- package/build/esm/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/navigation.d.ts +10 -0
- package/build/esm/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
- package/build/esm/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
- package/build/esm/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
- package/build/esm/ui/store/selectors/operations/index.d.ts +60 -0
- package/build/esm/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
- package/build/esm/ui/store/selectors/operations/operation.d.ts +60 -0
- package/build/esm/ui/store/selectors/operations/operations-list.d.ts +15 -0
- package/build/esm/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
- package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/index.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
- package/build/esm/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
- package/build/esm/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
- package/build/esm/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
- package/build/esm/ui/store/selectors/thor/support.d.ts +25 -0
- package/dist/public/build/assets-manifest.json +12 -12
- package/dist/public/build/css/main.8a4cd357.css +2 -0
- package/dist/public/build/css/main.8a4cd357.css.map +1 -0
- package/dist/public/build/js/{861.9703a31c.chunk.js → 861.a0939319.chunk.js} +2 -2
- package/dist/public/build/js/861.a0939319.chunk.js.map +1 -0
- package/dist/public/build/js/main.c39cff0d.js +3 -0
- package/dist/public/build/js/{main.5b132a95.js.map → main.c39cff0d.js.map} +1 -1
- package/dist/public/build/js/runtime.0ac0f2e8.js +2 -0
- package/dist/public/build/js/{runtime.a87a1f88.js.map → runtime.0ac0f2e8.js.map} +1 -1
- package/dist/public/build/manifest.json +8 -8
- package/dist/server/components/layout-config.js +3 -3
- package/dist/server/components/requestsSetup.js +13 -5
- package/dist/server/components/settings.d.ts +10 -5
- package/dist/server/components/settings.js +24 -23
- package/dist/server/components/table.d.ts +3 -3
- package/dist/server/components/table.js +4 -4
- package/dist/server/components/yt-auth.d.ts +0 -2
- package/dist/server/components/yt-auth.js +5 -14
- package/dist/server/configs/common.js +5 -13
- package/dist/server/configs/local.js +0 -5
- package/dist/server/controllers/chyt-api.js +1 -1
- package/dist/server/controllers/cluster-info.js +2 -2
- package/dist/server/controllers/cluster-params.js +1 -1
- package/dist/server/controllers/clusters.d.ts +1 -0
- package/dist/server/controllers/clusters.js +24 -1
- package/dist/server/controllers/home.js +10 -6
- package/dist/server/controllers/login.js +18 -5
- package/dist/server/controllers/odin-proxy-api.js +1 -1
- package/dist/server/controllers/scheduling-pools.js +2 -2
- package/dist/server/controllers/settings.js +10 -10
- package/dist/server/controllers/table-column-preset.js +4 -3
- package/dist/server/controllers/yt-api.js +1 -1
- package/dist/server/controllers/yt-proxy-api.js +2 -2
- package/dist/server/index.js +11 -8
- package/dist/server/middlewares/authorization.d.ts +1 -1
- package/dist/server/middlewares/authorization.js +3 -2
- package/dist/server/middlewares/yt-auth.js +3 -2
- package/dist/server/routes.js +26 -25
- package/dist/server/utils/index.d.ts +1 -1
- package/dist/server/utils/index.js +12 -4
- package/package.json +2 -2
- package/dist/public/build/css/main.4aa70d7b.css +0 -2
- package/dist/public/build/css/main.4aa70d7b.css.map +0 -1
- package/dist/public/build/js/861.9703a31c.chunk.js.map +0 -1
- package/dist/public/build/js/main.5b132a95.js +0 -3
- package/dist/public/build/js/runtime.a87a1f88.js +0 -2
- /package/dist/public/build/js/{main.5b132a95.js.LICENSE.txt → main.c39cff0d.js.LICENSE.txt} +0 -0
@@ -3,12 +3,13 @@ declare const _default: import("react-redux").ConnectedComponent<typeof Clusters
|
|
3
3
|
viewMode: PropTypes.Requireable<string>;
|
4
4
|
clusters: PropTypes.Requireable<object>;
|
5
5
|
fetchClusterVersions: PropTypes.Validator<(...args: any[]) => any>;
|
6
|
+
fetchClusterAuthStatus: PropTypes.Validator<(...args: any[]) => any>;
|
6
7
|
fetchClusterAvailability: PropTypes.Validator<(...args: any[]) => any>;
|
7
8
|
sortState: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
|
8
9
|
field: PropTypes.Requireable<string>;
|
9
10
|
asc: PropTypes.Requireable<boolean>;
|
10
11
|
}>>>;
|
11
|
-
}>, "clusters" | "
|
12
|
+
}>, "clusters" | "sortState" | "viewMode" | "clusterFilter" | "fetchClusterVersions" | "fetchClusterAvailability" | "fetchClusterAuthStatus">>;
|
12
13
|
export default _default;
|
13
14
|
declare class ClustersMenuBody extends React.Component<any, any, any> {
|
14
15
|
static propTypes: {
|
@@ -16,6 +17,7 @@ declare class ClustersMenuBody extends React.Component<any, any, any> {
|
|
16
17
|
viewMode: PropTypes.Requireable<string>;
|
17
18
|
clusters: PropTypes.Requireable<object>;
|
18
19
|
fetchClusterVersions: PropTypes.Validator<(...args: any[]) => any>;
|
20
|
+
fetchClusterAuthStatus: PropTypes.Validator<(...args: any[]) => any>;
|
19
21
|
fetchClusterAvailability: PropTypes.Validator<(...args: any[]) => any>;
|
20
22
|
sortState: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
|
21
23
|
field: PropTypes.Requireable<string>;
|
@@ -17,6 +17,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
17
17
|
var _reactRedux = require("react-redux");
|
18
18
|
var _bemCnLite = _interopRequireDefault(require("bem-cn-lite"));
|
19
19
|
var _reactRouterDom = require("react-router-dom");
|
20
|
+
var _icons = require("@gravity-ui/icons");
|
20
21
|
var _clusterMenu = require("../../constants/cluster-menu");
|
21
22
|
var _format = _interopRequireDefault(require("@ytsaurus/interface-helpers/lib/hammer/format"));
|
22
23
|
var _utils = require("../../common/hammer/utils");
|
@@ -44,8 +45,10 @@ var ClustersMenuBody = /*#__PURE__*/function (_Component) {
|
|
44
45
|
value: function componentDidMount() {
|
45
46
|
var _this$props = this.props,
|
46
47
|
fetchClusterVersions = _this$props.fetchClusterVersions,
|
47
|
-
fetchClusterAvailability = _this$props.fetchClusterAvailability
|
48
|
+
fetchClusterAvailability = _this$props.fetchClusterAvailability,
|
49
|
+
fetchClusterAuthStatus = _this$props.fetchClusterAuthStatus;
|
48
50
|
fetchClusterVersions();
|
51
|
+
fetchClusterAuthStatus();
|
49
52
|
if (_ytConfig.default.environment !== 'localmode') {
|
50
53
|
fetchClusterAvailability();
|
51
54
|
}
|
@@ -105,7 +108,8 @@ var ClustersMenuBody = /*#__PURE__*/function (_Component) {
|
|
105
108
|
environment = cluster.environment,
|
106
109
|
descriptionEnglish = cluster.descriptionEnglish,
|
107
110
|
description = cluster.description,
|
108
|
-
theme = cluster.theme
|
111
|
+
theme = cluster.theme,
|
112
|
+
authorized = cluster.authorized;
|
109
113
|
var className = b('item', {
|
110
114
|
state: status,
|
111
115
|
access: status === 'available' && access,
|
@@ -120,7 +124,10 @@ var ClustersMenuBody = /*#__PURE__*/function (_Component) {
|
|
120
124
|
to: '/' + id,
|
121
125
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
122
126
|
className: b('item-body'),
|
123
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("
|
127
|
+
children: [authorized ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
128
|
+
className: b('item-auth-status'),
|
129
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Lock, {})
|
130
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
124
131
|
className: b('item-heading'),
|
125
132
|
children: name
|
126
133
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
@@ -323,6 +330,7 @@ function mapStateToProps(_ref4) {
|
|
323
330
|
}
|
324
331
|
var mapDispatchToProps = {
|
325
332
|
fetchClusterVersions: _clustersMenu.fetchClusterVersions,
|
333
|
+
fetchClusterAuthStatus: _clustersMenu.fetchClusterAuthStatus,
|
326
334
|
fetchClusterAvailability: _clustersMenu.fetchClusterAvailability
|
327
335
|
};
|
328
336
|
var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ClustersMenuBody);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactRedux","_bemCnLite","_interopRequireDefault","_reactRouterDom","_clusterMenu","_format","_utils","_ElementsTable","_ElementsTableHeader","_clustersMenu","_tables","_appearance","_ytConfig","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","b","block","ClustersMenuBody","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","componentDidMount","_this$props","props","fetchClusterVersions","fetchClusterAvailability","YT","environment","prepareGroups","clusters","sortByClusterName","clusterA","clusterB","name","groups","_reduce","cluster","currentGroup","group","DEFAULT_GROUP","push","_each","sort","renderVersion","_ref","loadState","access","version","status","title","text","concat","_jsx","className","children","renderCluster","size","id","descriptionEnglish","description","theme","state","clusterTheme","_getClusterAppearance","getClusterAppearance","iconbig","icon2x","Link","to","_jsxs","style","backgroundImage","format","renderDashboard","_this","clusterGroups","unknown","_filter","keys","groupName","CLUSTER_GROUPS","_map","CLUSTER_GROUPS_ORDER","_CLUSTER_GROUPS$group","_ref2","caption","length","position","renderTable","tableSettings","css","striped","tableId","CLUSTER_MENU_TABLE_ID","computeKey","item","onItemClick","window","location","columns","items","image","align","sets","mode","templates","data","sortState","table","assign","utils","ElementsTable","_objectSpread","renderEmptyContent","render","_this$props2","viewMode","clusterFilter","regexp","RegExp","filterByField","field","search","filteredClusters","_ref3","some","Component","mapStateToProps","_ref4","clustersMenu","tables","mapDispatchToProps","_default","exports","connect"],"sources":["ClustersMenuBody.js"],"sourcesContent":["import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport block from 'bem-cn-lite';\nimport {Link} from 'react-router-dom';\nimport _ from 'lodash';\n\nimport {CLUSTER_GROUPS, CLUSTER_GROUPS_ORDER, DEFAULT_GROUP} from '../../constants/cluster-menu';\nimport format from '@ytsaurus/interface-helpers/lib/hammer/format';\nimport {utils} from '../../common/hammer/utils';\nimport ElementsTable from '../../components/ElementsTable/ElementsTable';\nimport {sortStateType} from '../../components/ElementsTable/ElementsTableHeader';\nimport {fetchClusterAvailability, fetchClusterVersions} from '../../store/actions/clusters-menu';\nimport {CLUSTER_MENU_TABLE_ID} from '../../constants/tables';\nimport {getClusterAppearance} from '../../appearance';\nimport YT from '../../config/yt-config';\nimport './ClusterMenuBody.scss';\n\nconst b = block('cluster-menu');\n\nclass ClustersMenuBody extends Component {\n static propTypes = {\n // from connect\n clusterFilter: PropTypes.string,\n viewMode: PropTypes.oneOf(['dashboard', 'table']),\n clusters: PropTypes.object,\n fetchClusterVersions: PropTypes.func.isRequired,\n fetchClusterAvailability: PropTypes.func.isRequired,\n sortState: sortStateType.isRequired,\n };\n\n componentDidMount() {\n const {fetchClusterVersions, fetchClusterAvailability} = this.props;\n\n fetchClusterVersions();\n if (YT.environment !== 'localmode') {\n fetchClusterAvailability();\n }\n }\n\n prepareGroups(clusters) {\n function sortByClusterName(clusterA, clusterB) {\n return clusterA.name > clusterB.name ? 1 : -1;\n }\n\n const groups = _.reduce(\n clusters,\n (groups, cluster) => {\n const currentGroup = cluster.group || DEFAULT_GROUP;\n groups[currentGroup] = groups[currentGroup] || [];\n groups[currentGroup].push(cluster);\n return groups;\n },\n {},\n );\n\n _.each(groups, (clusters) => {\n clusters.sort(sortByClusterName);\n });\n\n return groups;\n }\n\n renderVersion({loadState, access, version, status}) {\n let title;\n let text = '—';\n if (loadState === 'loaded') {\n if (access === 'granted') {\n title = `Current cluster version: ${version}`;\n text = version;\n } else if (access === 'none' && status === 'available') {\n title = 'Please refer to Getting Started for more details';\n text = 'No access';\n } else if (access === 'none' && status !== 'available') {\n title = 'Could not load version, cluster is unavailable';\n }\n } else {\n title = 'Please wait, loading cluster version';\n }\n return (\n <div className={b('item-version')} title={title}>\n {text}\n </div>\n );\n }\n\n renderCluster(cluster, size) {\n const {status, access, id, name, environment, descriptionEnglish, description, theme} =\n cluster;\n const className = b('item', {\n state: status,\n access: status === 'available' && access,\n size,\n });\n\n const clusterTheme = theme ? `cluster-color_theme_${theme}` : 'cluster-color';\n const {iconbig, icon2x} = getClusterAppearance(id);\n\n return (\n <Link key={id} className={className} to={'/' + id}>\n <div className={b('item-body')}>\n <div className={b('item-heading')}>{name}</div>\n\n <div className={b('item-image-wrapper')}>\n <div\n className={b('item-image', clusterTheme)}\n style={{\n backgroundImage: 'url(' + (iconbig || icon2x) + ')',\n }}\n />\n </div>\n\n <div className={b('item-image-veil')} />\n\n {this.renderVersion(cluster)}\n\n <div className={b('item-environment')}>\n <span>{format['ValueOrDefault'](environment)}</span>\n </div>\n\n <div className={b('item-description', 'elements-multiline-ellipsis')}>\n {descriptionEnglish ? descriptionEnglish : description}\n </div>\n </div>\n </Link>\n );\n }\n\n renderDashboard(clusters) {\n const clusterGroups = this.prepareGroups(clusters);\n\n const unknown = _.filter(\n Object.keys(clusterGroups),\n (groupName) => !(groupName in CLUSTER_GROUPS),\n );\n\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n {_.map(CLUSTER_GROUPS_ORDER.concat(unknown), (groupName) => {\n const clusters = clusterGroups[groupName];\n const {caption, size} = CLUSTER_GROUPS[groupName] ?? {caption: groupName};\n\n return (\n clusters &&\n clusters.length && (\n <div key={groupName} className={b('group')}>\n <div\n className={b(\n 'heading',\n {position: 'center', size: 'l'},\n b('group-heading'),\n )}\n >\n {caption}\n </div>\n <div className={b('list')}>\n {_.map(clusters, (cluster) =>\n this.renderCluster(cluster, size),\n )}\n </div>\n </div>\n )\n );\n })}\n </main>\n );\n }\n\n renderTable(clusters) {\n const tableSettings = {\n css: 'cluster-menu',\n theme: 'light',\n striped: true,\n tableId: CLUSTER_MENU_TABLE_ID,\n computeKey: function (item) {\n return item.name;\n },\n onItemClick: function (item) {\n // FIXME: give back control to react-router once we no longer need to render full page on server\n // to get cluster credentials\n window.location = `/${item.id}`;\n },\n columns: {\n items: {\n image: {\n align: 'center',\n caption: '',\n sort: false,\n },\n name: {\n get: function (cluster) {\n return cluster.name;\n },\n sort: true,\n align: 'left',\n },\n environment: {\n get: function (cluster) {\n return cluster.environment;\n },\n sort: true,\n align: 'left',\n },\n version: {\n get: function (cluster) {\n return [cluster.version, cluster.id];\n },\n sort: true,\n align: 'right',\n },\n status: {\n get: function (cluster) {\n return [cluster.status, cluster.id];\n },\n sort: true,\n align: 'center',\n },\n access: {\n get: function (cluster) {\n return [cluster.access, cluster.id];\n },\n sort: true,\n align: 'center',\n },\n },\n sets: {\n default: {\n items: ['image', 'name', 'environment', 'version', 'status', 'access'],\n },\n },\n mode: 'default',\n },\n templates: {\n key: 'cluster-menu',\n data: {},\n },\n };\n\n const {sortState} = this.props;\n const table = Object.assign({}, tableSettings, {\n items: utils.sort(clusters, sortState, tableSettings.columns.items),\n columns: Object.assign({}, tableSettings.columns),\n });\n\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n <div className={b('table-wrapper')}>\n <ElementsTable {...table} />\n </div>\n </main>\n );\n }\n\n renderEmptyContent() {\n const className = b('heading', {position: 'center', size: 'l'});\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n <div className={b('message', className)}>No clusters matching your selection</div>\n </main>\n );\n }\n\n render() {\n const {viewMode, clusterFilter, clusters} = this.props;\n const regexp = new RegExp(clusterFilter, 'i');\n\n const filterByField = (field) => {\n return typeof field === 'string' && field.search(regexp) > -1;\n };\n\n const filteredClusters = _.filter(clusters, ({id, version, environment}) => {\n return [id, version, environment].some(filterByField);\n });\n\n if (viewMode === 'dashboard' && filteredClusters.length) {\n return this.renderDashboard(filteredClusters);\n } else if (viewMode === 'table' && filteredClusters.length) {\n return this.renderTable(filteredClusters);\n } else if (!filteredClusters.length) {\n return this.renderEmptyContent();\n }\n }\n}\n\nfunction mapStateToProps({clustersMenu, tables}) {\n const {viewMode, clusterFilter, clusters} = clustersMenu;\n return {\n viewMode,\n clusterFilter,\n clusters,\n sortState: tables[CLUSTER_MENU_TABLE_ID],\n };\n}\n\nconst mapDispatchToProps = {\n fetchClusterVersions,\n fetchClusterAvailability,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClustersMenuBody);\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactRedux","_bemCnLite","_interopRequireDefault","_reactRouterDom","_icons","_clusterMenu","_format","_utils","_ElementsTable","_ElementsTableHeader","_clustersMenu","_tables","_appearance","_ytConfig","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","b","block","ClustersMenuBody","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","componentDidMount","_this$props","props","fetchClusterVersions","fetchClusterAvailability","fetchClusterAuthStatus","YT","environment","prepareGroups","clusters","sortByClusterName","clusterA","clusterB","name","groups","_reduce","cluster","currentGroup","group","DEFAULT_GROUP","push","_each","sort","renderVersion","_ref","loadState","access","version","status","title","text","concat","_jsx","className","children","renderCluster","size","id","descriptionEnglish","description","theme","authorized","state","clusterTheme","_getClusterAppearance","getClusterAppearance","iconbig","icon2x","Link","to","_jsxs","Lock","style","backgroundImage","format","renderDashboard","_this","clusterGroups","unknown","_filter","keys","groupName","CLUSTER_GROUPS","_map","CLUSTER_GROUPS_ORDER","_CLUSTER_GROUPS$group","_ref2","caption","length","position","renderTable","tableSettings","css","striped","tableId","CLUSTER_MENU_TABLE_ID","computeKey","item","onItemClick","window","location","columns","items","image","align","sets","mode","templates","data","sortState","table","assign","utils","ElementsTable","_objectSpread","renderEmptyContent","render","_this$props2","viewMode","clusterFilter","regexp","RegExp","filterByField","field","search","filteredClusters","_ref3","some","Component","mapStateToProps","_ref4","clustersMenu","tables","mapDispatchToProps","_default","exports","connect"],"sources":["ClustersMenuBody.js"],"sourcesContent":["import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport block from 'bem-cn-lite';\nimport {Link} from 'react-router-dom';\nimport _ from 'lodash';\nimport {Lock} from '@gravity-ui/icons';\n\nimport {CLUSTER_GROUPS, CLUSTER_GROUPS_ORDER, DEFAULT_GROUP} from '../../constants/cluster-menu';\nimport format from '@ytsaurus/interface-helpers/lib/hammer/format';\nimport {utils} from '../../common/hammer/utils';\nimport ElementsTable from '../../components/ElementsTable/ElementsTable';\nimport {sortStateType} from '../../components/ElementsTable/ElementsTableHeader';\nimport {\n fetchClusterAuthStatus,\n fetchClusterAvailability,\n fetchClusterVersions,\n} from '../../store/actions/clusters-menu';\nimport {CLUSTER_MENU_TABLE_ID} from '../../constants/tables';\nimport {getClusterAppearance} from '../../appearance';\nimport YT from '../../config/yt-config';\nimport './ClusterMenuBody.scss';\n\nconst b = block('cluster-menu');\n\nclass ClustersMenuBody extends Component {\n static propTypes = {\n // from connect\n clusterFilter: PropTypes.string,\n viewMode: PropTypes.oneOf(['dashboard', 'table']),\n clusters: PropTypes.object,\n fetchClusterVersions: PropTypes.func.isRequired,\n fetchClusterAuthStatus: PropTypes.func.isRequired,\n fetchClusterAvailability: PropTypes.func.isRequired,\n sortState: sortStateType.isRequired,\n };\n\n componentDidMount() {\n const {fetchClusterVersions, fetchClusterAvailability, fetchClusterAuthStatus} = this.props;\n\n fetchClusterVersions();\n fetchClusterAuthStatus();\n if (YT.environment !== 'localmode') {\n fetchClusterAvailability();\n }\n }\n\n prepareGroups(clusters) {\n function sortByClusterName(clusterA, clusterB) {\n return clusterA.name > clusterB.name ? 1 : -1;\n }\n\n const groups = _.reduce(\n clusters,\n (groups, cluster) => {\n const currentGroup = cluster.group || DEFAULT_GROUP;\n groups[currentGroup] = groups[currentGroup] || [];\n groups[currentGroup].push(cluster);\n return groups;\n },\n {},\n );\n\n _.each(groups, (clusters) => {\n clusters.sort(sortByClusterName);\n });\n\n return groups;\n }\n\n renderVersion({loadState, access, version, status}) {\n let title;\n let text = '—';\n if (loadState === 'loaded') {\n if (access === 'granted') {\n title = `Current cluster version: ${version}`;\n text = version;\n } else if (access === 'none' && status === 'available') {\n title = 'Please refer to Getting Started for more details';\n text = 'No access';\n } else if (access === 'none' && status !== 'available') {\n title = 'Could not load version, cluster is unavailable';\n }\n } else {\n title = 'Please wait, loading cluster version';\n }\n return (\n <div className={b('item-version')} title={title}>\n {text}\n </div>\n );\n }\n\n renderCluster(cluster, size) {\n const {\n status,\n access,\n id,\n name,\n environment,\n descriptionEnglish,\n description,\n theme,\n authorized,\n } = cluster;\n const className = b('item', {\n state: status,\n access: status === 'available' && access,\n size,\n });\n\n const clusterTheme = theme ? `cluster-color_theme_${theme}` : 'cluster-color';\n const {iconbig, icon2x} = getClusterAppearance(id);\n\n return (\n <Link key={id} className={className} to={'/' + id}>\n <div className={b('item-body')}>\n {authorized ? null : (\n <span className={b('item-auth-status')}>\n <Lock />\n </span>\n )}\n <div className={b('item-heading')}>{name}</div>\n\n <div className={b('item-image-wrapper')}>\n <div\n className={b('item-image', clusterTheme)}\n style={{\n backgroundImage: 'url(' + (iconbig || icon2x) + ')',\n }}\n />\n </div>\n\n <div className={b('item-image-veil')} />\n\n {this.renderVersion(cluster)}\n\n <div className={b('item-environment')}>\n <span>{format['ValueOrDefault'](environment)}</span>\n </div>\n\n <div className={b('item-description', 'elements-multiline-ellipsis')}>\n {descriptionEnglish ? descriptionEnglish : description}\n </div>\n </div>\n </Link>\n );\n }\n\n renderDashboard(clusters) {\n const clusterGroups = this.prepareGroups(clusters);\n\n const unknown = _.filter(\n Object.keys(clusterGroups),\n (groupName) => !(groupName in CLUSTER_GROUPS),\n );\n\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n {_.map(CLUSTER_GROUPS_ORDER.concat(unknown), (groupName) => {\n const clusters = clusterGroups[groupName];\n const {caption, size} = CLUSTER_GROUPS[groupName] ?? {caption: groupName};\n\n return (\n clusters &&\n clusters.length && (\n <div key={groupName} className={b('group')}>\n <div\n className={b(\n 'heading',\n {position: 'center', size: 'l'},\n b('group-heading'),\n )}\n >\n {caption}\n </div>\n <div className={b('list')}>\n {_.map(clusters, (cluster) =>\n this.renderCluster(cluster, size),\n )}\n </div>\n </div>\n )\n );\n })}\n </main>\n );\n }\n\n renderTable(clusters) {\n const tableSettings = {\n css: 'cluster-menu',\n theme: 'light',\n striped: true,\n tableId: CLUSTER_MENU_TABLE_ID,\n computeKey: function (item) {\n return item.name;\n },\n onItemClick: function (item) {\n // FIXME: give back control to react-router once we no longer need to render full page on server\n // to get cluster credentials\n window.location = `/${item.id}`;\n },\n columns: {\n items: {\n image: {\n align: 'center',\n caption: '',\n sort: false,\n },\n name: {\n get: function (cluster) {\n return cluster.name;\n },\n sort: true,\n align: 'left',\n },\n environment: {\n get: function (cluster) {\n return cluster.environment;\n },\n sort: true,\n align: 'left',\n },\n version: {\n get: function (cluster) {\n return [cluster.version, cluster.id];\n },\n sort: true,\n align: 'right',\n },\n status: {\n get: function (cluster) {\n return [cluster.status, cluster.id];\n },\n sort: true,\n align: 'center',\n },\n access: {\n get: function (cluster) {\n return [cluster.access, cluster.id];\n },\n sort: true,\n align: 'center',\n },\n },\n sets: {\n default: {\n items: ['image', 'name', 'environment', 'version', 'status', 'access'],\n },\n },\n mode: 'default',\n },\n templates: {\n key: 'cluster-menu',\n data: {},\n },\n };\n\n const {sortState} = this.props;\n const table = Object.assign({}, tableSettings, {\n items: utils.sort(clusters, sortState, tableSettings.columns.items),\n columns: Object.assign({}, tableSettings.columns),\n });\n\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n <div className={b('table-wrapper')}>\n <ElementsTable {...table} />\n </div>\n </main>\n );\n }\n\n renderEmptyContent() {\n const className = b('heading', {position: 'center', size: 'l'});\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n <div className={b('message', className)}>No clusters matching your selection</div>\n </main>\n );\n }\n\n render() {\n const {viewMode, clusterFilter, clusters} = this.props;\n const regexp = new RegExp(clusterFilter, 'i');\n\n const filterByField = (field) => {\n return typeof field === 'string' && field.search(regexp) > -1;\n };\n\n const filteredClusters = _.filter(clusters, ({id, version, environment}) => {\n return [id, version, environment].some(filterByField);\n });\n\n if (viewMode === 'dashboard' && filteredClusters.length) {\n return this.renderDashboard(filteredClusters);\n } else if (viewMode === 'table' && filteredClusters.length) {\n return this.renderTable(filteredClusters);\n } else if (!filteredClusters.length) {\n return this.renderEmptyContent();\n }\n }\n}\n\nfunction mapStateToProps({clustersMenu, tables}) {\n const {viewMode, clusterFilter, clusters} = clustersMenu;\n return {\n viewMode,\n clusterFilter,\n clusters,\n sortState: tables[CLUSTER_MENU_TABLE_ID],\n };\n}\n\nconst mapDispatchToProps = {\n fetchClusterVersions,\n fetchClusterAuthStatus,\n fetchClusterAvailability,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClustersMenuBody);\n"],"mappings":"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"}
|
@@ -8,13 +8,13 @@ declare const _default: import("react-redux").ConnectedComponent<typeof Clusters
|
|
8
8
|
viewMode: PropTypes.Validator<string>;
|
9
9
|
updateFilter: PropTypes.Validator<(...args: any[]) => any>;
|
10
10
|
updateViewMode: PropTypes.Validator<(...args: any[]) => any>;
|
11
|
-
login: PropTypes.
|
12
|
-
}>, "clusterFilter" | PropTypes.RequiredKeys<{
|
11
|
+
login: PropTypes.Requireable<string>;
|
12
|
+
}>, "login" | "clusterFilter" | PropTypes.RequiredKeys<{
|
13
13
|
clusterFilter: PropTypes.Requireable<string>;
|
14
14
|
viewMode: PropTypes.Validator<string>;
|
15
15
|
updateFilter: PropTypes.Validator<(...args: any[]) => any>;
|
16
16
|
updateViewMode: PropTypes.Validator<(...args: any[]) => any>;
|
17
|
-
login: PropTypes.
|
17
|
+
login: PropTypes.Requireable<string>;
|
18
18
|
}>>, "login" | "viewMode" | "updateFilter" | "clusterFilter" | "updateViewMode">>;
|
19
19
|
export default _default;
|
20
20
|
declare function ClustersMenuHeader({ viewMode, updateViewMode, clusterFilter, updateFilter }: {
|
@@ -29,7 +29,7 @@ declare namespace ClustersMenuHeader {
|
|
29
29
|
let viewMode: PropTypes.Validator<string>;
|
30
30
|
let updateFilter: PropTypes.Validator<(...args: any[]) => any>;
|
31
31
|
let updateViewMode: PropTypes.Validator<(...args: any[]) => any>;
|
32
|
-
let login: PropTypes.
|
32
|
+
let login: PropTypes.Requireable<string>;
|
33
33
|
}
|
34
34
|
}
|
35
35
|
import PropTypes from 'prop-types';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_reactRedux","_Filter","_RadioButton","_clustersMenu","_HeaderLinks","_headerLinksItems","_jsxRuntime","obj","__esModule","default","b","block","ClustersMenuHeader","_ref","viewMode","updateViewMode","clusterFilter","updateFilter","_jsx","className","children","_jsxs","Filter","value","placeholder","onChange","RadioButton","size","name","event","target","items","text","icon","awesome","HeaderLinks","currentUrl","LINKS_ITEM_CLUSTERS","href","mapStateToProps","_ref2","clustersMenu","global","login","mapDispatchToProps","_default","exports","connect"],"sources":["ClustersMenuHeader.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\nimport {connect} from 'react-redux';\n\nimport Filter from '../../components/Filter/Filter';\nimport RadioButton from '../../components/RadioButton/RadioButton';\nimport {updateFilter, updateViewMode} from '../../store/actions/clusters-menu';\nimport {HeaderLinks} from '../../containers/ClustersMenu/HeaderLinks';\nimport {LINKS_ITEM_CLUSTERS} from '../../containers/ClustersMenu/header-links-items';\n\nimport './ClusterMenuHeader.scss';\n\nconst b = block('cluster-menu');\n\nClustersMenuHeader.propTypes = {\n clusterFilter: PropTypes.string,\n viewMode: PropTypes.oneOf(['dashboard', 'table']).isRequired,\n updateFilter: PropTypes.func.isRequired,\n updateViewMode: PropTypes.func.isRequired,\n login: PropTypes.string
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_reactRedux","_Filter","_RadioButton","_clustersMenu","_HeaderLinks","_headerLinksItems","_jsxRuntime","obj","__esModule","default","b","block","ClustersMenuHeader","_ref","viewMode","updateViewMode","clusterFilter","updateFilter","_jsx","className","children","_jsxs","Filter","value","placeholder","onChange","RadioButton","size","name","event","target","items","text","icon","awesome","HeaderLinks","currentUrl","LINKS_ITEM_CLUSTERS","href","mapStateToProps","_ref2","clustersMenu","global","login","mapDispatchToProps","_default","exports","connect"],"sources":["ClustersMenuHeader.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\nimport {connect} from 'react-redux';\n\nimport Filter from '../../components/Filter/Filter';\nimport RadioButton from '../../components/RadioButton/RadioButton';\nimport {updateFilter, updateViewMode} from '../../store/actions/clusters-menu';\nimport {HeaderLinks} from '../../containers/ClustersMenu/HeaderLinks';\nimport {LINKS_ITEM_CLUSTERS} from '../../containers/ClustersMenu/header-links-items';\n\nimport './ClusterMenuHeader.scss';\n\nconst b = block('cluster-menu');\n\nClustersMenuHeader.propTypes = {\n clusterFilter: PropTypes.string,\n viewMode: PropTypes.oneOf(['dashboard', 'table']).isRequired,\n updateFilter: PropTypes.func.isRequired,\n updateViewMode: PropTypes.func.isRequired,\n login: PropTypes.string,\n};\n\nfunction ClustersMenuHeader({viewMode, updateViewMode, clusterFilter, updateFilter}) {\n return (\n <header className={b('header', 'elements-page__header')}>\n <div className={b('header-inner')}>\n <div className={b('filter')}>\n <div className=\"elements-filter\">\n <Filter\n value={clusterFilter}\n placeholder=\"Filter clusters\"\n onChange={updateFilter}\n />\n </div>\n </div>\n <div className={b('view')}>\n <RadioButton\n size=\"m\"\n name=\"cluster-menu-mode\"\n value={viewMode}\n onChange={(event) => updateViewMode(event.target.value)}\n items={[\n {\n value: 'table',\n text: '',\n icon: {awesome: 'list'},\n },\n {\n value: 'dashboard',\n text: '',\n icon: {awesome: 'table'},\n },\n ]}\n />\n </div>\n\n <HeaderLinks currentUrl={LINKS_ITEM_CLUSTERS.href} />\n </div>\n </header>\n );\n}\n\nfunction mapStateToProps({clustersMenu, global}) {\n const {viewMode, clusterFilter} = clustersMenu;\n const {login} = global;\n return {\n viewMode,\n clusterFilter,\n login,\n };\n}\n\nconst mapDispatchToProps = {\n updateViewMode,\n updateFilter,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClustersMenuHeader);\n"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_reactRouterDom","require","_react","_interopRequireWildcard","_reactRouter","_reactRedux","_redux","_MaintenancePage","_interopRequireDefault","_index","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","HandleRedirect","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","shouldComponentUpdate","nextProps","location","props","eventsFirstUpdate","nextLocation","isDifferentLocation","render","_this$props","cluster","maintenancePageEvent","isMaintenancePage","MaintenancePage","checkMaintenancePageUrl","isIgnored","getBypassCookie","makeRedirect","Boolean","referrer","pathname","search","_jsx","Redirect","to","concat","Page","MAINTENANCE","state","Component","mapStateToProps","_ref","global","_default","exports","compose","withRouter","connect"],"sources":["HandleRedirect.js"],"sourcesContent":["import {withRouter} from 'react-router-dom';\nimport React, {Component} from 'react';\nimport {Redirect} from 'react-router';\nimport {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport {compose} from 'redux';\n\nimport MaintenancePage from '../../containers/MaintenancePage/MaintenancePage';\n\nimport {Page} from '../../constants/index';\n\nclass HandleRedirect extends Component {\n static propTypes = {\n location: PropTypes.object.isRequired,\n cluster: PropTypes.string
|
1
|
+
{"version":3,"names":["_reactRouterDom","require","_react","_interopRequireWildcard","_reactRouter","_reactRedux","_redux","_MaintenancePage","_interopRequireDefault","_index","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","HandleRedirect","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","shouldComponentUpdate","nextProps","location","props","eventsFirstUpdate","nextLocation","isDifferentLocation","render","_this$props","cluster","maintenancePageEvent","isMaintenancePage","MaintenancePage","checkMaintenancePageUrl","isIgnored","getBypassCookie","makeRedirect","Boolean","referrer","pathname","search","_jsx","Redirect","to","concat","Page","MAINTENANCE","state","Component","mapStateToProps","_ref","global","_default","exports","compose","withRouter","connect"],"sources":["HandleRedirect.js"],"sourcesContent":["import {withRouter} from 'react-router-dom';\nimport React, {Component} from 'react';\nimport {Redirect} from 'react-router';\nimport {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport {compose} from 'redux';\n\nimport MaintenancePage from '../../containers/MaintenancePage/MaintenancePage';\n\nimport {Page} from '../../constants/index';\n\nclass HandleRedirect extends Component {\n static propTypes = {\n location: PropTypes.object.isRequired,\n cluster: PropTypes.string,\n eventsFirstUpdate: PropTypes.bool.isRequired,\n maintenancePageEvent: PropTypes.object,\n };\n\n shouldComponentUpdate(nextProps) {\n const {location} = this.props;\n const {eventsFirstUpdate, location: nextLocation} = nextProps;\n const isDifferentLocation = location !== nextLocation;\n\n return isDifferentLocation || eventsFirstUpdate;\n }\n\n render() {\n const {location, cluster, maintenancePageEvent} = this.props;\n\n if (maintenancePageEvent) {\n const isMaintenancePage = MaintenancePage.checkMaintenancePageUrl(location);\n const isIgnored = MaintenancePage.getBypassCookie(cluster);\n const makeRedirect = Boolean(!isMaintenancePage && !isIgnored);\n\n if (makeRedirect) {\n const referrer = location.pathname + location.search;\n\n return (\n <Redirect\n to={{\n pathname: `/${cluster}/${Page.MAINTENANCE}`,\n state: {referrer},\n }}\n />\n );\n }\n\n return null;\n }\n\n return null;\n }\n}\n\nconst mapStateToProps = ({global}) => {\n const {maintenancePageEvent, eventsFirstUpdate, cluster} = global;\n\n return {maintenancePageEvent, eventsFirstUpdate, cluster};\n};\n\nexport default compose(withRouter, connect(mapStateToProps))(HandleRedirect);\n"],"mappings":"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"}
|
@@ -19,7 +19,10 @@ function onError(e) {
|
|
19
19
|
var _e$response;
|
20
20
|
var isAuthError = _axios.default.isAxiosError(e) && ((_e$response = e.response) === null || _e$response === void 0 ? void 0 : _e$response.status) === 401;
|
21
21
|
if (isAuthError) {
|
22
|
-
|
22
|
+
var _e$response2;
|
23
|
+
(0, _global.handleAuthError)({
|
24
|
+
ytAuthCluster: e === null || e === void 0 || (_e$response2 = e.response) === null || _e$response2 === void 0 || (_e$response2 = _e$response2.data) === null || _e$response2 === void 0 || (_e$response2 = _e$response2.extraData) === null || _e$response2 === void 0 ? void 0 : _e$response2.ytAuthCluster
|
25
|
+
});
|
23
26
|
}
|
24
27
|
}
|
25
28
|
// #sourceMappingURL=main.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_renderApp","require","_yt","_interopRequireDefault","_axios","_global","obj","__esModule","default","yt","subscribe","onError","axios","interceptors","response","use","undefined","onAxiosError","renderApp","e","Promise","reject","_e$response","isAuthError","isAxiosError","status","handleAuthError"],"sources":["main.tsx"],"sourcesContent":["import {renderApp} from '../render-app';\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport axios from 'axios';\nimport {handleAuthError} from '../store/actions/global';\nimport './main.scss';\n\nyt.subscribe('error', onError);\naxios.interceptors.response.use(undefined, onAxiosError);\n\nrenderApp({});\n\nfunction onAxiosError(e: any) {\n onError(e);\n return Promise.reject(e);\n}\n\nfunction onError(e: any) {\n const isAuthError = axios.isAxiosError(e) && e.response?.status === 401;\n if (isAuthError) {\n handleAuthError();\n }\n}\n"],"mappings":";;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,GAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACAA,OAAA;AAAoB,SAAAE,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAJpB;;AAMAG,WAAE,CAACC,SAAS,CAAC,OAAO,EAAEC,OAAO,CAAC;AAC9BC,cAAK,CAACC,YAAY,CAACC,QAAQ,CAACC,GAAG,CAACC,SAAS,EAAEC,YAAY,CAAC;AAExD,IAAAC,oBAAS,EAAC,CAAC,CAAC,CAAC;AAEb,SAASD,YAAYA,CAACE,CAAM,EAAE;EAC1BR,OAAO,CAACQ,CAAC,CAAC;EACV,OAAOC,OAAO,CAACC,MAAM,CAACF,CAAC,CAAC;AAC5B;AAEA,SAASR,OAAOA,CAACQ,CAAM,EAAE;EAAA,IAAAG,WAAA;EACrB,IAAMC,WAAW,GAAGX,cAAK,CAACY,YAAY,CAACL,CAAC,CAAC,IAAI,EAAAG,WAAA,GAAAH,CAAC,CAACL,QAAQ,cAAAQ,WAAA,uBAAVA,WAAA,CAAYG,MAAM,MAAK,GAAG;EACvE,IAAIF,WAAW,EAAE;
|
1
|
+
{"version":3,"names":["_renderApp","require","_yt","_interopRequireDefault","_axios","_global","obj","__esModule","default","yt","subscribe","onError","axios","interceptors","response","use","undefined","onAxiosError","renderApp","e","Promise","reject","_e$response","isAuthError","isAxiosError","status","_e$response2","handleAuthError","ytAuthCluster","data","extraData"],"sources":["main.tsx"],"sourcesContent":["import {renderApp} from '../render-app';\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport axios from 'axios';\nimport {handleAuthError} from '../store/actions/global';\nimport './main.scss';\n\nyt.subscribe('error', onError);\naxios.interceptors.response.use(undefined, onAxiosError);\n\nrenderApp({});\n\nfunction onAxiosError(e: any) {\n onError(e);\n return Promise.reject(e);\n}\n\nfunction onError(e: any) {\n const isAuthError = axios.isAxiosError(e) && e.response?.status === 401;\n if (isAuthError) {\n handleAuthError({ytAuthCluster: e?.response?.data?.extraData?.ytAuthCluster});\n }\n}\n"],"mappings":";;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,GAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACAA,OAAA;AAAoB,SAAAE,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAJpB;;AAMAG,WAAE,CAACC,SAAS,CAAC,OAAO,EAAEC,OAAO,CAAC;AAC9BC,cAAK,CAACC,YAAY,CAACC,QAAQ,CAACC,GAAG,CAACC,SAAS,EAAEC,YAAY,CAAC;AAExD,IAAAC,oBAAS,EAAC,CAAC,CAAC,CAAC;AAEb,SAASD,YAAYA,CAACE,CAAM,EAAE;EAC1BR,OAAO,CAACQ,CAAC,CAAC;EACV,OAAOC,OAAO,CAACC,MAAM,CAACF,CAAC,CAAC;AAC5B;AAEA,SAASR,OAAOA,CAACQ,CAAM,EAAE;EAAA,IAAAG,WAAA;EACrB,IAAMC,WAAW,GAAGX,cAAK,CAACY,YAAY,CAACL,CAAC,CAAC,IAAI,EAAAG,WAAA,GAAAH,CAAC,CAACL,QAAQ,cAAAQ,WAAA,uBAAVA,WAAA,CAAYG,MAAM,MAAK,GAAG;EACvE,IAAIF,WAAW,EAAE;IAAA,IAAAG,YAAA;IACb,IAAAC,uBAAe,EAAC;MAACC,aAAa,EAAET,CAAC,aAADA,CAAC,gBAAAO,YAAA,GAADP,CAAC,CAAEL,QAAQ,cAAAY,YAAA,gBAAAA,YAAA,GAAXA,YAAA,CAAaG,IAAI,cAAAH,YAAA,gBAAAA,YAAA,GAAjBA,YAAA,CAAmBI,SAAS,cAAAJ,YAAA,uBAA5BA,YAAA,CAA8BE;IAAa,CAAC,CAAC;EACjF;AACJ"}
|
@@ -99,6 +99,10 @@ export declare const getShowCompetitiveJobs: ((state: Omit<import("redux").Combi
|
|
99
99
|
aclFilters: import("../../store/reducers/acl/acl-filters").AclFiltersState;
|
100
100
|
actions: never;
|
101
101
|
clustersMenu: {
|
102
|
+
clusters: any;
|
103
|
+
viewMode: string;
|
104
|
+
clusterFilter: string;
|
105
|
+
} | {
|
102
106
|
viewMode: any;
|
103
107
|
clusters: {};
|
104
108
|
clusterFilter: string;
|
@@ -924,6 +928,7 @@ export declare const getShowCompetitiveJobs: ((state: Omit<import("redux").Combi
|
|
924
928
|
rootPagesCluster?: string | undefined;
|
925
929
|
asideHeaderWidth: number;
|
926
930
|
allowedExperimentalPages: string[];
|
931
|
+
ytAuthCluster?: string | undefined;
|
927
932
|
};
|
928
933
|
}) => boolean) & import("reselect").OutputSelectorFields<(args_0: any, args_1: any) => boolean, {
|
929
934
|
clearCache: () => void;
|
@@ -9,6 +9,10 @@ export declare const getQueriesList: ((state: Omit<import("redux").CombinedState
|
|
9
9
|
aclFilters: import("../../../../store/reducers/acl/acl-filters").AclFiltersState;
|
10
10
|
actions: never;
|
11
11
|
clustersMenu: {
|
12
|
+
clusters: any;
|
13
|
+
viewMode: string;
|
14
|
+
clusterFilter: string;
|
15
|
+
} | {
|
12
16
|
viewMode: any;
|
13
17
|
clusters: {};
|
14
18
|
clusterFilter: string;
|
@@ -834,6 +838,7 @@ export declare const getQueriesList: ((state: Omit<import("redux").CombinedState
|
|
834
838
|
rootPagesCluster?: string | undefined;
|
835
839
|
asideHeaderWidth: number;
|
836
840
|
allowedExperimentalPages: string[];
|
841
|
+
ytAuthCluster?: string | undefined;
|
837
842
|
};
|
838
843
|
}) => import("../api").QueryItem[]) & import("reselect").OutputSelectorFields<(args_0: Record<string, import("../api").QueryItem>) => import("../api").QueryItem[], {
|
839
844
|
clearCache: () => void;
|
@@ -852,6 +857,10 @@ export declare const getQueriesListFilter: ((state: Omit<import("redux").Combine
|
|
852
857
|
aclFilters: import("../../../../store/reducers/acl/acl-filters").AclFiltersState;
|
853
858
|
actions: never;
|
854
859
|
clustersMenu: {
|
860
|
+
clusters: any;
|
861
|
+
viewMode: string;
|
862
|
+
clusterFilter: string;
|
863
|
+
} | {
|
855
864
|
viewMode: any;
|
856
865
|
clusters: {};
|
857
866
|
clusterFilter: string;
|
@@ -1677,6 +1686,7 @@ export declare const getQueriesListFilter: ((state: Omit<import("redux").Combine
|
|
1677
1686
|
rootPagesCluster?: string | undefined;
|
1678
1687
|
asideHeaderWidth: number;
|
1679
1688
|
allowedExperimentalPages: string[];
|
1689
|
+
ytAuthCluster?: string | undefined;
|
1680
1690
|
};
|
1681
1691
|
}) => import("./types").QueriesListFilter) & import("reselect").OutputSelectorFields<(args_0: Partial<Record<import("./types").QueriesListMode, {
|
1682
1692
|
filter: import("./types").QueriesListFilter;
|
@@ -1691,6 +1701,10 @@ export declare const getQueriesListCursor: ((state: Omit<import("redux").Combine
|
|
1691
1701
|
aclFilters: import("../../../../store/reducers/acl/acl-filters").AclFiltersState;
|
1692
1702
|
actions: never;
|
1693
1703
|
clustersMenu: {
|
1704
|
+
clusters: any;
|
1705
|
+
viewMode: string;
|
1706
|
+
clusterFilter: string;
|
1707
|
+
} | {
|
1694
1708
|
viewMode: any;
|
1695
1709
|
clusters: {};
|
1696
1710
|
clusterFilter: string;
|
@@ -2516,6 +2530,7 @@ export declare const getQueriesListCursor: ((state: Omit<import("redux").Combine
|
|
2516
2530
|
rootPagesCluster?: string | undefined;
|
2517
2531
|
asideHeaderWidth: number;
|
2518
2532
|
allowedExperimentalPages: string[];
|
2533
|
+
ytAuthCluster?: string | undefined;
|
2519
2534
|
};
|
2520
2535
|
}) => import("./types").QueriesListCursor | undefined) & import("reselect").OutputSelectorFields<(args_0: Partial<Record<import("./types").QueriesListMode, {
|
2521
2536
|
filter: import("./types").QueriesListFilter;
|
@@ -2530,6 +2545,10 @@ export declare const getUncompletedItems: ((state: Omit<import("redux").Combined
|
|
2530
2545
|
aclFilters: import("../../../../store/reducers/acl/acl-filters").AclFiltersState;
|
2531
2546
|
actions: never;
|
2532
2547
|
clustersMenu: {
|
2548
|
+
clusters: any;
|
2549
|
+
viewMode: string;
|
2550
|
+
clusterFilter: string;
|
2551
|
+
} | {
|
2533
2552
|
viewMode: any;
|
2534
2553
|
clusters: {};
|
2535
2554
|
clusterFilter: string;
|
@@ -3355,6 +3374,7 @@ export declare const getUncompletedItems: ((state: Omit<import("redux").Combined
|
|
3355
3374
|
rootPagesCluster?: string | undefined;
|
3356
3375
|
asideHeaderWidth: number;
|
3357
3376
|
allowedExperimentalPages: string[];
|
3377
|
+
ytAuthCluster?: string | undefined;
|
3358
3378
|
};
|
3359
3379
|
}) => import("../api").QueryItem[]) & import("reselect").OutputSelectorFields<(args_0: import("../api").QueryItem[]) => import("../api").QueryItem[], {
|
3360
3380
|
clearCache: () => void;
|
@@ -20,6 +20,10 @@ export declare const isQueryDraftEditted: ((state: Omit<import("redux").Combined
|
|
20
20
|
aclFilters: import("../../../../store/reducers/acl/acl-filters").AclFiltersState;
|
21
21
|
actions: never;
|
22
22
|
clustersMenu: {
|
23
|
+
clusters: any;
|
24
|
+
viewMode: string;
|
25
|
+
clusterFilter: string;
|
26
|
+
} | {
|
23
27
|
viewMode: any;
|
24
28
|
clusters: {};
|
25
29
|
clusterFilter: string;
|
@@ -845,6 +849,7 @@ export declare const isQueryDraftEditted: ((state: Omit<import("redux").Combined
|
|
845
849
|
rootPagesCluster?: string | undefined;
|
846
850
|
asideHeaderWidth: number;
|
847
851
|
allowedExperimentalPages: string[];
|
852
|
+
ytAuthCluster?: string | undefined;
|
848
853
|
};
|
849
854
|
}) => boolean) & import("reselect").OutputSelectorFields<(args_0: import("../api").QueryItem | undefined, args_1: import("../api").DraftQuery) => boolean, {
|
850
855
|
clearCache: () => void;
|
@@ -3,6 +3,10 @@ export declare const getSettingQueryTrackerQueriesListSidebarVisibilityMode: ((s
|
|
3
3
|
aclFilters: import("../../../../store/reducers/acl/acl-filters").AclFiltersState;
|
4
4
|
actions: never;
|
5
5
|
clustersMenu: {
|
6
|
+
clusters: any;
|
7
|
+
viewMode: string;
|
8
|
+
clusterFilter: string;
|
9
|
+
} | {
|
6
10
|
viewMode: any;
|
7
11
|
clusters: {};
|
8
12
|
clusterFilter: string;
|
@@ -828,6 +832,7 @@ export declare const getSettingQueryTrackerQueriesListSidebarVisibilityMode: ((s
|
|
828
832
|
rootPagesCluster?: string | undefined;
|
829
833
|
asideHeaderWidth: number;
|
830
834
|
allowedExperimentalPages: string[];
|
835
|
+
ytAuthCluster?: string | undefined;
|
831
836
|
};
|
832
837
|
}) => boolean) & import("reselect").OutputSelectorFields<(args_0: import("../../../../../shared/constants/settings-types").Settings) => boolean, {
|
833
838
|
clearCache: () => void;
|
@@ -9,7 +9,7 @@ declare const _default: import("react-redux").ConnectedComponent<typeof Chunks,
|
|
9
9
|
field: PropTypes.Requireable<string>;
|
10
10
|
asc: PropTypes.Requireable<boolean>;
|
11
11
|
}>>;
|
12
|
-
}>, "
|
12
|
+
}>, "sortState" | "cells" | "replication" | "types" | "refresh" | "sealer" | "requisitionUpdate">>;
|
13
13
|
export default _default;
|
14
14
|
declare class Chunks extends React.Component<any, any, any> {
|
15
15
|
static _formatChunkName(name: any): any;
|
@@ -4,4 +4,5 @@ import { FIX_MY_TYPE } from '../../../@types/types';
|
|
4
4
|
type GlobalThunkAction<T = unknown> = ThunkAction<T, RootState, any, FIX_MY_TYPE>;
|
5
5
|
export declare function initClusterParams(cluster: string): GlobalThunkAction<Promise<void>>;
|
6
6
|
export declare function updateCluster(cluster: string, onUpdateEnd: () => Promise<void>): GlobalThunkAction;
|
7
|
+
export declare function unmountCluster(): GlobalThunkAction;
|
7
8
|
export {};
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.initClusterParams = initClusterParams;
|
7
|
+
exports.unmountCluster = unmountCluster;
|
7
8
|
exports.updateCluster = updateCluster;
|
8
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
9
10
|
var _axios = _interopRequireDefault(require("axios"));
|
@@ -200,4 +201,16 @@ function updateCluster(cluster, onUpdateEnd) {
|
|
200
201
|
})["catch"](dispatchError);
|
201
202
|
};
|
202
203
|
}
|
204
|
+
function unmountCluster() {
|
205
|
+
return function (dispatch) {
|
206
|
+
_ytConfig.default.parameters.version = '';
|
207
|
+
_ytConfig.default.cluster = '';
|
208
|
+
dispatch({
|
209
|
+
type: _global2.GLOBAL_PARTIAL,
|
210
|
+
data: {
|
211
|
+
cluster: undefined
|
212
|
+
}
|
213
|
+
});
|
214
|
+
};
|
215
|
+
}
|
203
216
|
// #sourceMappingURL=cluster-params.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_axios","_interopRequireDefault","require","_yt","_jsCookie","_ypath","_checkPermission","_index","_global","_utils","_utils2","_settings","_rumCounter","_uikit","_rumWrapApi","_rumMeasureTypes","_utils3","_ytConfig","_global2","_ytApiInit","obj","__esModule","default","handleUiConfigError","path","error","type","rumLogError","level","message","concat","block","toast","Toaster","prepareClusterUiConfig","uiConfig","uiDevConfig","code","yt","codes","NODE_DOES_NOT_EXIST","add","name","autoHiding","title","content","output","initClusterParams","cluster","dispatch","getState","initYTApiClusterParams","INIT_CLUSTER_PARAMS","REQUEST","login","getCurrentUserName","rumId","RumWrapper","RumMeasureTypes","CLUSTER_PARAMS","wrapApiPromiseByToaster","fetch","YTApiId","clusterParams","axios","request","url","method","skipSuccessToast","toasterName","errorTitle","errorContent","then","_ref","data","mediumList","schedulerVersion","masterVersion","getBatchError","_prepareClusterUiConf","_prepareClusterUiConf2","_slicedToArray","uiConfigOutput","uiDevConfigOutput","SUCCESS","ypath","getValue","isDeveloper","clusterUiConfig","clusterParamsIsDeveloper","checkIsDeveloper","undefined","Object","assign","GLOBAL_PARTIAL","e","console","FAILURE","count","updateCluster","onUpdateEnd","dispatchError","_error$response","Error","UPDATE_CLUSTER","response","ui_clusterInfo","_ref2","token","tokenError","version","versionError","RESET_STORE_BEFORE_CLUSTER_CHANGE","shouldUsePreserveState","errorType","LOAD_ERROR","CONNECTION","YT","parameters","csrf_token","Cookies","remove","getXsrfCookieName","AUTHENTICATION","set","FINAL_SUCCESS","Promise","resolve"],"sources":["cluster-params.ts"],"sourcesContent":["import axios, {AxiosResponse} from 'axios';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport Cookies from 'js-cookie';\n\nimport ypath from '../../common/thor/ypath';\nimport {checkIsDeveloper} from '../../../shared/utils/check-permission';\nimport {INIT_CLUSTER_PARAMS, LOAD_ERROR, UPDATE_CLUSTER} from '../../constants/index';\nimport {getCurrentUserName} from '../../store/selectors/global';\nimport {getXsrfCookieName} from '../../utils';\nimport {RESET_STORE_BEFORE_CLUSTER_CHANGE} from '../../constants/utils';\nimport {shouldUsePreserveState} from '../../store/selectors/settings';\nimport {rumLogError} from '../../rum/rum-counter';\nimport {Toaster} from '@gravity-ui/uikit';\nimport {RumWrapper, YTApiId} from '../../rum/rum-wrap-api';\nimport {RumMeasureTypes} from '../../rum/rum-measure-types';\nimport {getBatchError, wrapApiPromiseByToaster} from '../../utils/utils';\nimport {BatchResultsItem} from '../../../shared/yt-types';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../store/reducers';\nimport YT from '../../config/yt-config';\nimport {GLOBAL_PARTIAL} from '../../constants/global';\nimport {FIX_MY_TYPE, YTError} from '../../../@types/types';\nimport {initYTApiClusterParams} from '../../common/yt-api-init';\n\nfunction handleUiConfigError(path: string, error: any, type?: string) {\n rumLogError(\n {\n level: 'warn',\n type,\n message: `${path} cannot be loaded, some ui features might be not available`,\n block: path,\n },\n error,\n );\n}\n\nconst toast = new Toaster();\n\nfunction prepareClusterUiConfig(uiConfig: BatchResultsItem, uiDevConfig: BatchResultsItem) {\n if (uiConfig.error && uiConfig.error.code !== yt.codes.NODE_DOES_NOT_EXIST) {\n handleUiConfigError('//sys/@ui_config', uiConfig.error);\n toast.add({\n name: 'get-ui_config',\n type: 'error',\n autoHiding: false,\n title: 'Failed to load //sys/@ui_config',\n content:\n 'Some UI features might be not available. ' +\n 'Try to reload the page. ' +\n 'If the problem persists please report it via Bug Reporter.',\n });\n }\n if (uiDevConfig.error && uiDevConfig.error.code !== yt.codes.NODE_DOES_NOT_EXIST) {\n handleUiConfigError('//sys/@ui_config_dev_overrides', uiDevConfig.error);\n }\n return [uiConfig.output || {}, uiDevConfig.output || {}];\n}\n\ntype GlobalThunkAction<T = unknown> = ThunkAction<T, RootState, any, FIX_MY_TYPE>;\n\nexport function initClusterParams(cluster: string): GlobalThunkAction<Promise<void>> {\n return (dispatch, getState) => {\n initYTApiClusterParams(cluster);\n\n dispatch({\n type: INIT_CLUSTER_PARAMS.REQUEST,\n });\n\n const login = getCurrentUserName(getState());\n\n const rumId = new RumWrapper(cluster, RumMeasureTypes.CLUSTER_PARAMS);\n return wrapApiPromiseByToaster(\n rumId.fetch(\n YTApiId.clusterParams,\n axios.request({\n url: '/api/cluster-params/' + cluster,\n method: 'GET',\n }),\n ),\n {\n skipSuccessToast: true,\n toasterName: 'cluster_initialization_failure',\n errorTitle: 'Cluster initialization failure',\n errorContent: 'An error occured',\n },\n )\n .then(({data}) => {\n const {mediumList, schedulerVersion, masterVersion, uiConfig, uiDevConfig} = data;\n const error = getBatchError([mediumList], 'Cluster initialization failure');\n if (error) {\n throw error;\n }\n const [uiConfigOutput, uiDevConfigOutput] = prepareClusterUiConfig(\n uiConfig,\n uiDevConfig,\n );\n dispatch({\n type: INIT_CLUSTER_PARAMS.SUCCESS,\n data: {\n cluster,\n mediumList: ypath.getValue(mediumList.output),\n isDeveloper: false,\n clusterUiConfig: uiConfigOutput,\n schedulerVersion: schedulerVersion.output,\n masterVersion: masterVersion.output,\n },\n });\n\n return rumId\n .fetch(\n YTApiId.clusterParamsIsDeveloper,\n checkIsDeveloper(\n login,\n undefined,\n YTApiId[YTApiId.clusterParamsIsDeveloper],\n ),\n )\n .then((isDeveloper) => {\n if (isDeveloper) {\n const clusterUiConfig = isDeveloper\n ? Object.assign({}, uiConfigOutput, uiDevConfigOutput)\n : uiConfigOutput;\n dispatch({type: GLOBAL_PARTIAL, data: {isDeveloper, clusterUiConfig}});\n }\n })\n .catch((e) => {\n console.error('Failed to check if current user is admin', e);\n });\n })\n .catch((e) => {\n dispatch({\n type: INIT_CLUSTER_PARAMS.FAILURE,\n data: e,\n });\n });\n };\n}\n\ninterface ClusterInfoData {\n version?: string;\n versionError?: YTError;\n token?: {\n login: string;\n csrf_token?: string;\n };\n tokenError?: YTError;\n}\n\nlet count = 0;\nexport function updateCluster(\n cluster: string,\n onUpdateEnd: () => Promise<void>,\n): GlobalThunkAction {\n return (dispatch, getState) => {\n const dispatchError = (error: any) => {\n if (error instanceof Error) {\n console.error(error);\n }\n dispatch({\n type: UPDATE_CLUSTER.FAILURE,\n data: {error: error?.response?.data || error},\n });\n };\n\n dispatch({\n type: UPDATE_CLUSTER.REQUEST,\n });\n\n const rumId = new RumWrapper(cluster, RumMeasureTypes.CLUSTER_PARAMS);\n return rumId\n .fetch<AxiosResponse<ClusterInfoData>>(\n YTApiId.ui_clusterInfo,\n axios.request({\n url: '/api/cluster-info/' + cluster,\n method: 'GET',\n }),\n )\n .then(({data}) => {\n const {token, tokenError, version, versionError} = data;\n\n if (count++) {\n dispatch({\n type: RESET_STORE_BEFORE_CLUSTER_CHANGE,\n data: {\n shouldUsePreserveState: shouldUsePreserveState(getState()),\n },\n });\n }\n\n if (!version || versionError) {\n dispatch({\n type: UPDATE_CLUSTER.FAILURE,\n data: {errorType: LOAD_ERROR.CONNECTION, error: versionError},\n });\n } else {\n dispatch({\n type: UPDATE_CLUSTER.SUCCESS,\n data: {version},\n });\n\n YT.parameters.version = version;\n YT.cluster = cluster;\n\n if (!token?.csrf_token || tokenError) {\n Cookies.remove(getXsrfCookieName(cluster));\n dispatch({\n type: UPDATE_CLUSTER.FAILURE,\n data: {\n errorType: LOAD_ERROR.AUTHENTICATION,\n error: tokenError || new Error('Failed to get CSRF-token'),\n },\n });\n } else {\n const {login, csrf_token} = token;\n YT.parameters.login = login;\n dispatch({type: GLOBAL_PARTIAL, data: {login}});\n Cookies.set(getXsrfCookieName(cluster), csrf_token);\n return onUpdateEnd()\n .then(() => {\n dispatch({\n type: UPDATE_CLUSTER.FINAL_SUCCESS,\n });\n })\n .catch(dispatchError);\n }\n }\n\n return Promise.resolve();\n })\n .catch(dispatchError);\n };\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_axios","_interopRequireDefault","require","_yt","_jsCookie","_ypath","_checkPermission","_index","_global","_utils","_utils2","_settings","_rumCounter","_uikit","_rumWrapApi","_rumMeasureTypes","_utils3","_ytConfig","_global2","_ytApiInit","obj","__esModule","default","handleUiConfigError","path","error","type","rumLogError","level","message","concat","block","toast","Toaster","prepareClusterUiConfig","uiConfig","uiDevConfig","code","yt","codes","NODE_DOES_NOT_EXIST","add","name","autoHiding","title","content","output","initClusterParams","cluster","dispatch","getState","initYTApiClusterParams","INIT_CLUSTER_PARAMS","REQUEST","login","getCurrentUserName","rumId","RumWrapper","RumMeasureTypes","CLUSTER_PARAMS","wrapApiPromiseByToaster","fetch","YTApiId","clusterParams","axios","request","url","method","skipSuccessToast","toasterName","errorTitle","errorContent","then","_ref","data","mediumList","schedulerVersion","masterVersion","getBatchError","_prepareClusterUiConf","_prepareClusterUiConf2","_slicedToArray","uiConfigOutput","uiDevConfigOutput","SUCCESS","ypath","getValue","isDeveloper","clusterUiConfig","clusterParamsIsDeveloper","checkIsDeveloper","undefined","Object","assign","GLOBAL_PARTIAL","e","console","FAILURE","count","updateCluster","onUpdateEnd","dispatchError","_error$response","Error","UPDATE_CLUSTER","response","ui_clusterInfo","_ref2","token","tokenError","version","versionError","RESET_STORE_BEFORE_CLUSTER_CHANGE","shouldUsePreserveState","errorType","LOAD_ERROR","CONNECTION","YT","parameters","csrf_token","Cookies","remove","getXsrfCookieName","AUTHENTICATION","set","FINAL_SUCCESS","Promise","resolve","unmountCluster"],"sources":["cluster-params.ts"],"sourcesContent":["import axios, {AxiosResponse} from 'axios';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport Cookies from 'js-cookie';\n\nimport ypath from '../../common/thor/ypath';\nimport {checkIsDeveloper} from '../../../shared/utils/check-permission';\nimport {INIT_CLUSTER_PARAMS, LOAD_ERROR, UPDATE_CLUSTER} from '../../constants/index';\nimport {getCurrentUserName} from '../../store/selectors/global';\nimport {getXsrfCookieName} from '../../utils';\nimport {RESET_STORE_BEFORE_CLUSTER_CHANGE} from '../../constants/utils';\nimport {shouldUsePreserveState} from '../../store/selectors/settings';\nimport {rumLogError} from '../../rum/rum-counter';\nimport {Toaster} from '@gravity-ui/uikit';\nimport {RumWrapper, YTApiId} from '../../rum/rum-wrap-api';\nimport {RumMeasureTypes} from '../../rum/rum-measure-types';\nimport {getBatchError, wrapApiPromiseByToaster} from '../../utils/utils';\nimport {BatchResultsItem} from '../../../shared/yt-types';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../store/reducers';\nimport YT from '../../config/yt-config';\nimport {GLOBAL_PARTIAL} from '../../constants/global';\nimport {FIX_MY_TYPE, YTError} from '../../../@types/types';\nimport {initYTApiClusterParams} from '../../common/yt-api-init';\n\nfunction handleUiConfigError(path: string, error: any, type?: string) {\n rumLogError(\n {\n level: 'warn',\n type,\n message: `${path} cannot be loaded, some ui features might be not available`,\n block: path,\n },\n error,\n );\n}\n\nconst toast = new Toaster();\n\nfunction prepareClusterUiConfig(uiConfig: BatchResultsItem, uiDevConfig: BatchResultsItem) {\n if (uiConfig.error && uiConfig.error.code !== yt.codes.NODE_DOES_NOT_EXIST) {\n handleUiConfigError('//sys/@ui_config', uiConfig.error);\n toast.add({\n name: 'get-ui_config',\n type: 'error',\n autoHiding: false,\n title: 'Failed to load //sys/@ui_config',\n content:\n 'Some UI features might be not available. ' +\n 'Try to reload the page. ' +\n 'If the problem persists please report it via Bug Reporter.',\n });\n }\n if (uiDevConfig.error && uiDevConfig.error.code !== yt.codes.NODE_DOES_NOT_EXIST) {\n handleUiConfigError('//sys/@ui_config_dev_overrides', uiDevConfig.error);\n }\n return [uiConfig.output || {}, uiDevConfig.output || {}];\n}\n\ntype GlobalThunkAction<T = unknown> = ThunkAction<T, RootState, any, FIX_MY_TYPE>;\n\nexport function initClusterParams(cluster: string): GlobalThunkAction<Promise<void>> {\n return (dispatch, getState) => {\n initYTApiClusterParams(cluster);\n\n dispatch({\n type: INIT_CLUSTER_PARAMS.REQUEST,\n });\n\n const login = getCurrentUserName(getState());\n\n const rumId = new RumWrapper(cluster, RumMeasureTypes.CLUSTER_PARAMS);\n return wrapApiPromiseByToaster(\n rumId.fetch(\n YTApiId.clusterParams,\n axios.request({\n url: '/api/cluster-params/' + cluster,\n method: 'GET',\n }),\n ),\n {\n skipSuccessToast: true,\n toasterName: 'cluster_initialization_failure',\n errorTitle: 'Cluster initialization failure',\n errorContent: 'An error occured',\n },\n )\n .then(({data}) => {\n const {mediumList, schedulerVersion, masterVersion, uiConfig, uiDevConfig} = data;\n const error = getBatchError([mediumList], 'Cluster initialization failure');\n if (error) {\n throw error;\n }\n const [uiConfigOutput, uiDevConfigOutput] = prepareClusterUiConfig(\n uiConfig,\n uiDevConfig,\n );\n dispatch({\n type: INIT_CLUSTER_PARAMS.SUCCESS,\n data: {\n cluster,\n mediumList: ypath.getValue(mediumList.output),\n isDeveloper: false,\n clusterUiConfig: uiConfigOutput,\n schedulerVersion: schedulerVersion.output,\n masterVersion: masterVersion.output,\n },\n });\n\n return rumId\n .fetch(\n YTApiId.clusterParamsIsDeveloper,\n checkIsDeveloper(\n login,\n undefined,\n YTApiId[YTApiId.clusterParamsIsDeveloper],\n ),\n )\n .then((isDeveloper) => {\n if (isDeveloper) {\n const clusterUiConfig = isDeveloper\n ? Object.assign({}, uiConfigOutput, uiDevConfigOutput)\n : uiConfigOutput;\n dispatch({type: GLOBAL_PARTIAL, data: {isDeveloper, clusterUiConfig}});\n }\n })\n .catch((e) => {\n console.error('Failed to check if current user is admin', e);\n });\n })\n .catch((e) => {\n dispatch({\n type: INIT_CLUSTER_PARAMS.FAILURE,\n data: e,\n });\n });\n };\n}\n\ninterface ClusterInfoData {\n version?: string;\n versionError?: YTError;\n token?: {\n login: string;\n csrf_token?: string;\n };\n tokenError?: YTError;\n}\n\nlet count = 0;\nexport function updateCluster(\n cluster: string,\n onUpdateEnd: () => Promise<void>,\n): GlobalThunkAction {\n return (dispatch, getState) => {\n const dispatchError = (error: any) => {\n if (error instanceof Error) {\n console.error(error);\n }\n dispatch({\n type: UPDATE_CLUSTER.FAILURE,\n data: {error: error?.response?.data || error},\n });\n };\n\n dispatch({\n type: UPDATE_CLUSTER.REQUEST,\n });\n\n const rumId = new RumWrapper(cluster, RumMeasureTypes.CLUSTER_PARAMS);\n return rumId\n .fetch<AxiosResponse<ClusterInfoData>>(\n YTApiId.ui_clusterInfo,\n axios.request({\n url: '/api/cluster-info/' + cluster,\n method: 'GET',\n }),\n )\n .then(({data}) => {\n const {token, tokenError, version, versionError} = data;\n\n if (count++) {\n dispatch({\n type: RESET_STORE_BEFORE_CLUSTER_CHANGE,\n data: {\n shouldUsePreserveState: shouldUsePreserveState(getState()),\n },\n });\n }\n\n if (!version || versionError) {\n dispatch({\n type: UPDATE_CLUSTER.FAILURE,\n data: {errorType: LOAD_ERROR.CONNECTION, error: versionError},\n });\n } else {\n dispatch({\n type: UPDATE_CLUSTER.SUCCESS,\n data: {version},\n });\n\n YT.parameters.version = version;\n YT.cluster = cluster;\n\n if (!token?.csrf_token || tokenError) {\n Cookies.remove(getXsrfCookieName(cluster));\n dispatch({\n type: UPDATE_CLUSTER.FAILURE,\n data: {\n errorType: LOAD_ERROR.AUTHENTICATION,\n error: tokenError || new Error('Failed to get CSRF-token'),\n },\n });\n } else {\n const {login, csrf_token} = token;\n YT.parameters.login = login;\n dispatch({type: GLOBAL_PARTIAL, data: {login}});\n Cookies.set(getXsrfCookieName(cluster), csrf_token);\n return onUpdateEnd()\n .then(() => {\n dispatch({\n type: UPDATE_CLUSTER.FINAL_SUCCESS,\n });\n })\n .catch(dispatchError);\n }\n }\n\n return Promise.resolve();\n })\n .catch(dispatchError);\n };\n}\n\nexport function unmountCluster(): GlobalThunkAction {\n return (dispatch) => {\n YT.parameters.version = '';\n YT.cluster = '';\n\n dispatch({\n type: GLOBAL_PARTIAL,\n data: {\n cluster: undefined,\n },\n });\n };\n}\n"],"mappings":"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"}
|
@@ -7,4 +7,5 @@ export function updateFilter(clusterFilter: any): {
|
|
7
7
|
data: any;
|
8
8
|
};
|
9
9
|
export function fetchClusterVersions(): (dispatch: any) => Promise<void>;
|
10
|
+
export function fetchClusterAuthStatus(): (dispatch: any) => Promise<void>;
|
10
11
|
export function fetchClusterAvailability(): (dispatch: any) => Promise<void>;
|