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'
7 selector: 'my-my-account',
8 templateUrl: './my-account.component.html',
9 styleUrls: [ './my-account.component.scss' ]
11 export class MyAccountComponent {
12 menuEntries: TopMenuDropdownParam[] = []
15 private serverService: ServerService,
19 const libraryEntries: TopMenuDropdownParam = {
20 label: this.i18n('My library'),
23 label: this.i18n('My channels'),
24 routerLink: '/my-account/video-channels',
28 label: this.i18n('My videos'),
29 routerLink: '/my-account/videos',
33 label: this.i18n('My playlists'),
34 routerLink: '/my-account/video-playlists',
38 label: this.i18n('My subscriptions'),
39 routerLink: '/my-account/subscriptions',
40 iconName: 'subscriptions'
43 label: this.i18n('My history'),
44 routerLink: '/my-account/history/videos',
50 if (this.isVideoImportEnabled()) {
51 libraryEntries.children.push({
53 routerLink: '/my-account/video-imports',
54 iconName: 'cloud-download'
58 const miscEntries: TopMenuDropdownParam = {
59 label: this.i18n('Misc'),
62 label: this.i18n('Muted accounts'),
63 routerLink: '/my-account/blocklist/accounts',
67 label: this.i18n('Muted instances'),
68 routerLink: '/my-account/blocklist/servers',
72 label: this.i18n('Ownership changes'),
73 routerLink: '/my-account/ownership',
74 iconName: 'im-with-her'
81 label: this.i18n('My settings'),
82 routerLink: '/my-account/settings'
85 label: this.i18n('My notifications'),
86 routerLink: '/my-account/notifications'
93 isVideoImportEnabled () {
94 const importConfig = this.serverService.getConfig().import.videos
96 return importConfig.http.enabled || importConfig.torrent.enabled