diff options
Diffstat (limited to 'client/src/app/shared')
6 files changed, 25 insertions, 5 deletions
diff --git a/client/src/app/shared/shared-video-miniature/video-filters-header.component.html b/client/src/app/shared/shared-video-miniature/video-filters-header.component.html index 44c21c089..604746897 100644 --- a/client/src/app/shared/shared-video-miniature/video-filters-header.component.html +++ b/client/src/app/shared/shared-video-miniature/video-filters-header.component.html | |||
@@ -77,7 +77,7 @@ | |||
77 | </div> | 77 | </div> |
78 | </div> | 78 | </div> |
79 | 79 | ||
80 | <div class="form-group"> | 80 | <div class="form-group" *ngIf="!hideScope"> |
81 | <label for="scope" i18n>Scope:</label> | 81 | <label for="scope" i18n>Scope:</label> |
82 | 82 | ||
83 | <div class="peertube-radio-container"> | 83 | <div class="peertube-radio-container"> |
diff --git a/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts b/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts index 99f133e54..54a7c5dab 100644 --- a/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts +++ b/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts | |||
@@ -24,6 +24,8 @@ export class VideoFiltersHeaderComponent implements OnInit, OnDestroy { | |||
24 | @Input() defaultSort = '-publishedAt' | 24 | @Input() defaultSort = '-publishedAt' |
25 | @Input() nsfwPolicy: NSFWPolicyType | 25 | @Input() nsfwPolicy: NSFWPolicyType |
26 | 26 | ||
27 | @Input() hideScope = false | ||
28 | |||
27 | @Output() filtersChanged = new EventEmitter() | 29 | @Output() filtersChanged = new EventEmitter() |
28 | 30 | ||
29 | areFiltersCollapsed = true | 31 | areFiltersCollapsed = true |
diff --git a/client/src/app/shared/shared-video-miniature/video-filters.model.ts b/client/src/app/shared/shared-video-miniature/video-filters.model.ts index a3b8129f0..920dc826c 100644 --- a/client/src/app/shared/shared-video-miniature/video-filters.model.ts +++ b/client/src/app/shared/shared-video-miniature/video-filters.model.ts | |||
@@ -38,10 +38,14 @@ export class VideoFilters { | |||
38 | private onChangeCallbacks: Array<() => void> = [] | 38 | private onChangeCallbacks: Array<() => void> = [] |
39 | private oldFormObjectString: string | 39 | private oldFormObjectString: string |
40 | 40 | ||
41 | constructor (defaultSort: string, defaultScope: VideoFilterScope) { | 41 | private readonly hiddenFields: string[] = [] |
42 | |||
43 | constructor (defaultSort: string, defaultScope: VideoFilterScope, hiddenFields: string[] = []) { | ||
42 | this.setDefaultSort(defaultSort) | 44 | this.setDefaultSort(defaultSort) |
43 | this.setDefaultScope(defaultScope) | 45 | this.setDefaultScope(defaultScope) |
44 | 46 | ||
47 | this.hiddenFields = hiddenFields | ||
48 | |||
45 | this.reset() | 49 | this.reset() |
46 | } | 50 | } |
47 | 51 | ||
@@ -160,6 +164,9 @@ export class VideoFilters { | |||
160 | label: $localize`VOD videos` | 164 | label: $localize`VOD videos` |
161 | }) | 165 | }) |
162 | } | 166 | } |
167 | |||
168 | this.activeFilters = this.activeFilters | ||
169 | .filter(a => this.hiddenFields.includes(a.key) === false) | ||
163 | } | 170 | } |
164 | 171 | ||
165 | getActiveFilters () { | 172 | getActiveFilters () { |
diff --git a/client/src/app/shared/shared-video-miniature/videos-list.component.html b/client/src/app/shared/shared-video-miniature/videos-list.component.html index 4ccb4092c..08ed7b94c 100644 --- a/client/src/app/shared/shared-video-miniature/videos-list.component.html +++ b/client/src/app/shared/shared-video-miniature/videos-list.component.html | |||
@@ -33,7 +33,7 @@ | |||
33 | </div> | 33 | </div> |
34 | 34 | ||
35 | <my-video-filters-header | 35 | <my-video-filters-header |
36 | *ngIf="displayFilters" [displayModerationBlock]="displayModerationBlock" | 36 | *ngIf="displayFilters" [displayModerationBlock]="displayModerationBlock" [hideScope]="hideScopeFilter" |
37 | [defaultSort]="defaultSort" [filters]="filters" | 37 | [defaultSort]="defaultSort" [filters]="filters" |
38 | (filtersChanged)="onFiltersChanged(true)" | 38 | (filtersChanged)="onFiltersChanged(true)" |
39 | ></my-video-filters-header> | 39 | ></my-video-filters-header> |
diff --git a/client/src/app/shared/shared-video-miniature/videos-list.component.scss b/client/src/app/shared/shared-video-miniature/videos-list.component.scss index e82ef05ba..209201a5c 100644 --- a/client/src/app/shared/shared-video-miniature/videos-list.component.scss +++ b/client/src/app/shared/shared-video-miniature/videos-list.component.scss | |||
@@ -3,6 +3,9 @@ | |||
3 | @use '_mixins' as *; | 3 | @use '_mixins' as *; |
4 | @use '_miniature' as *; | 4 | @use '_miniature' as *; |
5 | 5 | ||
6 | // Cannot set margin top to videos-header because of the main header fixed position | ||
7 | $margin-top: 30px; | ||
8 | |||
6 | .videos-header { | 9 | .videos-header { |
7 | display: grid; | 10 | display: grid; |
8 | grid-template-columns: auto 1fr auto; | 11 | grid-template-columns: auto 1fr auto; |
@@ -19,7 +22,7 @@ | |||
19 | display: inline-block; | 22 | display: inline-block; |
20 | font-weight: $font-semibold; | 23 | font-weight: $font-semibold; |
21 | 24 | ||
22 | margin-top: 30px; | 25 | margin-top: $margin-top; |
23 | margin-bottom: 0; | 26 | margin-bottom: 0; |
24 | } | 27 | } |
25 | 28 | ||
@@ -35,6 +38,8 @@ | |||
35 | 38 | ||
36 | .action-block { | 39 | .action-block { |
37 | grid-column: 3; | 40 | grid-column: 3; |
41 | grid-row: 1/3; | ||
42 | margin-top: $margin-top; | ||
38 | } | 43 | } |
39 | 44 | ||
40 | my-feed { | 45 | my-feed { |
diff --git a/client/src/app/shared/shared-video-miniature/videos-list.component.ts b/client/src/app/shared/shared-video-miniature/videos-list.component.ts index 10de97298..3db835257 100644 --- a/client/src/app/shared/shared-video-miniature/videos-list.component.ts +++ b/client/src/app/shared/shared-video-miniature/videos-list.component.ts | |||
@@ -59,6 +59,8 @@ export class VideosListComponent implements OnInit, OnChanges, OnDestroy { | |||
59 | 59 | ||
60 | @Input() headerActions: HeaderAction[] = [] | 60 | @Input() headerActions: HeaderAction[] = [] |
61 | 61 | ||
62 | @Input() hideScopeFilter = false | ||
63 | |||
62 | @Input() displayOptions: MiniatureDisplayOptions = { | 64 | @Input() displayOptions: MiniatureDisplayOptions = { |
63 | date: true, | 65 | date: true, |
64 | views: true, | 66 | views: true, |
@@ -109,7 +111,11 @@ export class VideosListComponent implements OnInit, OnChanges, OnDestroy { | |||
109 | } | 111 | } |
110 | 112 | ||
111 | ngOnInit () { | 113 | ngOnInit () { |
112 | this.filters = new VideoFilters(this.defaultSort, this.defaultScope) | 114 | const hiddenFilters = this.hideScopeFilter |
115 | ? [ 'scope' ] | ||
116 | : [] | ||
117 | |||
118 | this.filters = new VideoFilters(this.defaultSort, this.defaultScope, hiddenFilters) | ||
113 | this.filters.load({ ...this.route.snapshot.queryParams, scope: this.defaultScope }) | 119 | this.filters.load({ ...this.route.snapshot.queryParams, scope: this.defaultScope }) |
114 | 120 | ||
115 | this.groupedDateLabels = { | 121 | this.groupedDateLabels = { |