[SECARSP-144] Migrated to Nebular r6
authorArtem Motchanyi <a.motchanyi@samsung.com>
Tue, 6 Mar 2018 14:15:18 +0000 (16:15 +0200)
committerDmytro Lomtiev <d.lomtev@samsung.com>
Fri, 16 Mar 2018 14:18:36 +0000 (16:18 +0200)
Change-Id: Idbc5830f828e9729f63a61911ecc6ddefe548e78

dashboard/package-lock.json
dashboard/package.json
dashboard/src/app/@core/auth/auth.service.ts
dashboard/src/app/@theme/components/header/header.component.html
dashboard/src/app/@theme/components/header/header.component.scss
dashboard/src/app/@theme/components/header/header.component.ts
dashboard/src/app/@theme/components/index.ts
dashboard/src/app/@theme/components/logout/logout.component.ts [new file with mode: 0644]
dashboard/src/app/@theme/theme.module.ts
dashboard/src/app/app-routing.module.ts
dashboard/src/app/app.module.ts

index cc185ab..7e0a7b1 100644 (file)
       }
     },
     "@nebular/auth": {
-      "version": "2.0.0-rc.4",
-      "resolved": "https://registry.npmjs.org/@nebular/auth/-/auth-2.0.0-rc.4.tgz",
-      "integrity": "sha512-+2/qedeNkLHt1tKjQ57LUDZYOJoyjDRlIipQ+S7Hj8k8aCpLW6S8tuUvtlcobVn2M7+Cn1vj3CYGaNYCgrz2SA=="
+      "version": "2.0.0-rc.6",
+      "resolved": "https://registry.npmjs.org/@nebular/auth/-/auth-2.0.0-rc.6.tgz",
+      "integrity": "sha512-DRdU1xcTO1lDTBFZuy2XJKQjpatCp+nimaBtxCfX8Pel+FpKMF6IITuRpPF5sfPYTYPo2F1Tr3LY0b3LEOuBNA=="
     },
     "@nebular/theme": {
-      "version": "2.0.0-rc.4",
-      "resolved": "https://registry.npmjs.org/@nebular/theme/-/theme-2.0.0-rc.4.tgz",
-      "integrity": "sha512-3IwPdk8Y/XJENx+zYmzHgcVJSqGmLLYXqoHV7jSZs2BMgRhsWmmDNYti1h6Gybw/RlieygwBuEh2aX6Qvh50bA=="
+      "version": "2.0.0-rc.6",
+      "resolved": "https://registry.npmjs.org/@nebular/theme/-/theme-2.0.0-rc.6.tgz",
+      "integrity": "sha512-lhnm9bZTNL/L1APyRwC7KVBLY5oPEUsVLFiMdawrBELWNLgLrTwr9+o2GexiBSBbcz3zkTraWhWNRUfdUqMi2Q=="
     },
     "@ng-bootstrap/ng-bootstrap": {
       "version": "1.0.0-beta.8",
index 15221ca..58cc38e 100644 (file)
@@ -32,8 +32,8 @@
     "@angular/platform-browser": "~5.2.6",
     "@angular/platform-browser-dynamic": "~5.2.6",
     "@angular/router": "~5.2.6",
-    "@nebular/auth": "2.0.0-rc.4",
-    "@nebular/theme": "2.0.0-rc.4",
+    "@nebular/auth": "2.0.0-rc.6",
+    "@nebular/theme": "2.0.0-rc.6",
     "@ng-bootstrap/ng-bootstrap": "1.0.0-beta.8",
     "bootstrap": "4.0.0-beta.2",
     "classlist.js": "1.1.20150312",
index 7c8a374..92c696b 100644 (file)
@@ -1,6 +1,6 @@
 import { Injectable } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
-import { NbAuthService, NbAuthSimpleToken, NbAuthJWTToken, NbTokenService } from '@nebular/auth';
+import { NbAuthService, NbAuthToken, NbAuthJWTToken, NbTokenService } from '@nebular/auth';
 import { SERVER_URL } from '../../../../config';
 import { Observable } from 'rxjs/Observable';
 import { tap } from 'rxjs/operators';
@@ -8,14 +8,14 @@ import { tap } from 'rxjs/operators';
 @Injectable()
 export class AuthService {
   private logoutUrl = SERVER_URL + '/auth/logout';
-  private token: NbAuthJWTToken;
+  private token: NbAuthToken;
 
   constructor(
     private nbAuthService: NbAuthService,
     private http: HttpClient,
     private nbTokenService: NbTokenService) {
     this.onTokenChange()
-      .subscribe((token: NbAuthJWTToken) => {
+      .subscribe((token: NbAuthToken) => {
         if (token) {
           this.token = token;
         }
@@ -23,21 +23,19 @@ export class AuthService {
   }
 
   logout(): Observable<any> {
-    this.nbTokenService.clear().pipe();
-
     return this.http.delete<any>(this.logoutUrl).pipe(
       tap(
-        ok => console.info(`logged out`),
-        error => console.error(`logout error`),
+        ok => this.nbTokenService.clear().pipe(),
+        error => this.nbTokenService.clear().pipe(),
       ),
     );
   }
 
-  onTokenChange(): Observable<NbAuthSimpleToken> {
+  onTokenChange(): Observable<NbAuthToken> {
     return this.nbAuthService.onTokenChange();
   }
 
   getToken(): NbAuthJWTToken {
-    return this.token;
+    return this.token as NbAuthJWTToken;
   }
 }
index c33f226..50cf5c8 100644 (file)
@@ -13,7 +13,7 @@
   [class.right]="position === 'normal'"
   [class.left]="position === 'inverse'">
   <nb-action>
-    <nb-user [menu]="userMenu" [name]="user?.fullName" [picture]="user?.picture" (menuClick)="menuItemClick($event)"></nb-user>
+    <nb-user [nbContextMenu]="userMenu" [name]="user?.fullName" [picture]="user?.picture"></nb-user>
   </nb-action>
   <nb-action class="control-item" icon="nb-notifications"></nb-action>
   <nb-action class="control-item">
index d9a1502..d1a5bef 100644 (file)
@@ -87,7 +87,6 @@
   }
 
   @include media-breakpoint-down(sm) {
-
     nb-user /deep/ .user-name {
       display: none;
     }
       display: none;
     }
   }
+
+  nb-user:hover {
+      cursor: pointer;
+  }
 }
index d2bb173..b76cd4c 100644 (file)
@@ -1,11 +1,8 @@
 import { Component, Input, OnInit } from '@angular/core';
 
 import { NbMenuService, NbSidebarService } from '@nebular/theme';
-import { UserService } from '../../../@core/data/users.service';
 import { AnalyticsService } from '../../../@core/utils/analytics.service';
 import { AuthService } from '../../../@core/auth';
-import { Router } from '@angular/router';
-import { tap } from 'rxjs/operators';
 
 @Component({
   selector: 'sam-header',
@@ -17,14 +14,12 @@ export class HeaderComponent implements OnInit {
 
   user = {};
 
-  userMenu = [{ title: 'Log out', target: 'logout' }];
+  userMenu = [{ title: 'Log out', target: 'logout', link: '/auth/logout' }];
 
   constructor(private menuService: NbMenuService,
-    private userService: UserService,
     private sidebarService: NbSidebarService,
     private analyticsService: AnalyticsService,
-    private authService: AuthService,
-    private router: Router) {
+    private authService: AuthService) {
   }
 
   ngOnInit() {
@@ -43,11 +38,4 @@ export class HeaderComponent implements OnInit {
   startSearch() {
     this.analyticsService.trackEvent('startSearch');
   }
-
-  menuItemClick(event) {
-    if (event.target === 'logout') {
-      this.authService.logout().subscribe();
-      this.router.navigate(['/auth/login']);
-    }
-  }
 }
index 503f5dc..6aab178 100644 (file)
@@ -1,3 +1,4 @@
 export * from './header/header.component';
 export * from './footer/footer.component';
 export * from './search-input/search-input.component';
+export * from './logout/logout.component';
diff --git a/dashboard/src/app/@theme/components/logout/logout.component.ts b/dashboard/src/app/@theme/components/logout/logout.component.ts
new file mode 100644 (file)
index 0000000..5239293
--- /dev/null
@@ -0,0 +1,16 @@
+import { Component, OnInit } from '@angular/core';
+import { AuthService } from '../../../@core/auth';
+import { Router } from '@angular/router';
+
+@Component({
+  selector: 'sam-logout',
+  template: ``,
+})
+export class LogoutComponent implements OnInit {
+  constructor(private authService: AuthService, private router: Router) { }
+
+  ngOnInit() {
+    this.authService.logout().subscribe();
+    this.router.navigate(['/auth/login']);
+  }
+}
index 0bd8a54..901dc99 100644 (file)
@@ -15,12 +15,14 @@ import {
   NbThemeModule,
   NbUserModule,
   NbCheckboxModule,
+  NbContextMenuModule,
 } from '@nebular/theme';
 
 import {
   FooterComponent,
   HeaderComponent,
   SearchInputComponent,
+  LogoutComponent,
 } from './components';
 
 import { CapitalizePipe, PluralPipe, RoundPipe, TimingPipe, ChunksPipe } from './pipes';
@@ -44,6 +46,7 @@ const NB_MODULES = [
   NbSidebarModule,
   NbCheckboxModule,
   NgbModule,
+  NbContextMenuModule,
 ];
 
 const COMPONENTS = [
@@ -51,6 +54,7 @@ const COMPONENTS = [
   FooterComponent,
   SearchInputComponent,
   MainLayoutComponent,
+  LogoutComponent,
 ];
 
 const PIPES = [
index 4e4de97..a798346 100644 (file)
@@ -1,6 +1,7 @@
 import { ExtraOptions, RouterModule, Routes } from '@angular/router';
 import { NgModule } from '@angular/core';
 import { AuthGuardService } from './@core/auth/auth-guard.service';
+import { LogoutComponent } from './@theme/components';
 import {
   NbAuthComponent,
   NbRegisterComponent,
@@ -29,6 +30,10 @@ const routes: Routes = [
         path: 'register',
         component: NbRegisterComponent,
       },
+      {
+        path: 'logout',
+        component: LogoutComponent,
+      },
     ],
   },
   { path: '', redirectTo: 'home', pathMatch: 'full' },
index 87d8fc6..511c6f8 100644 (file)
@@ -10,7 +10,7 @@ import { AppComponent } from './app.component';
 import { AppRoutingModule } from './app-routing.module';
 import { ThemeModule } from './@theme/theme.module';
 import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
-import { NB_AUTH_TOKEN_WRAPPER_TOKEN, NbAuthJWTToken } from '@nebular/auth';
+import { NB_AUTH_TOKEN_CLASS, NbAuthJWTToken } from '@nebular/auth';
 import { AuthGuardService, AuthService } from './@core/auth';
 
 @NgModule({
@@ -33,8 +33,8 @@ import { AuthGuardService, AuthService } from './@core/auth';
       useValue: '/',\r
     },
     {
-      provide: NB_AUTH_TOKEN_WRAPPER_TOKEN,
-      useClass: NbAuthJWTToken,\r
+      provide: NB_AUTH_TOKEN_CLASS,
+      useValue: NbAuthJWTToken,
     },
     AuthGuardService,
     AuthService,