<div class="no-results my-5" i18n *ngIf="getVideosOf(videoChannel).length === 0">This channel doesn't have any videos.</div>
<my-video-miniature
- class="pr-2"
*ngFor="let video of getVideosOf(videoChannel)"
[video]="video" [user]="user" [displayVideoActions]="true"
></my-video-miniature>
<div class="video-bottom">
<div class="video-miniature-information">
<div class="d-inline-flex video-miniature-meta">
- <div *ngIf="displayOptions.avatar" class="avatar">
- <img [src]="getAvatarUrl()" alt="Avatar" />
- </div>
-
+ <a *ngIf="displayOptions.avatar" class="avatar" [routerLink]="[ '/video-channels', video.byVideoChannel ]" [title]="channelLinkTitle">
+ <img [src]="getAvatarUrl()" alt="" />
+ </a>
+
<div class="d-flex flex-column">
<a
tabindex="-1"
display: inline-flex;
flex-direction: column;
padding-bottom: $video-miniature-margin-bottom;
- height: 195px;
vertical-align: top;
.video-bottom {
&.fit-width {
width: 100%;
- height: unset;
- padding-bottom: $video-miniature-margin-bottom / 2;
.video-bottom {
width: 100% !important;
addToWatchLaterText: string
addedToWatchLaterText: string
inWatchLaterPlaylist: boolean
+ channelLinkTitle = ''
watchLaterPlaylist: {
id: number
private videoPlaylistService: VideoPlaylistService,
private cd: ChangeDetectorRef,
@Inject(LOCALE_ID) private localeId: string
- ) {
-
- }
+ ) {}
get isVideoBlur () {
return this.video.isVideoNSFWForUser(this.user, this.serverConfig)
this.setUpBy()
+ this.channelLinkTitle = this.i18n(
+ 'Go to the channel page of {{name}} ({{handle}})',
+ { name: this.video.channel.name, handle: this.video.byVideoChannel }
+ )
+
// We rely on mouseenter to lazy load actions
if (this.screenService.isInTouchScreen()) {
this.loadActions()
$separator-border-color: rgba(0, 0, 0, 0.10);
$video-miniature-width: 238px;
-$video-miniature-margin-bottom: 30px;
+$video-miniature-margin-bottom: 15px;
$video-thumbnail-height: 122px;
$video-thumbnail-width: 223px;