diff --git a/client/src/app/+admin/admin.component.ts b/client/src/app/+admin/admin.component.ts index 319d50cdac90..1d9c2fc91d90 100644 --- a/client/src/app/+admin/admin.component.ts +++ b/client/src/app/+admin/admin.component.ts @@ -21,65 +21,74 @@ export class AdminComponent implements OnInit { ngOnInit () { const federationItems: TopMenuDropdownParam = { label: this.i18n('Federation'), + isDisplayed: () => true, children: [ { label: this.i18n('Instances you follow'), routerLink: '/admin/follows/following-list', - iconName: 'following' + iconName: 'following', + isDisplayed: () => true }, { label: this.i18n('Instances following you'), routerLink: '/admin/follows/followers-list', - iconName: 'follower' + iconName: 'follower', + isDisplayed: () => true }, { label: this.i18n('Video redundancies'), routerLink: '/admin/follows/video-redundancies-list', - iconName: 'videos' + iconName: 'videos', + isDisplayed: () => true } ] } const moderationItems: TopMenuDropdownParam = { label: this.i18n('Moderation'), - children: [] + children: [], + isDisplayed: () => true } if (this.hasAbusesRight()) { moderationItems.children.push({ label: this.i18n('Reports'), routerLink: '/admin/moderation/abuses/list', - iconName: 'flag' + iconName: 'flag', + isDisplayed: () => true }) } if (this.hasVideoBlocklistRight()) { moderationItems.children.push({ label: this.i18n('Video blocks'), routerLink: '/admin/moderation/video-blocks/list', - iconName: 'cross' + iconName: 'cross', + isDisplayed: () => true }) } if (this.hasAccountsBlocklistRight()) { moderationItems.children.push({ label: this.i18n('Muted accounts'), routerLink: '/admin/moderation/blocklist/accounts', - iconName: 'user-x' + iconName: 'user-x', + isDisplayed: () => true }) } if (this.hasServersBlocklistRight()) { moderationItems.children.push({ label: this.i18n('Muted servers'), routerLink: '/admin/moderation/blocklist/servers', - iconName: 'peertube-x' + iconName: 'peertube-x', + isDisplayed: () => true }) } - if (this.hasUsersRight()) this.menuEntries.push({ label: this.i18n('Users'), routerLink: '/admin/users' }) + if (this.hasUsersRight()) this.menuEntries.push({ label: this.i18n('Users'), routerLink: '/admin/users', isDisplayed: () => true }) if (this.hasServerFollowRight()) this.menuEntries.push(federationItems) if (this.hasAbusesRight() || this.hasVideoBlocklistRight()) this.menuEntries.push(moderationItems) - if (this.hasConfigRight()) this.menuEntries.push({ label: this.i18n('Configuration'), routerLink: '/admin/config' }) - if (this.hasPluginsRight()) this.menuEntries.push({ label: this.i18n('Plugins/Themes'), routerLink: '/admin/plugins' }) - if (this.hasJobsRight() || this.hasLogsRight() || this.hasDebugRight()) this.menuEntries.push({ label: this.i18n('System'), routerLink: '/admin/system' }) + if (this.hasConfigRight()) this.menuEntries.push({ label: this.i18n('Configuration'), routerLink: '/admin/config', isDisplayed: () => true }) + if (this.hasPluginsRight()) this.menuEntries.push({ label: this.i18n('Plugins/Themes'), routerLink: '/admin/plugins', isDisplayed: () => true }) + if (this.hasJobsRight() || this.hasLogsRight() || this.hasDebugRight()) this.menuEntries.push({ label: this.i18n('System'), routerLink: '/admin/system', isDisplayed: () => true }) } hasUsersRight () { diff --git a/client/src/app/+my-account/my-account.component.ts b/client/src/app/+my-account/my-account.component.ts index 1f17faa92423..ce1a697dc996 100644 --- a/client/src/app/+my-account/my-account.component.ts +++ b/client/src/app/+my-account/my-account.component.ts @@ -32,32 +32,37 @@ export class MyAccountComponent implements OnInit { () => { const libraryEntries: TopMenuDropdownParam = { label: this.i18n('My library'), + isDisplayed: () => true, children: [ { label: this.i18n('My channels'), routerLink: '/my-account/video-channels', - iconName: 'channel' + iconName: 'channel', + isDisplayed: () => true }, { label: this.i18n('My videos'), routerLink: '/my-account/videos', iconName: 'videos', - isHidden: !this.user.canSeeVideosLink() + isDisplayed: () => this.user.canSeeVideosLink() }, { label: this.i18n('My playlists'), routerLink: '/my-account/video-playlists', - iconName: 'playlists' + iconName: 'playlists', + isDisplayed: () => true }, { label: this.i18n('My subscriptions'), routerLink: '/my-account/subscriptions', - iconName: 'inbox-full' + iconName: 'inbox-full', + isDisplayed: () => true }, { label: this.i18n('My history'), routerLink: '/my-account/history/videos', - iconName: 'history' + iconName: 'history', + isDisplayed: () => true } ] } @@ -67,27 +72,31 @@ export class MyAccountComponent implements OnInit { label: 'My imports', routerLink: '/my-account/video-imports', iconName: 'cloud-download', - isHidden: !this.user.canSeeVideosLink() + isDisplayed: () => this.user.canSeeVideosLink() }) } const miscEntries: TopMenuDropdownParam = { label: this.i18n('Misc'), + isDisplayed: () => true, children: [ { label: this.i18n('Muted accounts'), routerLink: '/my-account/blocklist/accounts', - iconName: 'user-x' + iconName: 'user-x', + isDisplayed: () => true }, { label: this.i18n('Muted servers'), routerLink: '/my-account/blocklist/servers', - iconName: 'peertube-x' + iconName: 'peertube-x', + isDisplayed: () => true }, { label: this.i18n('Ownership changes'), routerLink: '/my-account/ownership', - iconName: 'download' + iconName: 'download', + isDisplayed: () => true } ] } @@ -95,11 +104,13 @@ export class MyAccountComponent implements OnInit { this.menuEntries = [ { label: this.i18n('My settings'), - routerLink: '/my-account/settings' + routerLink: '/my-account/settings', + isDisplayed: () => true }, { label: this.i18n('My notifications'), - routerLink: '/my-account/notifications' + routerLink: '/my-account/notifications', + isDisplayed: () => true }, libraryEntries, miscEntries diff --git a/client/src/app/shared/shared-main/misc/top-menu-dropdown.component.html b/client/src/app/shared/shared-main/misc/top-menu-dropdown.component.html index a0f6b5bc3be5..e47f48be6964 100644 --- a/client/src/app/shared/shared-main/misc/top-menu-dropdown.component.html +++ b/client/src/app/shared/shared-main/misc/top-menu-dropdown.component.html @@ -1,9 +1,9 @@