215 lines
6.3 KiB
TypeScript

/** @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;
}
}