aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/shared/shared-video-miniature/abstract-video-list.html
blob: 9ffeac5e8872d9bad3d0fb9af4dd1f286e586b6f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<div class="margin-content">
  <div class="videos-header">
    <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">
      <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" [ngClass]="{ 'display-as-row': displayAsRow() }"
  >
    <ng-container *ngFor="let video of videos; trackBy: videoById;">
      <h2 class="date-title" *ngIf="getCurrentGroupedDateLabel(video)">
        {{ getCurrentGroupedDateLabel(video) }}
      </h2>

      <div class="video-wrapper">
        <my-video-miniature
          [video]="video" [user]="userMiniature" [displayAsRow]="displayAsRow()"
          [displayVideoActions]="displayVideoActions" [displayOptions]="displayOptions"
          (videoBlocked)="removeVideoFromArray(video)" (videoRemoved)="removeVideoFromArray(video)"
        >
        </my-video-miniature>
      </div>
    </ng-container>
  </div>
</div>