]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Display avatar in video miniatures (#4823)
authorkontrollanten <6680299+kontrollanten@users.noreply.github.com>
Tue, 8 Mar 2022 12:39:27 +0000 (13:39 +0100)
committerGitHub <noreply@github.com>
Tue, 8 Mar 2022 12:39:27 +0000 (13:39 +0100)
* show avatar in video miniatures

closes #4040

* fix: videos for api, include avatars

* add config for display video miniature avatar

* Revert "fix: videos for api, include avatars"

This reverts commit 5520a3eda6805338317a394d0553f2f82095a425.

* video-min: set display avatar to false as default

* remove empty line

* rename display_avatar > display_author_avatar

* fix renaming displayAvatar > displayAuthorAvatar

client/src/app/shared/shared-video-miniature/videos-list.component.ts
config/default.yaml
config/production.yaml.example
server/initializers/checker-before-init.ts
server/initializers/config.ts
server/lib/server-config-manager.ts
shared/models/server/server-config.model.ts

index 9a7ec7efa2a4ed01388ba6f65d8b3761f5cb1dbb..38a80b97385d6323af01562724c9ed4d04fc6ad7 100644 (file)
@@ -3,7 +3,16 @@ import { fromEvent, Observable, Subject, Subscription } from 'rxjs'
 import { debounceTime, switchMap } from 'rxjs/operators'
 import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core'
 import { ActivatedRoute } from '@angular/router'
-import { AuthService, ComponentPaginationLight, Notifier, PeerTubeRouterService, ScreenService, User, UserService } from '@app/core'
+import {
+  AuthService,
+  ComponentPaginationLight,
+  Notifier,
+  PeerTubeRouterService,
+  ScreenService,
+  ServerService,
+  User,
+  UserService
+} from '@app/core'
 import { GlobalIconName } from '@app/shared/shared-icons'
 import { isLastMonth, isLastWeek, isThisMonth, isToday, isYesterday } from '@shared/core-utils'
 import { ResultList, UserRight, VideoSortField } from '@shared/models'
@@ -61,16 +70,7 @@ export class VideosListComponent implements OnInit, OnChanges, OnDestroy {
 
   @Input() hideScopeFilter = false
 
-  @Input() displayOptions: MiniatureDisplayOptions = {
-    date: true,
-    views: true,
-    by: true,
-    avatar: false,
-    privacyLabel: true,
-    privacyText: false,
-    state: false,
-    blacklistInfo: false
-  }
+  @Input() displayOptions: MiniatureDisplayOptions
 
   @Input() disabled = false
 
@@ -85,6 +85,16 @@ export class VideosListComponent implements OnInit, OnChanges, OnDestroy {
 
   userMiniature: User
 
+  private defaultDisplayOptions: MiniatureDisplayOptions = {
+    date: true,
+    views: true,
+    by: true,
+    avatar: false,
+    privacyLabel: true,
+    privacyText: false,
+    state: false,
+    blacklistInfo: false
+  }
   private routeSub: Subscription
   private userSub: Subscription
   private resizeSub: Subscription
@@ -105,7 +115,8 @@ export class VideosListComponent implements OnInit, OnChanges, OnDestroy {
     private userService: UserService,
     private route: ActivatedRoute,
     private screenService: ScreenService,
-    private peertubeRouter: PeerTubeRouterService
+    private peertubeRouter: PeerTubeRouterService,
+    private serverService: ServerService
   ) {
 
   }
@@ -161,6 +172,14 @@ export class VideosListComponent implements OnInit, OnChanges, OnDestroy {
   }
 
   ngOnChanges (changes: SimpleChanges) {
+    if (changes['displayOptions'] || !this.displayOptions) {
+      this.displayOptions = {
+        ...this.defaultDisplayOptions,
+        avatar: this.serverService.getHTMLConfig().client.videos.miniature.displayAuthorAvatar,
+        ...changes['displayOptions']
+      }
+    }
+
     if (!this.filters) return
 
     let updated = false
index 3588a5ec99f388f07922461549209dc98f75a4a1..d76894b52761d444bd71352e3a4580739995781d 100644 (file)
@@ -624,6 +624,7 @@ client:
     miniature:
       # By default PeerTube client displays author username
       prefer_author_display_name: false
+      display_author_avatar: false
 
   menu:
     login:
index 73d1ead663792405cc96c0eda255d0a689d29078..45d26190a9f6b04dd79939863fa808f4a7627fbb 100644 (file)
@@ -632,6 +632,7 @@ client:
     miniature:
       # By default PeerTube client displays author username
       prefer_author_display_name: false
+      display_author_avatar: false
 
   menu:
     login:
index 36401f95c6d418d518a4a6a8f15580a1928e8f91..10dd98f43c05ae982091b668317488615d7f179f 100644 (file)
@@ -33,6 +33,7 @@ function checkMissedConfig () {
     'transcoding.resolutions.2160p', 'video_editor.enabled',
     'import.videos.http.enabled', 'import.videos.torrent.enabled', 'import.videos.concurrency', 'auto_blacklist.videos.of_users.enabled',
     'trending.videos.interval_days',
+    'client.videos.miniature.display_author_avatar',
     'client.videos.miniature.prefer_author_display_name', 'client.menu.login.redirect_on_single_external_auth',
     'defaults.publish.download_enabled', 'defaults.publish.comments_enabled', 'defaults.publish.privacy', 'defaults.publish.licence',
     'instance.name', 'instance.short_description', 'instance.description', 'instance.terms', 'instance.default_client_route',
index 63056b41d25d6d14ccc40f0e6ac83f07082ed81a..7a13a136873a2a61e3835b32ce99644fb49abc61 100644 (file)
@@ -62,7 +62,8 @@ const CONFIG = {
   CLIENT: {
     VIDEOS: {
       MINIATURE: {
-        get PREFER_AUTHOR_DISPLAY_NAME () { return config.get<boolean>('client.videos.miniature.prefer_author_display_name') }
+        get PREFER_AUTHOR_DISPLAY_NAME () { return config.get<boolean>('client.videos.miniature.prefer_author_display_name') },
+        get DISPLAY_AUTHOR_AVATAR () { return config.get<boolean>('client.videos.miniature.display_author_avatar') }
       }
     },
     MENU: {
index 38512f384b80209f695915688f1d3fb422b3ac0a..43ca2332b99729bb68a554fa90632255ee16facb 100644 (file)
@@ -46,6 +46,7 @@ class ServerConfigManager {
       client: {
         videos: {
           miniature: {
+            displayAuthorAvatar: CONFIG.CLIENT.VIDEOS.MINIATURE.DISPLAY_AUTHOR_AVATAR,
             preferAuthorDisplayName: CONFIG.CLIENT.VIDEOS.MINIATURE.PREFER_AUTHOR_DISPLAY_NAME
           }
         },
index 0fe8b0de8fd0fa3bd9afacd9560d4d5c21cf4cf0..b06019bb8e0f03173e5cf16229eee364c4e083bb 100644 (file)
@@ -38,6 +38,7 @@ export interface ServerConfig {
   client: {
     videos: {
       miniature: {
+        displayAuthorAvatar: boolean
         preferAuthorDisplayName: boolean
       }
     }