diff options
Diffstat (limited to 'client/src/app/+videos/video-list/trending/video-trending-header.component.ts')
-rw-r--r-- | client/src/app/+videos/video-list/trending/video-trending-header.component.ts | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/client/src/app/+videos/video-list/trending/video-trending-header.component.ts b/client/src/app/+videos/video-list/trending/video-trending-header.component.ts index 125f14e33..e49b61c68 100644 --- a/client/src/app/+videos/video-list/trending/video-trending-header.component.ts +++ b/client/src/app/+videos/video-list/trending/video-trending-header.component.ts | |||
@@ -1,8 +1,9 @@ | |||
1 | import { Component, Inject } from '@angular/core' | 1 | import { Component, Inject, OnInit } from '@angular/core' |
2 | import { Router } from '@angular/router' | 2 | import { Router } from '@angular/router' |
3 | import { VideoListHeaderComponent } from '@app/shared/shared-video-miniature' | 3 | import { VideoListHeaderComponent } from '@app/shared/shared-video-miniature' |
4 | import { GlobalIconName } from '@app/shared/shared-icons' | 4 | import { GlobalIconName } from '@app/shared/shared-icons' |
5 | import { VideoSortField } from '@shared/models' | 5 | import { VideoSortField } from '@shared/models' |
6 | import { ServerService } from '@app/core/server/server.service' | ||
6 | 7 | ||
7 | interface VideoTrendingHeaderItem { | 8 | interface VideoTrendingHeaderItem { |
8 | label: string | 9 | label: string |
@@ -10,6 +11,7 @@ interface VideoTrendingHeaderItem { | |||
10 | value: VideoSortField | 11 | value: VideoSortField |
11 | path: string | 12 | path: string |
12 | tooltip?: string | 13 | tooltip?: string |
14 | hidden?: boolean | ||
13 | } | 15 | } |
14 | 16 | ||
15 | @Component({ | 17 | @Component({ |
@@ -18,12 +20,13 @@ interface VideoTrendingHeaderItem { | |||
18 | styleUrls: [ './video-trending-header.component.scss' ], | 20 | styleUrls: [ './video-trending-header.component.scss' ], |
19 | templateUrl: './video-trending-header.component.html' | 21 | templateUrl: './video-trending-header.component.html' |
20 | }) | 22 | }) |
21 | export class VideoTrendingHeaderComponent extends VideoListHeaderComponent { | 23 | export class VideoTrendingHeaderComponent extends VideoListHeaderComponent implements OnInit { |
22 | buttons: VideoTrendingHeaderItem[] | 24 | buttons: VideoTrendingHeaderItem[] |
23 | 25 | ||
24 | constructor ( | 26 | constructor ( |
25 | @Inject('data') public data: any, | 27 | @Inject('data') public data: any, |
26 | private router: Router | 28 | private router: Router, |
29 | private serverService: ServerService | ||
27 | ) { | 30 | ) { |
28 | super(data) | 31 | super(data) |
29 | 32 | ||
@@ -34,16 +37,17 @@ export class VideoTrendingHeaderComponent extends VideoListHeaderComponent { | |||
34 | value: '-hot', | 37 | value: '-hot', |
35 | path: 'hot', | 38 | path: 'hot', |
36 | tooltip: $localize`Videos totalizing the most interactions for recent videos`, | 39 | tooltip: $localize`Videos totalizing the most interactions for recent videos`, |
40 | hidden: true | ||
37 | }, | 41 | }, |
38 | { | 42 | { |
39 | label: $localize`:Main variant of Trending videos based on number of recent views:Views`, | 43 | label: $localize`:Main variant of Trending videos based on number of recent views:Views`, |
40 | iconName: 'trending', | 44 | iconName: 'trending', |
41 | value: '-trending', | 45 | value: '-trending', |
42 | path: 'trending', | 46 | path: 'most-viewed', |
43 | tooltip: $localize`Videos totalizing the most views during the last 24 hours`, | 47 | tooltip: $localize`Videos totalizing the most views during the last 24 hours`, |
44 | }, | 48 | }, |
45 | { | 49 | { |
46 | label: $localize`:a variant of Trending videos based on the number of likes:Likes`, | 50 | label: $localize`:A variant of Trending videos based on the number of likes:Likes`, |
47 | iconName: 'like', | 51 | iconName: 'like', |
48 | value: '-likes', | 52 | value: '-likes', |
49 | path: 'most-liked', | 53 | path: 'most-liked', |
@@ -52,6 +56,21 @@ export class VideoTrendingHeaderComponent extends VideoListHeaderComponent { | |||
52 | ] | 56 | ] |
53 | } | 57 | } |
54 | 58 | ||
59 | ngOnInit () { | ||
60 | this.serverService.getConfig() | ||
61 | .subscribe(config => { | ||
62 | // don't filter if auto-blacklist is not enabled as this will be the only list | ||
63 | if (config.instance.pages.hot.enabled) { | ||
64 | const index = this.buttons.findIndex(b => b.path === 'hot') | ||
65 | this.buttons[index].hidden = false | ||
66 | } | ||
67 | }) | ||
68 | } | ||
69 | |||
70 | get visibleButtons () { | ||
71 | return this.buttons.filter(b => !b.hidden) | ||
72 | } | ||
73 | |||
55 | setSort () { | 74 | setSort () { |
56 | const path = this.buttons.find(b => b.value === this.data.model).path | 75 | const path = this.buttons.find(b => b.value === this.data.model).path |
57 | this.router.navigate([ `/videos/${path}` ]) | 76 | this.router.navigate([ `/videos/${path}` ]) |