14870bb5f8c2c876b50d011a8f98732792dd01a0
[oweals/peertube.git] / client / src / app / app.component.ts
1 import { Component, OnInit, ViewContainerRef } from '@angular/core';
2 import { Router } from '@angular/router';
3
4 import { AuthService, ConfigService } from './core';
5 import { VideoService } from './videos';
6 import { UserService } from './shared';
7
8 @Component({
9   selector: 'my-app',
10   templateUrl: './app.component.html',
11   styleUrls: [ './app.component.scss' ]
12 })
13 export class AppComponent implements OnInit {
14   notificationOptions = {
15     timeOut: 3000,
16     lastOnBottom: true,
17     clickToClose: true,
18     maxLength: 0,
19     maxStack: 7,
20     showProgressBar: false,
21     pauseOnHover: false,
22     preventDuplicates: false,
23     preventLastDuplicates: 'visible',
24     rtl: false
25   };
26
27   isMenuDisplayed = true;
28
29   constructor(
30     private router: Router,
31     private authService: AuthService,
32     private configService: ConfigService,
33     private userService: UserService,
34     private videoService: VideoService,
35     viewContainerRef: ViewContainerRef
36   ) {}
37
38   ngOnInit() {
39     if (this.authService.isLoggedIn()) {
40       // The service will automatically redirect to the login page if the token is not valid anymore
41       this.userService.checkTokenValidity();
42     }
43
44     this.configService.loadConfig();
45     this.videoService.loadVideoCategories();
46     this.videoService.loadVideoLicences();
47     this.videoService.loadVideoLanguages();
48   }
49
50   isInAdmin() {
51     return this.router.url.indexOf('/admin/') !== -1;
52   }
53
54   toggleMenu() {
55     this.isMenuDisplayed = !this.isMenuDisplayed;
56   }
57
58   getMainColClasses() {
59     const colSizes = {
60       md: 10,
61       sm: 9,
62       xs: 9
63     }
64
65     // Take all width is the menu is not displayed
66     if (this.isMenuDisplayed === false) {
67       Object.keys(colSizes).forEach(col => colSizes[col] = 12);
68     }
69
70     const classes = [ "main-col" ];
71     Object.keys(colSizes).forEach(col => classes.push(`col-${col}-${colSizes[col]}`));
72
73     return classes;
74   }
75 }