Merge branch 'move-utils-to-shared' of https://github.com/buoyantair/PeerTube into...
[oweals/peertube.git] / client / src / app / +my-account / my-account.component.ts
1 import { Component } from '@angular/core'
2 import { ServerService } from '@app/core'
3 import { I18n } from '@ngx-translate/i18n-polyfill'
4 import { TopMenuDropdownParam } from '@app/shared/menu/top-menu-dropdown.component'
5
6 @Component({
7   selector: 'my-my-account',
8   templateUrl: './my-account.component.html',
9   styleUrls: [ './my-account.component.scss' ]
10 })
11 export class MyAccountComponent {
12   menuEntries: TopMenuDropdownParam[] = []
13
14   constructor (
15     private serverService: ServerService,
16     private i18n: I18n
17   ) {
18
19     const libraryEntries: TopMenuDropdownParam = {
20       label: this.i18n('My library'),
21       children: [
22         {
23           label: this.i18n('My channels'),
24           routerLink: '/my-account/videos'
25         },
26         {
27           label: this.i18n('My videos'),
28           routerLink: '/my-account/videos'
29         },
30         {
31           label: this.i18n('My subscriptions'),
32           routerLink: '/my-account/subscriptions'
33         }
34       ]
35     }
36
37     if (this.isVideoImportEnabled()) {
38       libraryEntries.children.push({
39         label: 'My imports',
40         routerLink: '/my-account/video-imports'
41       })
42     }
43
44     const miscEntries: TopMenuDropdownParam = {
45       label: this.i18n('Misc'),
46       children: [
47         {
48           label: this.i18n('Muted accounts'),
49           routerLink: '/my-account/blocklist/accounts'
50         },
51         {
52           label: this.i18n('Muted instances'),
53           routerLink: '/my-account/blocklist/servers'
54         },
55         {
56           label: this.i18n('Ownership changes'),
57           routerLink: '/my-account/ownership'
58         }
59       ]
60     }
61
62     this.menuEntries = [
63       {
64         label: this.i18n('My settings'),
65         routerLink: '/my-account/settings'
66       },
67       libraryEntries,
68       miscEntries
69     ]
70   }
71
72   isVideoImportEnabled () {
73     const importConfig = this.serverService.getConfig().import.videos
74
75     return importConfig.http.enabled || importConfig.torrent.enabled
76   }
77
78 }