X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bmy-account%2Fmy-account.component.ts;h=05dcf522d4c13bdf6b8ba1be1fe161c6f0cf7492;hb=c2caa99b942dea7fa9d2856f53efd1316169658e;hp=a8f5f8f31d55b28ab71b72a3beabb2de833ece4c;hpb=5d08a6a74e83f2e4dfe2f3ba7f5a39371e1bc89e;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+my-account/my-account.component.ts b/client/src/app/+my-account/my-account.component.ts index a8f5f8f31..05dcf522d 100644 --- a/client/src/app/+my-account/my-account.component.ts +++ b/client/src/app/+my-account/my-account.component.ts @@ -1,17 +1,107 @@ -import { Component } from '@angular/core' +import { Component, OnInit } from '@angular/core' import { ServerService } from '@app/core' +import { I18n } from '@ngx-translate/i18n-polyfill' +import { TopMenuDropdownParam } from '@app/shared/menu/top-menu-dropdown.component' +import { ServerConfig } from '@shared/models' @Component({ selector: 'my-my-account', - templateUrl: './my-account.component.html' + templateUrl: './my-account.component.html', + styleUrls: [ './my-account.component.scss' ] }) -export class MyAccountComponent { +export class MyAccountComponent implements OnInit { + menuEntries: TopMenuDropdownParam[] = [] + + private serverConfig: ServerConfig constructor ( - private serverService: ServerService - ) {} + private serverService: ServerService, + private i18n: I18n + ) { } + + ngOnInit (): void { + this.serverConfig = this.serverService.getTmpConfig() + this.serverService.getConfig() + .subscribe(config => this.serverConfig = config) + + const libraryEntries: TopMenuDropdownParam = { + label: this.i18n('My library'), + children: [ + { + label: this.i18n('My channels'), + routerLink: '/my-account/video-channels', + iconName: 'folder' + }, + { + label: this.i18n('My videos'), + routerLink: '/my-account/videos', + iconName: 'videos' + }, + { + label: this.i18n('My playlists'), + routerLink: '/my-account/video-playlists', + iconName: 'playlists' + }, + { + label: this.i18n('My subscriptions'), + routerLink: '/my-account/subscriptions', + iconName: 'subscriptions' + }, + { + label: this.i18n('My history'), + routerLink: '/my-account/history/videos', + iconName: 'history' + } + ] + } + + if (this.isVideoImportEnabled()) { + libraryEntries.children.push({ + label: 'My imports', + routerLink: '/my-account/video-imports', + iconName: 'cloud-download' + }) + } + + const miscEntries: TopMenuDropdownParam = { + label: this.i18n('Misc'), + children: [ + { + label: this.i18n('Muted accounts'), + routerLink: '/my-account/blocklist/accounts', + iconName: 'user' + }, + { + label: this.i18n('Muted instances'), + routerLink: '/my-account/blocklist/servers', + iconName: 'server' + }, + { + label: this.i18n('Ownership changes'), + routerLink: '/my-account/ownership', + iconName: 'im-with-her' + } + ] + } + + this.menuEntries = [ + { + label: this.i18n('My settings'), + routerLink: '/my-account/settings' + }, + { + label: this.i18n('My notifications'), + routerLink: '/my-account/notifications' + }, + libraryEntries, + miscEntries + ] + } isVideoImportEnabled () { - return this.serverService.getConfig().import.video.http.enabled + const importConfig = this.serverConfig.import.videos + + return importConfig.http.enabled || importConfig.torrent.enabled } + }