From 218259fc7ee3a828b44dcd6a50431736cf9d7924 Mon Sep 17 00:00:00 2001 From: Oscar Hinton Date: Wed, 21 Jul 2021 19:53:33 +0200 Subject: [PATCH] [Provider] Add provider link in navbar (#1091) --- .../app/providers/providers-routing.module.ts | 6 +++ src/app/layouts/navbar.component.html | 8 ++++ src/app/layouts/navbar.component.ts | 13 +++++- src/app/providers/providers.component.html | 46 ++++++++++++++++--- src/app/providers/providers.component.ts | 8 ++-- src/app/vault/vault.component.html | 2 +- 6 files changed, 71 insertions(+), 12 deletions(-) diff --git a/bitwarden_license/src/app/providers/providers-routing.module.ts b/bitwarden_license/src/app/providers/providers-routing.module.ts index f6c4c6d637..b7dfbd7ed9 100644 --- a/bitwarden_license/src/app/providers/providers-routing.module.ts +++ b/bitwarden_license/src/app/providers/providers-routing.module.ts @@ -18,11 +18,17 @@ import { SetupComponent } from './setup/setup.component'; import { FrontendLayoutComponent } from 'src/app/layouts/frontend-layout.component'; +import { ProvidersComponent } from 'src/app/providers/providers.component'; import { ProviderGuardService } from './services/provider-guard.service'; import { ProviderTypeGuardService } from './services/provider-type-guard.service'; import { AccountComponent } from './settings/account.component'; const routes: Routes = [ + { + path: '', + canActivate: [AuthGuardService], + component: ProvidersComponent, + }, { path: '', component: FrontendLayoutComponent, diff --git a/src/app/layouts/navbar.component.html b/src/app/layouts/navbar.component.html index b28897c93d..bdc5df36f3 100644 --- a/src/app/layouts/navbar.component.html +++ b/src/app/layouts/navbar.component.html @@ -11,6 +11,14 @@ + + + + diff --git a/src/app/layouts/navbar.component.ts b/src/app/layouts/navbar.component.ts index 255f6397d7..ec1f72d4d6 100644 --- a/src/app/layouts/navbar.component.ts +++ b/src/app/layouts/navbar.component.ts @@ -5,7 +5,11 @@ import { import { MessagingService } from 'jslib-common/abstractions/messaging.service'; import { PlatformUtilsService } from 'jslib-common/abstractions/platformUtils.service'; +import { SyncService } from 'jslib-common/abstractions/sync.service'; import { TokenService } from 'jslib-common/abstractions/token.service'; +import { UserService } from 'jslib-common/abstractions/user.service'; + +import { Provider } from 'jslib-common/models/domain/provider'; @Component({ selector: 'app-navbar', @@ -15,9 +19,10 @@ export class NavbarComponent implements OnInit { selfHosted = false; name: string; email: string; + providers: Provider[] = []; constructor(private messagingService: MessagingService, private platformUtilsService: PlatformUtilsService, - private tokenService: TokenService) { + private tokenService: TokenService, private userService: UserService, private syncService: SyncService) { this.selfHosted = this.platformUtilsService.isSelfHost(); } @@ -27,6 +32,12 @@ export class NavbarComponent implements OnInit { if (this.name == null || this.name.trim() === '') { this.name = this.email; } + + // Ensure provides are loaded + if (await this.syncService.getLastSync() == null) { + await this.syncService.fullSync(false); + } + this.providers = await this.userService.getAllProviders(); } lock() { diff --git a/src/app/providers/providers.component.html b/src/app/providers/providers.component.html index 6ff84f4c8c..3d084fa636 100644 --- a/src/app/providers/providers.component.html +++ b/src/app/providers/providers.component.html @@ -1,20 +1,52 @@ - +

{{'loading' | i18n}}

+ + +
+ +

+ + {{'loading' | i18n}} +

+ + + + + + + + +
+ + + {{p.name}} + + + {{'providerIsDisabled' | i18n}} + +
+
+
+ +
diff --git a/src/app/providers/providers.component.ts b/src/app/providers/providers.component.ts index 18c8b2a68b..3a08ca30b3 100644 --- a/src/app/providers/providers.component.ts +++ b/src/app/providers/providers.component.ts @@ -1,10 +1,10 @@ import { Component, + Input, OnInit, } from '@angular/core'; import { I18nService } from 'jslib-common/abstractions/i18n.service'; -import { SyncService } from 'jslib-common/abstractions/sync.service'; import { UserService } from 'jslib-common/abstractions/user.service'; import { Provider } from 'jslib-common/models/domain/provider'; @@ -16,14 +16,16 @@ import { Utils } from 'jslib-common/misc/utils'; templateUrl: 'providers.component.html', }) export class ProvidersComponent implements OnInit { + @Input() vault = false; + providers: Provider[]; loaded: boolean = false; actionPromise: Promise; - constructor(private userService: UserService, private i18nService: I18nService, private syncService: SyncService) { } + constructor(private userService: UserService, private i18nService: I18nService) { } async ngOnInit() { - await this.syncService.fullSync(false); + document.body.classList.remove('layout_frontend'); await this.load(); } diff --git a/src/app/vault/vault.component.html b/src/app/vault/vault.component.html index 4ed97a6aae..8f919fa80d 100644 --- a/src/app/vault/vault.component.html +++ b/src/app/vault/vault.component.html @@ -94,7 +94,7 @@
- +