/** @file * @author Edouard DUPIN * @copyright 2018, Edouard DUPIN, all right reserved * @license PROPRIETARY (see license file) */ import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { UserService, SessionService, SSOService, ArianeService } from '../../service'; @Component({ selector: 'app-top-menu', templateUrl: './top-menu.html', styleUrls: [ './top-menu.less' ] }) export class TopMenuComponent implements OnInit { public login: string;// Session.getLogin(); public avatar: string;// Session.getAvatar(); public displayUserMenu: boolean = false; public displayEditMenu: boolean = false; public arianeTypeId: number = null; public arianeTypeName: string = null; public arianeUniverseId: number = null; public arianeUniverseName: string = null; public arianeSeriesId: number = null; public arianeSeriesName: string = null; public arianeSeasonId: number = null; public arianeSeasonName: string = null; public arianeVideoId: number = null; public arianeVideoName: string = null; public editShow: boolean = false; constructor(private router: Router, private sessionService: SessionService, private arianeService: ArianeService, private userService: UserService, private ssoService: SSOService) { } ngOnInit() { let self = this; this.sessionService.change.subscribe((isConnected) => { console.log(`TOP-MENU: receive event from session ...${isConnected}`); if(isConnected === false) { self.login = undefined; self.avatar = undefined; self.displayUserMenu = false; } else { self.updateIsJusteLogged(); } }); if (this.sessionService.islogged()) { this.updateIsJusteLogged(); } this.arianeService.typeChange.subscribe((typeId: number) => { this.arianeTypeId = typeId; this.arianeTypeName = this.arianeService.getTypeName(); this.updateEditShow(); }); this.arianeService.universeChange.subscribe((universId) => { this.arianeUniverseId = universId; this.arianeUniverseName = this.arianeService.getUniverseName(); this.updateEditShow(); }); this.arianeService.seriesChange.subscribe((seriesId) => { this.arianeSeriesId = seriesId; this.arianeSeriesName = this.arianeService.getSeriesName(); this.updateEditShow(); }); this.arianeService.seasonChange.subscribe((seasonId) => { this.arianeSeasonId = seasonId; this.arianeSeasonName = this.arianeService.getSeasonName(); this.updateEditShow(); }); this.arianeService.videoChange.subscribe((videoId) => { this.arianeVideoId = videoId; this.arianeVideoName = this.arianeService.getVideoName(); this.updateEditShow(); }); } private updateIsJusteLogged(): void { this.login = this.sessionService.getLogin(); this.avatar = this.sessionService.getAvatar(); this.displayUserMenu = false; console.log(` login:${this.sessionService.getLogin()}`); console.log(` avatar:${this.avatar}`); } onAvatar(): void { console.log(`onAvatar() ${ this.displayUserMenu}`); this.displayUserMenu = !this.displayUserMenu; this.displayEditMenu = false; } onHome(event: any): void { console.log('onHome()'); this.router.navigate([ 'home' ]); } onSignIn(event: any): void { console.log('onSignIn()'); this.ssoService.requestSignIn(); } onSignUp(event: any): void { console.log('onSignIn()'); this.ssoService.requestSignUp(); this.displayUserMenu = false; } onLogout(event: any): void { console.log('onLogout()'); this.ssoService.requestSignOut(); this.userService.logOut(); this.router.navigate(['home']); this.displayUserMenu = false; } onSetting(event: any): void { console.log('onSetting()'); this.router.navigate([ 'settings' ]); this.displayUserMenu = false; } onHelp(event: any): void { console.log('onHelp()'); this.router.navigate([ 'help' ]); this.displayUserMenu = false; } onOutUserProperty(): void { console.log('onOutUserProperty ==> event...'); this.displayUserMenu = false; this.displayEditMenu = false; } onArianeType(event: any): void { console.log(`onArianeType(${ this.arianeTypeId })`); this.arianeService.navigateType(this.arianeTypeId, event.which === 2); } onArianeUniverse(event: any): void { console.log(`onArianeUniverse(${ this.arianeUniverseId })`); this.arianeService.navigateUniverse(this.arianeUniverseId, event.which === 2); } onArianeSeries(event: any): void { console.log(`onArianeSeries(${ this.arianeSeriesId })`); this.arianeService.navigateSeries(this.arianeSeriesId, event.which === 2); } onArianeSeason(event: any): void { console.log(`onArianeSeason(${ this.arianeSeasonId })`); this.arianeService.navigateSeason(this.arianeSeasonId, event.which === 2); } updateEditShow():void { this.editShow = /* this.arianeTypeId !== null || this.arianeUniverseId !== null ||*/ this.arianeSeriesId !== null || this.arianeSeasonId !== null || this.arianeVideoId !== null; } onEdit(): void { console.log('onEdit()'); this.displayEditMenu = !this.displayEditMenu; this.displayUserMenu = false; } onSubEditVideo(event: any): void { console.log('onSubEdit()'); this.displayEditMenu = false; this.displayUserMenu = false; this.arianeService.navigateVideoEdit(this.arianeVideoId, event.which === 2); } onSubEditSeason(event: any): void { console.log('onSubEdit()'); this.displayEditMenu = false; this.displayUserMenu = false; this.arianeService.navigateSeasonEdit(this.arianeSeasonId, event.which === 2); } onSubEditSeries(event: any): void { console.log('onSubEdit()'); this.displayEditMenu = false; this.displayUserMenu = false; this.arianeService.navigateSeriesEdit(this.arianeSeriesId, event.which === 2); } onSubEditUniverse(event: any): void { console.log('onSubEdit()'); this.displayEditMenu = false; this.displayUserMenu = false; this.arianeService.navigateUniverseEdit(this.arianeUniverseId, event.which === 2); } onSubEditType(event: any): void { console.log('onSubEditType()'); this.displayEditMenu = false; this.displayUserMenu = false; this.arianeService.navigateTypeEdit(this.arianeTypeId, event.which === 2); } onAddMedia(event: any): void { console.log('onAddMedia()'); this.router.navigate([ 'upload' ]); this.displayUserMenu = false; } }