<div class="margin-content">
<div class="videos-header">
- <h1 *ngIf="titlePage" class="title-page title-page-single">
- <div placement="bottom" [ngbTooltip]="titleTooltip" container="body">
- {{ titlePage }}
- </div>
- <my-feed *ngIf="titlePage" [syndicationItems]="syndicationItems"></my-feed>
- </h1>
-
- <div class="action-block" *ngIf="actions.length > 0">
- <a [routerLink]="action.routerLink" routerLinkActive="active" *ngFor="let action of actions">
- <button class="btn">
- <my-global-icon [iconName]="action.iconName" aria-hidden="true"></my-global-icon>
- <span>{{ action.label }}</span>
- </button>
- </a>
+ <ng-template #videoListHeader></ng-template>
+
+ <div class="action-block">
+ <my-feed *ngIf="syndicationItems" [syndicationItems]="syndicationItems"></my-feed>
+
+ <ng-container *ngFor="let action of actions">
+ <a *ngIf="action.routerLink" class="ml-2" [routerLink]="action.routerLink" routerLinkActive="active">
+ <ng-container *ngTemplateOutlet="actionContent; context:{ $implicit: action }"></ng-container>
+ </a>
+
+ <a *ngIf="!action.routerLink && !action.href && action.click" class="ml-2" (click)="action.click($event)" (key.enter)="action.click($event)">
+ <ng-container *ngTemplateOutlet="actionContent; context:{ $implicit: action }"></ng-container>
+ </a>
+
+ <a *ngIf="!action.routerLink && action.href && action.click" class="ml-2" (click)="action.click($event)" (key.enter)="action.click($event)" [href]="action.href">
+ <ng-container *ngTemplateOutlet="actionContent; context:{ $implicit: action }"></ng-container>
+ </a>
+
+ <ng-template #actionContent let-action>
+ <my-button *ngIf="!action.justIcon" [icon]="action.iconName" [label]="action.label"></my-button>
+ <my-button *ngIf="action.justIcon" [icon]="action.iconName" [ngbTooltip]="action.label"></my-button>
+ </ng-template>
+ </ng-container>
</div>
<div class="moderation-block" *ngIf="displayModerationBlock">
- <my-peertube-checkbox
- (change)="toggleModerationDisplay()"
- inputName="display-unlisted-private" i18n-labelText labelText="Display unlisted and private videos"
- >
- </my-peertube-checkbox>
+ <div class="c-hand" ngbDropdown placement="bottom-right auto">
+ <my-global-icon iconName="cog" ngbDropdownToggle></my-global-icon>
+
+ <div role="menu" class="dropdown-menu" ngbDropdownMenu>
+ <div class="dropdown-item">
+ <my-peertube-checkbox
+ (change)="toggleModerationDisplay()"
+ inputName="display-unlisted-private" i18n-labelText labelText="Display all videos (private, unlisted or not yet published)"
+ ></my-peertube-checkbox>
+ </div>
+ </div>
+ </div>
</div>
</div>
<div class="no-results" i18n *ngIf="hasDoneFirstQuery && videos.length === 0">No results.</div>
<div
myInfiniteScroller (nearOfBottom)="onNearOfBottom()" [autoInit]="true" [dataObservable]="onDataSubject.asObservable()"
- class="videos"
+ class="videos" [ngClass]="{ 'display-as-row': displayAsRow() }"
>
<ng-container *ngFor="let video of videos; trackBy: videoById;">
<h2 class="date-title" *ngIf="getCurrentGroupedDateLabel(video)">
<div class="video-wrapper">
<my-video-miniature
- [fitWidth]="true"
- [video]="video" [user]="userMiniature" [ownerDisplayType]="ownerDisplayType"
+ [video]="video" [user]="userMiniature" [displayAsRow]="displayAsRow()"
[displayVideoActions]="displayVideoActions" [displayOptions]="displayOptions"
(videoBlocked)="removeVideoFromArray(video)" (videoRemoved)="removeVideoFromArray(video)"
- (videoAccountMuted)="reloadVideos()"
>
</my-video-miniature>
</div>