| /******************************************************************************** |
| * Copyright © 2018 Mettenmeier GmbH. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| ********************************************************************************/ |
| import { Component, OnInit, OnDestroy } from '@angular/core'; |
| import { Router, NavigationCancel, NavigationEnd } from '@angular/router'; |
| import { Subscription } from 'rxjs'; |
| |
| import { saveAs } from 'file-saver'; |
| |
| import { AuthenticationService } from '@core/services/authentication.service'; |
| import { UtilService } from '@core/services/util.service'; |
| |
| @Component({ |
| selector: 'ok-navigation', |
| templateUrl: './navigation.component.html', |
| styleUrls: ['./navigation.component.scss'] |
| }) |
| export class NavigationComponent implements OnInit, OnDestroy { |
| navbarCollapsed = true; |
| routerEvent$: Subscription; |
| |
| constructor( |
| public authService: AuthenticationService, |
| private router: Router, |
| private utilService: UtilService |
| ) { } |
| |
| ngOnInit() { |
| } |
| |
| logout() { |
| this.routerEvent$ = this.router.events.subscribe((event) => { |
| if (event instanceof NavigationEnd) { |
| this.authService.logout().subscribe(() => { |
| localStorage.clear(); |
| }); |
| } |
| if (event instanceof NavigationCancel || event instanceof NavigationEnd) { |
| this.routerEvent$.unsubscribe(); |
| } |
| }); |
| } |
| |
| ngOnDestroy() { |
| if (this.routerEvent$) { |
| this.routerEvent$.unsubscribe(); |
| } |
| } |
| |
| downloadPdf() { |
| this.utilService.getDocuAsPdf('/documents/user/documentation').subscribe((pdf: any) => { |
| // const blob = new Blob([pdf], { type: 'application/octet-stream' }); |
| saveAs(pdf, 'TechnischeDokumentation.pdf'); |
| }); |
| } |
| } |