]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/app.component.ts
444b6b3b4a60af3adfa2a00fd83eb287e7560282
[github/Chocobozzz/PeerTube.git] / client / src / app / app.component.ts
1 import { Component } from '@angular/core';
2 import { ActivatedRoute, Router, ROUTER_DIRECTIVES } from '@angular/router';
3
4 import { FriendService } from './friends';
5 import {
6 AuthService,
7 AuthStatus,
8 SearchComponent,
9 SearchService
10 } from './shared';
11 import { VideoService } from './videos';
12
13 @Component({
14 selector: 'my-app',
15 template: require('./app.component.html'),
16 styles: [ require('./app.component.scss') ],
17 directives: [ ROUTER_DIRECTIVES, SearchComponent ],
18 providers: [ FriendService, VideoService, SearchService ]
19 })
20
21 export class AppComponent {
22 choices = [];
23 isLoggedIn: boolean;
24
25 constructor(
26 private authService: AuthService,
27 private friendService: FriendService,
28 private route: ActivatedRoute,
29 private router: Router
30 ) {
31 this.isLoggedIn = this.authService.isLoggedIn();
32
33 this.authService.loginChangedSource.subscribe(
34 status => {
35 if (status === AuthStatus.LoggedIn) {
36 this.isLoggedIn = true;
37 console.log('Logged in.');
38 } else if (status === AuthStatus.LoggedOut) {
39 this.isLoggedIn = false;
40 console.log('Logged out.');
41 } else {
42 console.error('Unknown auth status: ' + status);
43 }
44 }
45 );
46 }
47
48 isUserAdmin() {
49 return this.authService.isAdmin();
50 }
51
52 logout() {
53 this.authService.logout();
54 // Redirect to home page
55 this.router.navigate(['/videos/list']);
56 }
57
58 makeFriends() {
59 this.friendService.makeFriends().subscribe(
60 status => {
61 if (status === 409) {
62 alert('Already made friends!');
63 } else {
64 alert('Made friends!');
65 }
66 },
67 error => alert(error)
68 );
69 }
70
71 quitFriends() {
72 this.friendService.quitFriends().subscribe(
73 status => {
74 alert('Quit friends!');
75 },
76 error => alert(error)
77 );
78 }
79 }