X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bmy-account%2Fmy-account.component.ts;h=d98d06f8e7f619c25a2ee8c95b73a17dfd7e5dbc;hb=a80e84f047dc3d2229f1c5df9f008298fafb85a0;hp=bad60a8fb750e6b9bd4598accb4ae6d9faad1b11;hpb=75f1d36218e2f2011845fcbf2e417c4524230668;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 bad60a8fb..d98d06f8e 100644 --- a/client/src/app/+my-account/my-account.component.ts +++ b/client/src/app/+my-account/my-account.component.ts @@ -1,37 +1,93 @@ -import { Component, OnDestroy, OnInit } from '@angular/core' +import { Component } from '@angular/core' import { ServerService } from '@app/core' -import { NavigationStart, Router } from '@angular/router' -import { filter } from 'rxjs/operators' import { I18n } from '@ngx-translate/i18n-polyfill' -import { Subscription } from 'rxjs' +import { TopMenuDropdownParam } from '@app/shared/menu/top-menu-dropdown.component' @Component({ selector: 'my-my-account', templateUrl: './my-account.component.html', styleUrls: [ './my-account.component.scss' ] }) -export class MyAccountComponent implements OnInit, OnDestroy { - - libraryLabel = '' - - private routeSub: Subscription +export class MyAccountComponent { + menuEntries: TopMenuDropdownParam[] = [] constructor ( private serverService: ServerService, - private router: Router, private i18n: I18n - ) {} + ) { - ngOnInit () { - this.updateLibraryLabel(this.router.url) + 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' + } + ] + } - this.routeSub = this.router.events - .pipe(filter(event => event instanceof NavigationStart)) - .subscribe((event: NavigationStart) => this.updateLibraryLabel(event.url)) - } + if (this.isVideoImportEnabled()) { + libraryEntries.children.push({ + label: 'My imports', + routerLink: '/my-account/video-imports', + iconName: 'cloud-download' + }) + } - ngOnDestroy () { - if (this.routeSub) this.routeSub.unsubscribe() + 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 () { @@ -40,19 +96,4 @@ export class MyAccountComponent implements OnInit, OnDestroy { return importConfig.http.enabled || importConfig.torrent.enabled } - private updateLibraryLabel (url: string) { - const [ path ] = url.split('?') - - if (path.startsWith('/my-account/video-channels')) { - this.libraryLabel = this.i18n('Channels') - } else if (path.startsWith('/my-account/videos')) { - this.libraryLabel = this.i18n('Videos') - } else if (path.startsWith('/my-account/subscriptions')) { - this.libraryLabel = this.i18n('Subscriptions') - } else if (path.startsWith('/my-account/video-imports')) { - this.libraryLabel = this.i18n('Video imports') - } else { - this.libraryLabel = '' - } - } }