X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bmy-account%2Fmy-account.component.ts;h=450454ca2659940d83d7b24da3e71e604da32a2b;hb=2c8380a46f34631e705b1564938343cacfa4b0bc;hp=d728caf0758ded3dea274d8f6941241b4017e24b;hpb=be0f59b4eec3c2c4dcd151e2b174be39dff1568e;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 d728caf07..450454ca2 100644 --- a/client/src/app/+my-account/my-account.component.ts +++ b/client/src/app/+my-account/my-account.component.ts @@ -1,67 +1,67 @@ -import { Component, OnDestroy, OnInit } 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 { Component, OnInit } from '@angular/core' +import { AuthUser, ScreenService } from '@app/core' +import { TopMenuDropdownParam } from '../shared/shared-main/misc/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 = '' - miscLabel = '' - - private routeSub: Subscription +export class MyAccountComponent implements OnInit { + menuEntries: TopMenuDropdownParam[] = [] + user: AuthUser constructor ( - private serverService: ServerService, - private router: Router, - private i18n: I18n - ) {} + private screenService: ScreenService + ) { } - ngOnInit () { - this.updateLabels(this.router.url) - - this.routeSub = this.router.events - .pipe(filter(event => event instanceof NavigationStart)) - .subscribe((event: NavigationStart) => this.updateLabels(event.url)) + get isBroadcastMessageDisplayed () { + return this.screenService.isBroadcastMessageDisplayed } - ngOnDestroy () { - if (this.routeSub) this.routeSub.unsubscribe() + ngOnInit (): void { + this.buildMenu() } - isVideoImportEnabled () { - const importConfig = this.serverService.getConfig().import.videos + private buildMenu () { + const moderationEntries: TopMenuDropdownParam = { + label: $localize`Moderation`, + children: [ + { + label: $localize`Muted accounts`, + routerLink: '/my-account/blocklist/accounts', + iconName: 'user-x' + }, + { + label: $localize`Muted servers`, + routerLink: '/my-account/blocklist/servers', + iconName: 'peertube-x' + }, + { + label: $localize`Abuse reports`, + routerLink: '/my-account/abuses', + iconName: 'flag' + } + ] + } - return importConfig.http.enabled || importConfig.torrent.enabled - } + this.menuEntries = [ + { + label: $localize`Settings`, + routerLink: '/my-account/settings' + }, - private updateLabels (url: string) { - const [ path ] = url.split('?') + { + label: $localize`Notifications`, + routerLink: '/my-account/notifications' + }, - 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 = '' - } + { + label: $localize`Applications`, + routerLink: '/my-account/applications' + }, - if (path.startsWith('/my-account/blocklist/accounts')) { - this.miscLabel = this.i18n('Muted accounts') - } else if (path.startsWith('/my-account/blocklist/servers')) { - this.miscLabel = this.i18n('Muted instances') - } else { - this.miscLabel = '' - } + moderationEntries + ] } }