diff options
5 files changed, 57 insertions, 13 deletions
diff --git a/client/src/app/+videos/+video-watch/video-watch.component.html b/client/src/app/+videos/+video-watch/video-watch.component.html index 0447268f0..fb6d08167 100644 --- a/client/src/app/+videos/+video-watch/video-watch.component.html +++ b/client/src/app/+videos/+video-watch/video-watch.component.html | |||
@@ -144,15 +144,23 @@ | |||
144 | 144 | ||
145 | <div class="pt-3 border-top video-info-channel d-flex"> | 145 | <div class="pt-3 border-top video-info-channel d-flex"> |
146 | <div class="video-info-channel-left d-flex"> | 146 | <div class="video-info-channel-left d-flex"> |
147 | <avatar-channel [video]="video"></avatar-channel> | 147 | <avatar-channel [video]="video" [genericChannel]="isChannelDisplayNameGeneric()"></avatar-channel> |
148 | 148 | ||
149 | <div class="video-info-channel-left-links ml-1"> | 149 | <div class="video-info-channel-left-links ml-1"> |
150 | <a [routerLink]="[ '/video-channels', video.byVideoChannel ]" i18n-title title="Channel page"> | 150 | <ng-container *ngIf="!isChannelDisplayNameGeneric()"> |
151 | {{ video.channel.displayName }} | 151 | <a [routerLink]="[ '/video-channels', video.byVideoChannel ]" i18n-title title="Channel page"> |
152 | </a> | 152 | {{ video.channel.displayName }} |
153 | <a [routerLink]="[ '/accounts', video.byAccount ]" i18n-title title="Account page"> | 153 | </a> |
154 | <span i18n>By {{ video.byAccount }}</span> | 154 | <a [routerLink]="[ '/accounts', video.byAccount ]" i18n-title title="Account page"> |
155 | </a> | 155 | <span i18n>By {{ video.byAccount }}</span> |
156 | </a> | ||
157 | </ng-container> | ||
158 | |||
159 | <ng-container *ngIf="isChannelDisplayNameGeneric()"> | ||
160 | <a [routerLink]="[ '/accounts', video.byAccount ]" class="single-link" i18n-title title="Account page"> | ||
161 | <span i18n>{{ video.byAccount }}</span> | ||
162 | </a> | ||
163 | </ng-container> | ||
156 | </div> | 164 | </div> |
157 | </div> | 165 | </div> |
158 | 166 | ||
diff --git a/client/src/app/+videos/+video-watch/video-watch.component.scss b/client/src/app/+videos/+video-watch/video-watch.component.scss index c7f91f4a0..00a4b0dee 100644 --- a/client/src/app/+videos/+video-watch/video-watch.component.scss +++ b/client/src/app/+videos/+video-watch/video-watch.component.scss | |||
@@ -192,6 +192,10 @@ $video-info-margin-left: 44px; | |||
192 | font-weight: 500; | 192 | font-weight: 500; |
193 | font-size: 90%; | 193 | font-size: 90%; |
194 | } | 194 | } |
195 | |||
196 | a.single-link { | ||
197 | margin-top: 7px; | ||
198 | } | ||
195 | } | 199 | } |
196 | } | 200 | } |
197 | 201 | ||
diff --git a/client/src/app/+videos/+video-watch/video-watch.component.ts b/client/src/app/+videos/+video-watch/video-watch.component.ts index 933e6c51f..4341514cd 100644 --- a/client/src/app/+videos/+video-watch/video-watch.component.ts +++ b/client/src/app/+videos/+video-watch/video-watch.component.ts | |||
@@ -307,6 +307,15 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
307 | ) | 307 | ) |
308 | } | 308 | } |
309 | 309 | ||
310 | isChannelDisplayNameGeneric () { | ||
311 | const genericChannelDisplayName = [ | ||
312 | `Main ${this.video.channel.ownerAccount.name} channel`, | ||
313 | `Default ${this.video.channel.ownerAccount.name} channel` | ||
314 | ] | ||
315 | |||
316 | return genericChannelDisplayName.includes(this.video.channel.displayName) | ||
317 | } | ||
318 | |||
310 | private loadVideo (videoId: string) { | 319 | private loadVideo (videoId: string) { |
311 | // Video did not change | 320 | // Video did not change |
312 | if (this.video && this.video.uuid === videoId) return | 321 | if (this.video && this.video.uuid === videoId) return |
diff --git a/client/src/app/shared/shared-main/account/avatar.component.html b/client/src/app/shared/shared-main/account/avatar.component.html index 09871fca4..310cc926f 100644 --- a/client/src/app/shared/shared-main/account/avatar.component.html +++ b/client/src/app/shared/shared-main/account/avatar.component.html | |||
@@ -1,8 +1,26 @@ | |||
1 | <div class="wrapper" [ngClass]="'avatar-' + size"> | 1 | <div class="wrapper" [ngClass]="'avatar-' + size"> |
2 | <a [routerLink]="[ '/video-channels', video.byVideoChannel ]" [title]="channelLinkTitle"> | 2 | <ng-container *ngIf="!isChannelAvatarNull() && !genericChannel"> |
3 | <img [src]="video.videoChannelAvatarUrl" i18n-alt alt="Channel avatar" /> | 3 | <a [routerLink]="[ '/video-channels', video.byVideoChannel ]" [title]="channelLinkTitle"> |
4 | </a> | 4 | <img [src]="video.videoChannelAvatarUrl" i18n-alt alt="Channel avatar" /> |
5 | <a [routerLink]="[ '/accounts', video.byAccount ]" [title]="accountLinkTitle"> | 5 | </a> |
6 | <img [src]="video.accountAvatarUrl" i18n-alt alt="Account avatar" /> | 6 | <a [routerLink]="[ '/accounts', video.byAccount ]" [title]="accountLinkTitle"> |
7 | </a> | 7 | <img [src]="video.accountAvatarUrl" i18n-alt alt="Account avatar" /> |
8 | </a> | ||
9 | </ng-container> | ||
10 | |||
11 | <ng-container *ngIf="!isChannelAvatarNull() && genericChannel"> | ||
12 | <a [routerLink]="[ '/accounts', video.byAccount ]" [title]="accountLinkTitle"> | ||
13 | <img [src]="video.accountAvatarUrl" i18n-alt alt="Account avatar" /> | ||
14 | </a> | ||
15 | |||
16 | <a [routerLink]="[ '/video-channels', video.byVideoChannel ]" [title]="channelLinkTitle"> | ||
17 | <img [src]="video.videoChannelAvatarUrl" i18n-alt alt="Channel avatar" /> | ||
18 | </a> | ||
19 | </ng-container> | ||
20 | |||
21 | <ng-container *ngIf="isChannelAvatarNull()"> | ||
22 | <a [routerLink]="[ '/accounts', video.byAccount ]" [title]="accountLinkTitle"> | ||
23 | <img [src]="video.accountAvatarUrl" i18n-alt alt="Account avatar" /> | ||
24 | </a> | ||
25 | </ng-container> | ||
8 | </div> | 26 | </div> |
diff --git a/client/src/app/shared/shared-main/account/avatar.component.ts b/client/src/app/shared/shared-main/account/avatar.component.ts index 31f39c200..73c145ef9 100644 --- a/client/src/app/shared/shared-main/account/avatar.component.ts +++ b/client/src/app/shared/shared-main/account/avatar.component.ts | |||
@@ -10,6 +10,7 @@ import { I18n } from '@ngx-translate/i18n-polyfill' | |||
10 | export class AvatarComponent implements OnInit { | 10 | export class AvatarComponent implements OnInit { |
11 | @Input() video: Video | 11 | @Input() video: Video |
12 | @Input() size: 'md' | 'sm' = 'md' | 12 | @Input() size: 'md' | 'sm' = 'md' |
13 | @Input() genericChannel: boolean | ||
13 | 14 | ||
14 | channelLinkTitle = '' | 15 | channelLinkTitle = '' |
15 | accountLinkTitle = '' | 16 | accountLinkTitle = '' |
@@ -28,4 +29,8 @@ export class AvatarComponent implements OnInit { | |||
28 | { name: this.video.account.name, handle: this.video.byAccount } | 29 | { name: this.video.account.name, handle: this.video.byAccount } |
29 | ) | 30 | ) |
30 | } | 31 | } |
32 | |||
33 | isChannelAvatarNull () { | ||
34 | return this.video.channel.avatar === null | ||
35 | } | ||
31 | } | 36 | } |