From fa47ee0b2d8776997ec8464c70665dd600b58cc3 Mon Sep 17 00:00:00 2001 From: Wroud Date: Fri, 7 Aug 2020 18:52:33 +0300 Subject: [PATCH 1/2] refactor(core): extract routing from core, make administration part of core CB-213 --- .../.gitignore | 0 .../package.json | 13 +-- .../src/Administration/Administration.tsx | 0 .../AdministrationController.ts | 0 .../AdministrationTools.tsx | 0 .../src/Administration/DrawerItem.tsx | 0 .../src/Administration/ItemContent.tsx | 0 .../AdministrationItemService.ts | 5 +- .../AdministrationItem/IAdministrationItem.ts | 0 .../src/AdministrationLocaleService.ts | 0 .../AdministrationScreen.tsx | 0 .../AdministrationScreenService.ts | 5 +- .../AdministrationTopAppBar.tsx | 0 .../AdministrationTopAppBarService.ts | 3 - .../AdministrationTopAppBar/Fill.tsx | 0 .../src/EAdminPermission.ts | 0 .../src/index.ts | 7 +- .../src/locales/en.ts | 0 .../src/locales/ru.ts | 0 .../tsconfig.json | 0 webapp/packages/core-app/package.json | 18 ++-- .../src/AppScreen/AppScreenService.ts | 9 +- webapp/packages/core-app/src/Body.tsx | 3 +- ...AdministrationTopAppBarBootstrapService.ts | 28 ++++++ .../SettingsMenu/SettingsMenuService.ts | 34 ++++++- webapp/packages/core-app/src/index.ts | 4 +- .../src/Placeholder/PlaceholderContainer.ts | 2 +- webapp/packages/core-bootstrap/package.json | 2 + .../core-bootstrap/src/AppBootstrap.ts | 2 +- .../packages/core-bootstrap/src/manifest.ts | 14 ++- webapp/packages/core-routing/.gitignore | 21 +++++ webapp/packages/core-routing/package.json | 25 +++++ .../src/RouterService.ts | 0 .../src/Screen/IScreen.ts | 1 + .../src/Screen/ScreenService.ts | 9 ++ webapp/packages/core-routing/src/index.ts | 3 + webapp/packages/core-routing/tsconfig.json | 10 ++ .../createConnectionConfiguration.gql | 23 +++++ .../deleteConnectionConfiguration.gql | 3 + .../administration/getConnections.gql | 23 +++++ webapp/packages/core-sdk/src/sdk.ts | 93 ++++++++++++++++--- .../src/AdministrationMenuService.ts | 53 ----------- .../plugin-administration/src/manifest.ts | 32 ------- .../plugin-authentication/package.json | 2 +- .../AuthAdministrationService.ts | 2 +- .../Users/CreateUser/CreateUserController.ts | 2 +- .../Users/UsersAdministration.tsx | 2 +- .../Users/UsersAdministrationService.ts | 3 +- .../Administration/Users/UsersDrawerItem.tsx | 2 +- .../src/AuthMenuService.ts | 2 +- webapp/packages/product-default/package.json | 1 - webapp/packages/product-default/src/index.ts | 2 - 52 files changed, 302 insertions(+), 161 deletions(-) rename webapp/packages/{plugin-administration => core-administration}/.gitignore (100%) rename webapp/packages/{plugin-administration => core-administration}/package.json (62%) rename webapp/packages/{plugin-administration => core-administration}/src/Administration/Administration.tsx (100%) rename webapp/packages/{plugin-administration => core-administration}/src/Administration/AdministrationController.ts (100%) rename webapp/packages/{plugin-administration => core-administration}/src/Administration/AdministrationTools/AdministrationTools.tsx (100%) rename webapp/packages/{plugin-administration => core-administration}/src/Administration/DrawerItem.tsx (100%) rename webapp/packages/{plugin-administration => core-administration}/src/Administration/ItemContent.tsx (100%) rename webapp/packages/{plugin-administration => core-administration}/src/AdministrationItem/AdministrationItemService.ts (95%) rename webapp/packages/{plugin-administration => core-administration}/src/AdministrationItem/IAdministrationItem.ts (100%) rename webapp/packages/{plugin-administration => core-administration}/src/AdministrationLocaleService.ts (100%) rename webapp/packages/{plugin-administration => core-administration}/src/AdministrationScreen/AdministrationScreen.tsx (100%) rename webapp/packages/{plugin-administration => core-administration}/src/AdministrationScreen/AdministrationScreenService.ts (94%) rename webapp/packages/{plugin-administration => core-administration}/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBar.tsx (100%) rename webapp/packages/{plugin-administration => core-administration}/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBarService.ts (79%) rename webapp/packages/{plugin-administration => core-administration}/src/AdministrationScreen/AdministrationTopAppBar/Fill.tsx (100%) rename webapp/packages/{plugin-administration => core-administration}/src/EAdminPermission.ts (100%) rename webapp/packages/{plugin-administration => core-administration}/src/index.ts (76%) rename webapp/packages/{plugin-administration => core-administration}/src/locales/en.ts (100%) rename webapp/packages/{plugin-administration => core-administration}/src/locales/ru.ts (100%) rename webapp/packages/{plugin-administration => core-administration}/tsconfig.json (100%) create mode 100644 webapp/packages/core-app/src/TopNavBar/AdministrationTopAppBarBootstrapService.ts create mode 100644 webapp/packages/core-routing/.gitignore create mode 100644 webapp/packages/core-routing/package.json rename webapp/packages/{core-app => core-routing}/src/RouterService.ts (100%) rename webapp/packages/{core-app => core-routing}/src/Screen/IScreen.ts (96%) rename webapp/packages/{core-app => core-routing}/src/Screen/ScreenService.ts (90%) create mode 100644 webapp/packages/core-routing/src/index.ts create mode 100644 webapp/packages/core-routing/tsconfig.json create mode 100644 webapp/packages/core-sdk/src/queries/connections/administration/createConnectionConfiguration.gql create mode 100644 webapp/packages/core-sdk/src/queries/connections/administration/deleteConnectionConfiguration.gql create mode 100644 webapp/packages/core-sdk/src/queries/connections/administration/getConnections.gql delete mode 100644 webapp/packages/plugin-administration/src/AdministrationMenuService.ts delete mode 100644 webapp/packages/plugin-administration/src/manifest.ts diff --git a/webapp/packages/plugin-administration/.gitignore b/webapp/packages/core-administration/.gitignore similarity index 100% rename from webapp/packages/plugin-administration/.gitignore rename to webapp/packages/core-administration/.gitignore diff --git a/webapp/packages/plugin-administration/package.json b/webapp/packages/core-administration/package.json similarity index 62% rename from webapp/packages/plugin-administration/package.json rename to webapp/packages/core-administration/package.json index 9dda4bf6e5..b91285872c 100644 --- a/webapp/packages/plugin-administration/package.json +++ b/webapp/packages/core-administration/package.json @@ -1,5 +1,5 @@ { - "name": "@cloudbeaver/plugin-administration", + "name": "@cloudbeaver/core-administration", "sideEffects": false, "version": "0.1.0", "description": "", @@ -14,22 +14,13 @@ "lint-fix": "eslint ./src/ --ext .ts,.tsx --fix" }, "peerDependencies": { - "@cloudbeaver/core-app": "^0.1.0", "@cloudbeaver/core-blocks": "^0.1.0", "@cloudbeaver/core-di": "^0.1.0", - "@cloudbeaver/core-dialogs": "^0.1.0", - "@cloudbeaver/core-events": "^0.1.0", - "@cloudbeaver/core-extensions": "^0.1.0", "@cloudbeaver/core-localization": "^0.1.0", - "@cloudbeaver/core-plugin": "^0.1.0", - "@cloudbeaver/core-product": "^0.1.0", "@cloudbeaver/core-root": "^0.1.0", - "@cloudbeaver/core-sdk": "^0.1.0", - "@cloudbeaver/core-settings": "^0.1.0", + "@cloudbeaver/core-routing": "^0.1.0", "@cloudbeaver/core-theming": "^0.1.0", - "@cloudbeaver/core-utils": "^0.1.0", "react": "^16.x.x", - "rxjs": "^6.x.x", "mobx": "^5.x.x", "mobx-react": "^6.x.x", "reshadow": "^0.0.1-alpha.78" diff --git a/webapp/packages/plugin-administration/src/Administration/Administration.tsx b/webapp/packages/core-administration/src/Administration/Administration.tsx similarity index 100% rename from webapp/packages/plugin-administration/src/Administration/Administration.tsx rename to webapp/packages/core-administration/src/Administration/Administration.tsx diff --git a/webapp/packages/plugin-administration/src/Administration/AdministrationController.ts b/webapp/packages/core-administration/src/Administration/AdministrationController.ts similarity index 100% rename from webapp/packages/plugin-administration/src/Administration/AdministrationController.ts rename to webapp/packages/core-administration/src/Administration/AdministrationController.ts diff --git a/webapp/packages/plugin-administration/src/Administration/AdministrationTools/AdministrationTools.tsx b/webapp/packages/core-administration/src/Administration/AdministrationTools/AdministrationTools.tsx similarity index 100% rename from webapp/packages/plugin-administration/src/Administration/AdministrationTools/AdministrationTools.tsx rename to webapp/packages/core-administration/src/Administration/AdministrationTools/AdministrationTools.tsx diff --git a/webapp/packages/plugin-administration/src/Administration/DrawerItem.tsx b/webapp/packages/core-administration/src/Administration/DrawerItem.tsx similarity index 100% rename from webapp/packages/plugin-administration/src/Administration/DrawerItem.tsx rename to webapp/packages/core-administration/src/Administration/DrawerItem.tsx diff --git a/webapp/packages/plugin-administration/src/Administration/ItemContent.tsx b/webapp/packages/core-administration/src/Administration/ItemContent.tsx similarity index 100% rename from webapp/packages/plugin-administration/src/Administration/ItemContent.tsx rename to webapp/packages/core-administration/src/Administration/ItemContent.tsx diff --git a/webapp/packages/plugin-administration/src/AdministrationItem/AdministrationItemService.ts b/webapp/packages/core-administration/src/AdministrationItem/AdministrationItemService.ts similarity index 95% rename from webapp/packages/plugin-administration/src/AdministrationItem/AdministrationItemService.ts rename to webapp/packages/core-administration/src/AdministrationItem/AdministrationItemService.ts index 41b7433b6b..a729c280fb 100644 --- a/webapp/packages/plugin-administration/src/AdministrationItem/AdministrationItemService.ts +++ b/webapp/packages/core-administration/src/AdministrationItem/AdministrationItemService.ts @@ -20,8 +20,9 @@ export class AdministrationItemService { if (this.items.length === 0) { return null; } - - return this.items[0].name; + return this.items + .concat() + .sort((a, b) => a.order - b.order)[0].name; } getItem(name: string): IAdministrationItem | null { diff --git a/webapp/packages/plugin-administration/src/AdministrationItem/IAdministrationItem.ts b/webapp/packages/core-administration/src/AdministrationItem/IAdministrationItem.ts similarity index 100% rename from webapp/packages/plugin-administration/src/AdministrationItem/IAdministrationItem.ts rename to webapp/packages/core-administration/src/AdministrationItem/IAdministrationItem.ts diff --git a/webapp/packages/plugin-administration/src/AdministrationLocaleService.ts b/webapp/packages/core-administration/src/AdministrationLocaleService.ts similarity index 100% rename from webapp/packages/plugin-administration/src/AdministrationLocaleService.ts rename to webapp/packages/core-administration/src/AdministrationLocaleService.ts diff --git a/webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationScreen.tsx b/webapp/packages/core-administration/src/AdministrationScreen/AdministrationScreen.tsx similarity index 100% rename from webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationScreen.tsx rename to webapp/packages/core-administration/src/AdministrationScreen/AdministrationScreen.tsx diff --git a/webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationScreenService.ts b/webapp/packages/core-administration/src/AdministrationScreen/AdministrationScreenService.ts similarity index 94% rename from webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationScreenService.ts rename to webapp/packages/core-administration/src/AdministrationScreen/AdministrationScreenService.ts index d8a1a70d5b..44a115c21e 100644 --- a/webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationScreenService.ts +++ b/webapp/packages/core-administration/src/AdministrationScreen/AdministrationScreenService.ts @@ -8,9 +8,9 @@ import { computed } from 'mobx'; -import { ScreenService, RouterService, AppScreenService } from '@cloudbeaver/core-app'; import { injectable, Bootstrap } from '@cloudbeaver/core-di'; import { PermissionsService } from '@cloudbeaver/core-root'; +import { ScreenService, RouterService } from '@cloudbeaver/core-routing'; import { AdministrationItemService } from '../AdministrationItem/AdministrationItemService'; import { EAdminPermission } from '../EAdminPermission'; @@ -49,7 +49,6 @@ export class AdministrationScreenService extends Bootstrap { private screenService: ScreenService, private routerService: RouterService, private permissionsService: PermissionsService, - private appScreenService: AppScreenService, private administrationItemService: AdministrationItemService ) { super(); @@ -102,7 +101,7 @@ export class AdministrationScreenService extends Bootstrap { private async handleActivate() { if (!this.permissionsService.has(EAdminPermission.admin)) { - this.appScreenService.navigateToRoot(); + this.screenService.navigateToRoot(); return; } diff --git a/webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBar.tsx b/webapp/packages/core-administration/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBar.tsx similarity index 100% rename from webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBar.tsx rename to webapp/packages/core-administration/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBar.tsx diff --git a/webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBarService.ts b/webapp/packages/core-administration/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBarService.ts similarity index 79% rename from webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBarService.ts rename to webapp/packages/core-administration/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBarService.ts index 24861c21be..04684b567f 100644 --- a/webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBarService.ts +++ b/webapp/packages/core-administration/src/AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBarService.ts @@ -6,7 +6,6 @@ * you may not use this file except in compliance with the License. */ -import { SettingsMenu, Logo } from '@cloudbeaver/core-app'; import { PlaceholderContainer } from '@cloudbeaver/core-blocks'; import { injectable } from '@cloudbeaver/core-di'; @@ -17,8 +16,6 @@ export class AdministrationTopAppBarService { readonly placeholder = new PlaceholderContainer(); constructor() { - this.placeholder.add(Logo, 0); this.placeholder.add(Fill, 3); - this.placeholder.add(SettingsMenu, 4); } } diff --git a/webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationTopAppBar/Fill.tsx b/webapp/packages/core-administration/src/AdministrationScreen/AdministrationTopAppBar/Fill.tsx similarity index 100% rename from webapp/packages/plugin-administration/src/AdministrationScreen/AdministrationTopAppBar/Fill.tsx rename to webapp/packages/core-administration/src/AdministrationScreen/AdministrationTopAppBar/Fill.tsx diff --git a/webapp/packages/plugin-administration/src/EAdminPermission.ts b/webapp/packages/core-administration/src/EAdminPermission.ts similarity index 100% rename from webapp/packages/plugin-administration/src/EAdminPermission.ts rename to webapp/packages/core-administration/src/EAdminPermission.ts diff --git a/webapp/packages/plugin-administration/src/index.ts b/webapp/packages/core-administration/src/index.ts similarity index 76% rename from webapp/packages/plugin-administration/src/index.ts rename to webapp/packages/core-administration/src/index.ts index 5dbc811fe5..9e83afe072 100644 --- a/webapp/packages/plugin-administration/src/index.ts +++ b/webapp/packages/core-administration/src/index.ts @@ -1,10 +1,7 @@ -import { manifest } from './manifest'; - -export default manifest; - export * from './Administration/AdministrationTools/AdministrationTools'; export * from './AdministrationItem/AdministrationItemService'; export * from './AdministrationItem/IAdministrationItem'; export * from './AdministrationScreen/AdministrationScreenService'; export * from './AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBarService'; -export * from './AdministrationMenuService'; +export * from './AdministrationLocaleService'; +export * from './EAdminPermission'; diff --git a/webapp/packages/plugin-administration/src/locales/en.ts b/webapp/packages/core-administration/src/locales/en.ts similarity index 100% rename from webapp/packages/plugin-administration/src/locales/en.ts rename to webapp/packages/core-administration/src/locales/en.ts diff --git a/webapp/packages/plugin-administration/src/locales/ru.ts b/webapp/packages/core-administration/src/locales/ru.ts similarity index 100% rename from webapp/packages/plugin-administration/src/locales/ru.ts rename to webapp/packages/core-administration/src/locales/ru.ts diff --git a/webapp/packages/plugin-administration/tsconfig.json b/webapp/packages/core-administration/tsconfig.json similarity index 100% rename from webapp/packages/plugin-administration/tsconfig.json rename to webapp/packages/core-administration/tsconfig.json diff --git a/webapp/packages/core-app/package.json b/webapp/packages/core-app/package.json index 6c7568c96a..f49c2aeec9 100644 --- a/webapp/packages/core-app/package.json +++ b/webapp/packages/core-app/package.json @@ -13,21 +13,19 @@ "lint": "eslint ./src/ --ext .ts,.tsx", "lint-fix": "eslint ./src/ --ext .ts,.tsx --fix" }, - "dependencies": { - "router5": "^8.x.x", - "router5-plugin-browser": "^8.x.x" - }, "peerDependencies": { - "@cloudbeaver/core-di": "^0.1.0", - "@cloudbeaver/core-connections": "^0.1.0", - "@cloudbeaver/core-plugin": "^0.1.0", - "@cloudbeaver/core-localization": "^0.1.0", "@cloudbeaver/core-blocks": "^0.1.0", - "@cloudbeaver/core-sdk": "^0.1.0", - "@cloudbeaver/core-theming": "^0.1.0", + "@cloudbeaver/core-connections": "^0.1.0", + "@cloudbeaver/core-di": "^0.1.0", "@cloudbeaver/core-dialogs": "^0.1.0", "@cloudbeaver/core-extensions": "^0.1.0", + "@cloudbeaver/core-localization": "^0.1.0", + "@cloudbeaver/core-notifications": "^0.1.0", + "@cloudbeaver/core-routing": "^0.1.0", + "@cloudbeaver/core-plugin": "^0.1.0", + "@cloudbeaver/core-sdk": "^0.1.0", "@cloudbeaver/core-settings": "^0.1.0", + "@cloudbeaver/core-theming": "^0.1.0", "@cloudbeaver/core-utils": "^0.1.0", "@cloudbeaver/core-view": "^0.1.0", "react": "^16.x.x", diff --git a/webapp/packages/core-app/src/AppScreen/AppScreenService.ts b/webapp/packages/core-app/src/AppScreen/AppScreenService.ts index 176132e401..fed4f4561d 100644 --- a/webapp/packages/core-app/src/AppScreen/AppScreenService.ts +++ b/webapp/packages/core-app/src/AppScreen/AppScreenService.ts @@ -7,9 +7,8 @@ */ import { injectable } from '@cloudbeaver/core-di'; +import { ScreenService } from '@cloudbeaver/core-routing'; -import { RouterService } from '../RouterService'; -import { ScreenService } from '../Screen/ScreenService'; import { AppScreen } from './AppScreen'; @injectable() @@ -19,18 +18,14 @@ export class AppScreenService { constructor( private screenService: ScreenService, - private routerService: RouterService, ) {} - navigateToRoot() { - this.routerService.router.navigate(AppScreenService.screenName); - } - register() { this.screenService.create({ name: AppScreenService.screenName, routes: [{ name: AppScreenService.screenName, path: '/' }], component: AppScreen, + root: true, }); } } diff --git a/webapp/packages/core-app/src/Body.tsx b/webapp/packages/core-app/src/Body.tsx index 93460c9ac0..073177fbca 100644 --- a/webapp/packages/core-app/src/Body.tsx +++ b/webapp/packages/core-app/src/Body.tsx @@ -12,10 +12,9 @@ import styled, { css } from 'reshadow'; import { useService } from '@cloudbeaver/core-di'; import { DialogsPortal } from '@cloudbeaver/core-dialogs'; import { Notifications } from '@cloudbeaver/core-notifications'; +import { ScreenService } from '@cloudbeaver/core-routing'; import { useStyles, useTheme } from '@cloudbeaver/core-theming'; -import { ScreenService } from './Screen/ScreenService'; - const bodyStyles = css` container { height: 100vh; diff --git a/webapp/packages/core-app/src/TopNavBar/AdministrationTopAppBarBootstrapService.ts b/webapp/packages/core-app/src/TopNavBar/AdministrationTopAppBarBootstrapService.ts new file mode 100644 index 0000000000..8fd70a5180 --- /dev/null +++ b/webapp/packages/core-app/src/TopNavBar/AdministrationTopAppBarBootstrapService.ts @@ -0,0 +1,28 @@ +/* + * cloudbeaver - Cloud Database Manager + * Copyright (C) 2020 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ + +import { AdministrationTopAppBarService } from '@cloudbeaver/core-administration'; +import { injectable, Bootstrap } from '@cloudbeaver/core-di'; + +import { Logo } from './Logo'; +import { SettingsMenu } from './SettingsMenu/SettingsMenu'; + +@injectable() +export class AdministrationTopAppBarBootstrapService extends Bootstrap { + + constructor(private administrationTopAppBarService: AdministrationTopAppBarService) { + super(); + } + + register(): void | Promise { + this.administrationTopAppBarService.placeholder.add(Logo, 0); + this.administrationTopAppBarService.placeholder.add(SettingsMenu, 4); + } + + load(): void | Promise {} +} diff --git a/webapp/packages/core-app/src/TopNavBar/SettingsMenu/SettingsMenuService.ts b/webapp/packages/core-app/src/TopNavBar/SettingsMenu/SettingsMenuService.ts index 0ea78d8d64..2ec83460fe 100644 --- a/webapp/packages/core-app/src/TopNavBar/SettingsMenu/SettingsMenuService.ts +++ b/webapp/packages/core-app/src/TopNavBar/SettingsMenu/SettingsMenuService.ts @@ -6,10 +6,12 @@ * you may not use this file except in compliance with the License. */ +import { EAdminPermission, AdministrationScreenService } from '@cloudbeaver/core-administration'; import { Bootstrap, injectable } from '@cloudbeaver/core-di'; import { IComputedMenuItemOptions, StaticMenu } from '@cloudbeaver/core-dialogs'; import { LocalizationService } from '@cloudbeaver/core-localization'; -import { ServerConfigResource } from '@cloudbeaver/core-root'; +import { ServerConfigResource, PermissionsService } from '@cloudbeaver/core-root'; +import { ScreenService } from '@cloudbeaver/core-routing'; import { ThemeService } from '@cloudbeaver/core-theming'; @injectable() @@ -23,7 +25,10 @@ export class SettingsMenuService extends Bootstrap { constructor( private localizationService: LocalizationService, private themeService: ThemeService, - private serverConfigResource: ServerConfigResource + private permissionsService: PermissionsService, + private serverConfigResource: ServerConfigResource, + private screenService: ScreenService, + private administrationScreenService: AdministrationScreenService ) { super(); } @@ -33,6 +38,7 @@ export class SettingsMenuService extends Bootstrap { } async load(): Promise { + this.addAdministration(); this.addThemes(); await this.addLocales(); } @@ -45,6 +51,30 @@ export class SettingsMenuService extends Bootstrap { this.menu.addMenuItem(panelId, options); } + private addAdministration() { + this.addMenuItem( + SettingsMenuService.settingsMenuToken, + { + id: 'administrationMenuEnter', + order: 0, + isHidden: () => !this.permissionsService.has(EAdminPermission.admin) + || this.screenService.isActive(AdministrationScreenService.screenName), + title: 'administration_menu_enter', + onClick: () => this.administrationScreenService.navigateToRoot(), + } + ); + this.addMenuItem( + SettingsMenuService.settingsMenuToken, + { + id: 'administrationMenuBack', + order: 0, + isHidden: () => !this.screenService.isActive(AdministrationScreenService.screenName), + title: 'administration_menu_back', + onClick: () => this.screenService.navigateToRoot(), + } + ); + } + private addThemes() { this.addMenuItem( SettingsMenuService.settingsMenuToken, diff --git a/webapp/packages/core-app/src/index.ts b/webapp/packages/core-app/src/index.ts index 1e522c3f08..d6b82f89fc 100644 --- a/webapp/packages/core-app/src/index.ts +++ b/webapp/packages/core-app/src/index.ts @@ -1,13 +1,11 @@ // Services -export * from './RouterService'; export * from './CoreSettingsService'; -export * from './Screen/IScreen'; -export * from './Screen/ScreenService'; export * from './AppScreen/AppScreenService'; export * from './TopNavBar/MainMenu/MainMenuService'; export * from './TopNavBar/SettingsMenu/SettingsMenuService'; export * from './TopNavBar/ConnectionSchemaManager/ConnectionSchemaManagerService'; export * from './TopNavBar/TopNavBarService'; +export * from './TopNavBar/AdministrationTopAppBarBootstrapService'; export * from './shared/NodesManager/ConnectionDialogsService'; export * from './shared/NodesManager/extensions/IObjectCatalogProvider'; export * from './shared/NodesManager/extensions/IObjectCatalogSetter'; diff --git a/webapp/packages/core-blocks/src/Placeholder/PlaceholderContainer.ts b/webapp/packages/core-blocks/src/Placeholder/PlaceholderContainer.ts index fefc77e802..dca4efab2d 100644 --- a/webapp/packages/core-blocks/src/Placeholder/PlaceholderContainer.ts +++ b/webapp/packages/core-blocks/src/Placeholder/PlaceholderContainer.ts @@ -36,7 +36,7 @@ export class PlaceholderContainer { order, }; - if (!order) { + if (order === undefined) { this.placeholders.push(placeholder); return; } diff --git a/webapp/packages/core-bootstrap/package.json b/webapp/packages/core-bootstrap/package.json index 2efa4dea51..9464583915 100644 --- a/webapp/packages/core-bootstrap/package.json +++ b/webapp/packages/core-bootstrap/package.json @@ -14,6 +14,7 @@ "lint-fix": "eslint ./src/ --ext .ts,.tsx --fix" }, "dependencies": { + "@cloudbeaver/core-administration": "^0.1.0", "@cloudbeaver/core-app": "^0.1.0", "@cloudbeaver/core-blocks": "^0.1.0", "@cloudbeaver/core-connections": "^0.1.0", @@ -26,6 +27,7 @@ "@cloudbeaver/core-plugin": "^0.1.0", "@cloudbeaver/core-product": "^0.1.0", "@cloudbeaver/core-root": "^0.1.0", + "@cloudbeaver/core-routing": "^0.1.0", "@cloudbeaver/core-sdk": "^0.1.0", "@cloudbeaver/core-settings": "^0.1.0", "@cloudbeaver/core-theming": "^0.1.0", diff --git a/webapp/packages/core-bootstrap/src/AppBootstrap.ts b/webapp/packages/core-bootstrap/src/AppBootstrap.ts index a2c42d4e0c..c15fb0a149 100644 --- a/webapp/packages/core-bootstrap/src/AppBootstrap.ts +++ b/webapp/packages/core-bootstrap/src/AppBootstrap.ts @@ -12,12 +12,12 @@ import { NavigationTreeContextMenuService, LogViewerMenuService, ConnectionSchemaManagerService, - RouterService, AppScreenService, } from '@cloudbeaver/core-app'; import { injectable } from '@cloudbeaver/core-di'; import { SessionExpireService } from '@cloudbeaver/core-dialogs'; import { ExceptionsCatcherService } from '@cloudbeaver/core-events'; +import { RouterService } from '@cloudbeaver/core-routing'; import { ThemeService } from '@cloudbeaver/core-theming'; /** diff --git a/webapp/packages/core-bootstrap/src/manifest.ts b/webapp/packages/core-bootstrap/src/manifest.ts index c28ef6fe43..d74b2985a0 100644 --- a/webapp/packages/core-bootstrap/src/manifest.ts +++ b/webapp/packages/core-bootstrap/src/manifest.ts @@ -6,6 +6,12 @@ * you may not use this file except in compliance with the License. */ +import { + AdministrationLocaleService, + AdministrationTopAppBarService, + AdministrationScreenService, + AdministrationItemService +} from '@cloudbeaver/core-administration'; import { ConnectionDialogsService, MainMenuService, NavigationService, NavigationTreeService, @@ -13,7 +19,7 @@ import { ConnectionSchemaManagerService, NavigationTabsService, NavigationTreeContextMenuService, SettingsMenuService, LogViewerService, LogViewerMenuService, TopNavService, - RouterService, ScreenService, AppScreenService, CoreSettingsService + AppScreenService, CoreSettingsService, AdministrationTopAppBarBootstrapService } from '@cloudbeaver/core-app'; import { ConnectionsManagerService, @@ -39,6 +45,7 @@ import { PermissionsResource, SessionResource } from '@cloudbeaver/core-root'; +import { RouterService, ScreenService } from '@cloudbeaver/core-routing'; import { EnvironmentService, GraphQLService } from '@cloudbeaver/core-sdk'; import { LocalStorageSaveService, SettingsService } from '@cloudbeaver/core-settings'; import { ThemeService } from '@cloudbeaver/core-theming'; @@ -51,6 +58,11 @@ export const coreManifest: PluginManifest = { depends: [], providers: [ + AdministrationLocaleService, + AdministrationTopAppBarService, + AdministrationScreenService, + AdministrationItemService, + AdministrationTopAppBarBootstrapService, ActiveViewService, ProductSettingsService, ProductManagerService, diff --git a/webapp/packages/core-routing/.gitignore b/webapp/packages/core-routing/.gitignore new file mode 100644 index 0000000000..99902db863 --- /dev/null +++ b/webapp/packages/core-routing/.gitignore @@ -0,0 +1,21 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/lib + +# misc +.DS_Store +.env* + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/webapp/packages/core-routing/package.json b/webapp/packages/core-routing/package.json new file mode 100644 index 0000000000..8c6727df74 --- /dev/null +++ b/webapp/packages/core-routing/package.json @@ -0,0 +1,25 @@ +{ + "name": "@cloudbeaver/core-routing", + "sideEffects": false, + "version": "0.1.0", + "description": "", + "license": "Apache-2.0", + "main": "lib/index.js", + "module": "lib/index.js", + "scripts": { + "prebuild": "rimraf lib/*", + "build": "webpack --config ../../configs/webpack.plugin.config", + "postbuild": "tsc", + "lint": "eslint ./src/ --ext .ts,.tsx", + "lint-fix": "eslint ./src/ --ext .ts,.tsx --fix" + }, + "dependencies": { + "router5": "^8.x.x", + "router5-plugin-browser": "^8.x.x" + }, + "peerDependencies": { + "@cloudbeaver/core-di": "^0.1.0", + "mobx": "^5.x.x", + "mobx-react": "^6.x.x" + } +} \ No newline at end of file diff --git a/webapp/packages/core-app/src/RouterService.ts b/webapp/packages/core-routing/src/RouterService.ts similarity index 100% rename from webapp/packages/core-app/src/RouterService.ts rename to webapp/packages/core-routing/src/RouterService.ts diff --git a/webapp/packages/core-app/src/Screen/IScreen.ts b/webapp/packages/core-routing/src/Screen/IScreen.ts similarity index 96% rename from webapp/packages/core-app/src/Screen/IScreen.ts rename to webapp/packages/core-routing/src/Screen/IScreen.ts index b75866d468..796b4b62ea 100644 --- a/webapp/packages/core-app/src/Screen/IScreen.ts +++ b/webapp/packages/core-routing/src/Screen/IScreen.ts @@ -14,6 +14,7 @@ export interface IScreen { name: string; routes: ScreenRoute[]; component: ScreenComponent; + root?: boolean; onActivate?: () => void | Promise; onDeactivate?: () => void | Promise; } diff --git a/webapp/packages/core-app/src/Screen/ScreenService.ts b/webapp/packages/core-routing/src/Screen/ScreenService.ts similarity index 90% rename from webapp/packages/core-app/src/Screen/ScreenService.ts rename to webapp/packages/core-routing/src/Screen/ScreenService.ts index bc106a0ed3..dab5883b4e 100644 --- a/webapp/packages/core-app/src/Screen/ScreenService.ts +++ b/webapp/packages/core-routing/src/Screen/ScreenService.ts @@ -29,6 +29,15 @@ export class ScreenService { this.routerService.subscribe(this.onRouteChange.bind(this)); } + navigateToRoot() { + const screen = Array.from(this.screens.values()) + .find(screen => screen.root); + + if (screen) { + this.routerService.router.navigate(screen.name); + } + } + create(screen: IScreen) { if (this.screens.has(screen.name)) { return; diff --git a/webapp/packages/core-routing/src/index.ts b/webapp/packages/core-routing/src/index.ts new file mode 100644 index 0000000000..96f1ea4bfe --- /dev/null +++ b/webapp/packages/core-routing/src/index.ts @@ -0,0 +1,3 @@ +export * from './Screen/IScreen'; +export * from './Screen/ScreenService'; +export * from './RouterService'; diff --git a/webapp/packages/core-routing/tsconfig.json b/webapp/packages/core-routing/tsconfig.json new file mode 100644 index 0000000000..b0b5e9edfa --- /dev/null +++ b/webapp/packages/core-routing/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "lib" + }, + "exclude": [ + "node_modules" + ], + "include": ["src/**/*"] +} diff --git a/webapp/packages/core-sdk/src/queries/connections/administration/createConnectionConfiguration.gql b/webapp/packages/core-sdk/src/queries/connections/administration/createConnectionConfiguration.gql new file mode 100644 index 0000000000..dcff3e391d --- /dev/null +++ b/webapp/packages/core-sdk/src/queries/connections/administration/createConnectionConfiguration.gql @@ -0,0 +1,23 @@ +query createConnectionConfiguration($config: ConnectionConfig!) { + connection: createConnectionConfiguration(config: $config) { + id + name + description + driverId + + template + connected + readOnly + + host + port + databaseName + url + properties + + features + + authNeeded + authModel + } +} diff --git a/webapp/packages/core-sdk/src/queries/connections/administration/deleteConnectionConfiguration.gql b/webapp/packages/core-sdk/src/queries/connections/administration/deleteConnectionConfiguration.gql new file mode 100644 index 0000000000..862be6c25f --- /dev/null +++ b/webapp/packages/core-sdk/src/queries/connections/administration/deleteConnectionConfiguration.gql @@ -0,0 +1,3 @@ +query deleteConnectionConfiguration($id: ID!) { + deleteConnectionConfiguration(id: $id) +} \ No newline at end of file diff --git a/webapp/packages/core-sdk/src/queries/connections/administration/getConnections.gql b/webapp/packages/core-sdk/src/queries/connections/administration/getConnections.gql new file mode 100644 index 0000000000..04a964a306 --- /dev/null +++ b/webapp/packages/core-sdk/src/queries/connections/administration/getConnections.gql @@ -0,0 +1,23 @@ +query getConnections { + connections: allConnections { + id + name + description + driverId + + template + connected + readOnly + + host + port + databaseName + url + properties + + features + + authNeeded + authModel + } +} \ No newline at end of file diff --git a/webapp/packages/core-sdk/src/sdk.ts b/webapp/packages/core-sdk/src/sdk.ts index 6e157c4d9a..debb02bc9a 100644 --- a/webapp/packages/core-sdk/src/sdk.ts +++ b/webapp/packages/core-sdk/src/sdk.ts @@ -57,8 +57,6 @@ export type Query = { sqlDialectInfo?: Maybe; sqlListContexts?: Maybe>>; templateConnections: Array; - /** @deprecated Field no longer supported */ - templateDataSources: Array; updateConnectionConfiguration: ConnectionInfo; }; @@ -468,7 +466,11 @@ export type ConnectionInfo = { driverId: Scalars['ID']; name: Scalars['String']; description?: Maybe; - properties?: Maybe; + host?: Maybe; + port?: Maybe; + databaseName?: Maybe; + url?: Maybe; + properties?: Maybe; template: Scalars['Boolean']; connected: Scalars['Boolean']; provided: Scalars['Boolean']; @@ -484,18 +486,6 @@ export type ConnectionInfo = { navigatorSettings: NavigatorSettings; }; -export type DataSourceInfo = { - id: Scalars['ID']; - driverId: Scalars['ID']; - name: Scalars['String']; - description?: Maybe; - host?: Maybe; - server?: Maybe; - port?: Maybe; - url?: Maybe; - properties?: Maybe; -}; - export type ConnectionConfig = { name?: Maybe; description?: Maybe; @@ -656,6 +646,7 @@ export type SqlResultColumn = { scale?: Maybe; precision?: Maybe; readOnly: Scalars['Boolean']; + readOnlyStatus?: Maybe; }; export type SqlResultSet = { @@ -831,6 +822,22 @@ export type SetUserCredentialsQueryVariables = Exact<{ export type SetUserCredentialsQuery = Pick; +export type CreateConnectionConfigurationQueryVariables = Exact<{ + config: ConnectionConfig; +}>; + +export type CreateConnectionConfigurationQuery = { connection: Pick }; + +export type DeleteConnectionConfigurationQueryVariables = Exact<{ + id: Scalars['ID']; +}>; + +export type DeleteConnectionConfigurationQuery = Pick; + +export type GetConnectionsQueryVariables = Exact<{ [key: string]: never }>; + +export type GetConnectionsQuery = { connections: Array> }; + export type CloseConnectionMutationVariables = Exact<{ id: Scalars['ID']; }>; @@ -1289,6 +1296,53 @@ export const SetUserCredentialsDocument = ` setUserCredentials(userId: $userId, providerId: $providerId, credentials: $credentials) } `; +export const CreateConnectionConfigurationDocument = ` + query createConnectionConfiguration($config: ConnectionConfig!) { + connection: createConnectionConfiguration(config: $config) { + id + name + description + driverId + template + connected + readOnly + host + port + databaseName + url + properties + features + authNeeded + authModel + } +} + `; +export const DeleteConnectionConfigurationDocument = ` + query deleteConnectionConfiguration($id: ID!) { + deleteConnectionConfiguration(id: $id) +} + `; +export const GetConnectionsDocument = ` + query getConnections { + connections: allConnections { + id + name + description + driverId + template + connected + readOnly + host + port + databaseName + url + properties + features + authNeeded + authModel + } +} + `; export const CloseConnectionDocument = ` mutation closeConnection($id: ID!) { connection: closeConnection(id: $id) { @@ -1958,6 +2012,15 @@ export function getSdk(client: GraphQLClient, withWrapper: SdkFunctionWrapper = setUserCredentials(variables: SetUserCredentialsQueryVariables): Promise { return withWrapper(() => client.request(SetUserCredentialsDocument, variables)); }, + createConnectionConfiguration(variables: CreateConnectionConfigurationQueryVariables): Promise { + return withWrapper(() => client.request(CreateConnectionConfigurationDocument, variables)); + }, + deleteConnectionConfiguration(variables: DeleteConnectionConfigurationQueryVariables): Promise { + return withWrapper(() => client.request(DeleteConnectionConfigurationDocument, variables)); + }, + getConnections(variables?: GetConnectionsQueryVariables): Promise { + return withWrapper(() => client.request(GetConnectionsDocument, variables)); + }, closeConnection(variables: CloseConnectionMutationVariables): Promise { return withWrapper(() => client.request(CloseConnectionDocument, variables)); }, diff --git a/webapp/packages/plugin-administration/src/AdministrationMenuService.ts b/webapp/packages/plugin-administration/src/AdministrationMenuService.ts deleted file mode 100644 index 47dd76532c..0000000000 --- a/webapp/packages/plugin-administration/src/AdministrationMenuService.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * cloudbeaver - Cloud Database Manager - * Copyright (C) 2020 DBeaver Corp and others - * - * Licensed under the Apache License, Version 2.0. - * you may not use this file except in compliance with the License. - */ - -import { SettingsMenuService, ScreenService, AppScreenService } from '@cloudbeaver/core-app'; -import { injectable, Bootstrap } from '@cloudbeaver/core-di'; -import { PermissionsService } from '@cloudbeaver/core-root'; - -import { AdministrationScreenService } from './AdministrationScreen/AdministrationScreenService'; -import { EAdminPermission } from './EAdminPermission'; - -@injectable() -export class AdministrationMenuService extends Bootstrap { - constructor( - private settingsMenuService: SettingsMenuService, - private permissionsService: PermissionsService, - private screenService: ScreenService, - private administrationScreenService: AdministrationScreenService, - private appScreenService: AppScreenService - ) { - super(); - } - - register() { - this.settingsMenuService.addMenuItem( - SettingsMenuService.settingsMenuToken, - { - id: 'administrationMenuEnter', - order: 0, - isHidden: () => !this.permissionsService.has(EAdminPermission.admin) - || this.screenService.isActive(AdministrationScreenService.screenName), - title: 'administration_menu_enter', - onClick: () => this.administrationScreenService.navigateToRoot(), - } - ); - this.settingsMenuService.addMenuItem( - SettingsMenuService.settingsMenuToken, - { - id: 'administrationMenuBack', - order: 0, - isHidden: () => !this.screenService.isActive(AdministrationScreenService.screenName), - title: 'administration_menu_back', - onClick: () => this.appScreenService.navigateToRoot(), - } - ); - } - - load(): void | Promise { } -} diff --git a/webapp/packages/plugin-administration/src/manifest.ts b/webapp/packages/plugin-administration/src/manifest.ts deleted file mode 100644 index e330e79c45..0000000000 --- a/webapp/packages/plugin-administration/src/manifest.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * cloudbeaver - Cloud Database Manager - * Copyright (C) 2020 DBeaver Corp and others - * - * Licensed under the Apache License, Version 2.0. - * you may not use this file except in compliance with the License. - */ - -import { IServiceInjector, PluginManifest } from '@cloudbeaver/core-di'; - -import { AdministrationItemService } from './AdministrationItem/AdministrationItemService'; -import { AdministrationLocaleService } from './AdministrationLocaleService'; -import { AdministrationMenuService } from './AdministrationMenuService'; -import { AdministrationScreenService } from './AdministrationScreen/AdministrationScreenService'; -import { AdministrationTopAppBarService } from './AdministrationScreen/AdministrationTopAppBar/AdministrationTopAppBarService'; - -export const manifest: PluginManifest = { - info: { - name: 'Administration', - }, - - providers: [ - AdministrationMenuService, - AdministrationScreenService, - AdministrationTopAppBarService, - AdministrationItemService, - AdministrationLocaleService, - ], - - async initialize(services: IServiceInjector) { - }, -}; diff --git a/webapp/packages/plugin-authentication/package.json b/webapp/packages/plugin-authentication/package.json index 85b2e5fae3..2dd0e1747f 100644 --- a/webapp/packages/plugin-authentication/package.json +++ b/webapp/packages/plugin-authentication/package.json @@ -14,7 +14,7 @@ "lint-fix": "eslint ./src/ --ext .ts,.tsx --fix" }, "peerDependencies": { - "@cloudbeaver/plugin-administration": "^0.1.0", + "@cloudbeaver/core-administration": "^0.1.0", "@cloudbeaver/core-app": "^0.1.0", "@cloudbeaver/core-blocks": "^0.1.0", "@cloudbeaver/core-di": "^0.1.0", diff --git a/webapp/packages/plugin-authentication/src/Administration/AuthAdministrationService.ts b/webapp/packages/plugin-authentication/src/Administration/AuthAdministrationService.ts index f8727a6000..1de88850ef 100644 --- a/webapp/packages/plugin-authentication/src/Administration/AuthAdministrationService.ts +++ b/webapp/packages/plugin-authentication/src/Administration/AuthAdministrationService.ts @@ -6,8 +6,8 @@ * you may not use this file except in compliance with the License. */ +import { AdministrationItemService } from '@cloudbeaver/core-administration'; import { injectable, Bootstrap } from '@cloudbeaver/core-di'; -import { AdministrationItemService } from '@cloudbeaver/plugin-administration'; @injectable() export class AuthAdministrationService extends Bootstrap { diff --git a/webapp/packages/plugin-authentication/src/Administration/Users/CreateUser/CreateUserController.ts b/webapp/packages/plugin-authentication/src/Administration/Users/CreateUser/CreateUserController.ts index c2d67e7b00..b177936b21 100644 --- a/webapp/packages/plugin-authentication/src/Administration/Users/CreateUser/CreateUserController.ts +++ b/webapp/packages/plugin-authentication/src/Administration/Users/CreateUser/CreateUserController.ts @@ -8,12 +8,12 @@ import { observable } from 'mobx'; +import { AdministrationScreenService } from '@cloudbeaver/core-administration'; import { injectable } from '@cloudbeaver/core-di'; import { CommonDialogService } from '@cloudbeaver/core-dialogs'; import { NotificationService } from '@cloudbeaver/core-events'; import { ErrorDetailsDialog } from '@cloudbeaver/core-notifications'; import { GQLErrorCatcher } from '@cloudbeaver/core-sdk'; -import { AdministrationScreenService } from '@cloudbeaver/plugin-administration'; import { UsersManagerService } from '../../UsersManagerService'; diff --git a/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministration.tsx b/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministration.tsx index d4e1fea970..de4ee713e2 100644 --- a/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministration.tsx +++ b/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministration.tsx @@ -9,10 +9,10 @@ import { observer } from 'mobx-react'; import styled, { css } from 'reshadow'; +import { AdministrationTools } from '@cloudbeaver/core-administration'; import { Loader, IconButton } from '@cloudbeaver/core-blocks'; import { useController } from '@cloudbeaver/core-di'; import { useStyles, composes } from '@cloudbeaver/core-theming'; -import { AdministrationTools } from '@cloudbeaver/plugin-administration'; import { UsersAdministrationController } from './UsersAdministrationController'; import { UsersTable } from './UsersTable/UsersTable'; diff --git a/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministrationService.ts b/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministrationService.ts index 4fdff2eb9b..715a2a46a0 100644 --- a/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministrationService.ts +++ b/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministrationService.ts @@ -6,9 +6,9 @@ * you may not use this file except in compliance with the License. */ +import { AdministrationItemService, AdministrationScreenService } from '@cloudbeaver/core-administration'; import { injectable, Bootstrap } from '@cloudbeaver/core-di'; import { NotificationService } from '@cloudbeaver/core-events'; -import { AdministrationItemService, AdministrationScreenService } from '@cloudbeaver/plugin-administration'; import { UsersManagerService } from '../UsersManagerService'; import { CreateUser } from './CreateUser/CreateUser'; @@ -29,6 +29,7 @@ export class UsersAdministrationService extends Bootstrap { register() { this.administrationItemService.create({ name: 'users', + order: 1, sub: [ { name: 'create', diff --git a/webapp/packages/plugin-authentication/src/Administration/Users/UsersDrawerItem.tsx b/webapp/packages/plugin-authentication/src/Administration/Users/UsersDrawerItem.tsx index 862e5cd0e1..e1a1093715 100644 --- a/webapp/packages/plugin-authentication/src/Administration/Users/UsersDrawerItem.tsx +++ b/webapp/packages/plugin-authentication/src/Administration/Users/UsersDrawerItem.tsx @@ -8,10 +8,10 @@ import styled from 'reshadow'; +import { AdministrationItemDrawerProps } from '@cloudbeaver/core-administration'; import { Tab, TabTitle, TabIcon } from '@cloudbeaver/core-blocks'; import { Translate } from '@cloudbeaver/core-localization'; import { useStyles } from '@cloudbeaver/core-theming'; -import { AdministrationItemDrawerProps } from '@cloudbeaver/plugin-administration'; export function UsersDrawerItem({ item, onSelect, style }: AdministrationItemDrawerProps) { return styled(useStyles(...style))( diff --git a/webapp/packages/plugin-authentication/src/AuthMenuService.ts b/webapp/packages/plugin-authentication/src/AuthMenuService.ts index b9f4a66525..88752ba5e1 100644 --- a/webapp/packages/plugin-authentication/src/AuthMenuService.ts +++ b/webapp/packages/plugin-authentication/src/AuthMenuService.ts @@ -6,11 +6,11 @@ * you may not use this file except in compliance with the License. */ +import { AdministrationTopAppBarService } from '@cloudbeaver/core-administration'; import { SettingsMenuService, TopNavService } from '@cloudbeaver/core-app'; import { injectable } from '@cloudbeaver/core-di'; import { NotificationService } from '@cloudbeaver/core-events'; import { ServerService } from '@cloudbeaver/core-root'; -import { AdministrationTopAppBarService } from '@cloudbeaver/plugin-administration'; import { AuthenticationService } from './AuthenticationService'; import { AuthInfoService } from './AuthInfoService'; diff --git a/webapp/packages/product-default/package.json b/webapp/packages/product-default/package.json index 85f5a34c79..f281f20484 100644 --- a/webapp/packages/product-default/package.json +++ b/webapp/packages/product-default/package.json @@ -19,7 +19,6 @@ "@cloudbeaver/core-bootstrap": "0.1.0", "@cloudbeaver/core-di": "0.1.0", "@cloudbeaver/core-product": "0.1.0", - "@cloudbeaver/plugin-administration": "0.1.0", "@cloudbeaver/plugin-authentication": "0.1.0", "@cloudbeaver/plugin-connection-custom": "0.1.0", "@cloudbeaver/plugin-connection-template": "0.1.0", diff --git a/webapp/packages/product-default/src/index.ts b/webapp/packages/product-default/src/index.ts index 5f3ac497d4..8957038eca 100644 --- a/webapp/packages/product-default/src/index.ts +++ b/webapp/packages/product-default/src/index.ts @@ -3,7 +3,6 @@ import 'reflect-metadata'; import core, { bootstrap } from '@cloudbeaver/core-bootstrap'; -import administration from '@cloudbeaver/plugin-administration'; import spreadsheet from '@cloudbeaver/plugin-data-spreadsheet'; import authentication from '@cloudbeaver/plugin-authentication'; import dataExport from '@cloudbeaver/plugin-data-export'; @@ -17,7 +16,6 @@ import { defaultProductManifest } from './manifest'; const PLUGINS = [ core, - administration, spreadsheet, authentication, connectionCustom, From ca19142bd3d1e0a4de0c0257562b9e08860120c4 Mon Sep 17 00:00:00 2001 From: Wroud Date: Fri, 7 Aug 2020 19:07:23 +0300 Subject: [PATCH 2/2] fix(core-app): logo navigation --- webapp/packages/core-app/src/TopNavBar/Logo.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/webapp/packages/core-app/src/TopNavBar/Logo.tsx b/webapp/packages/core-app/src/TopNavBar/Logo.tsx index 79653625c9..c40053b3c5 100644 --- a/webapp/packages/core-app/src/TopNavBar/Logo.tsx +++ b/webapp/packages/core-app/src/TopNavBar/Logo.tsx @@ -11,16 +11,15 @@ import { observer } from 'mobx-react'; import { AppLogo } from '@cloudbeaver/core-blocks'; import { useService } from '@cloudbeaver/core-di'; import { ServerService } from '@cloudbeaver/core-root'; - -import { AppScreenService } from '../AppScreen/AppScreenService'; +import { ScreenService } from '@cloudbeaver/core-routing'; declare const version: string; // declared in webpack DefinePlugin // todo move to enviroment? export const Logo = observer(function Logo() { const serverService = useService(ServerService); - const appScreenService = useService(AppScreenService); + const screenService = useService(ScreenService); const title = `Frontend: ${version}\nBackend: ${serverService.config.data?.version}`; - return appScreenService.navigateToRoot()}/>; + return screenService.navigateToRoot()}/>; });