]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html
Bind expanded rows to item ids instead of row number
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / moderation / video-blacklist-list / video-blacklist-list.component.html
1 <p-table
2 [value]="blacklist" [lazy]="true" [paginator]="totalRecords > 0" [totalRecords]="totalRecords" [rows]="rowsPerPage" [rowsPerPageOptions]="rowsPerPageOptions"
3 [sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)" dataKey="id"
4 [showCurrentPageReport]="true" i18n-currentPageReportTemplate
5 currentPageReportTemplate="Showing {{'{first}'}} to {{'{last}'}} of {{'{totalRecords}'}} blacklisted videos"
6 (onPage)="onPage()" [expandedRowKeys]="expandedRows"
7 >
8 <ng-template pTemplate="caption">
9 <div class="caption">
10 <div class="ml-auto">
11 <input
12 type="text" name="table-filter" id="table-filter" i18n-placeholder placeholder="Filter..."
13 (keyup)="onSearch($event)"
14 >
15 </div>
16 </div>
17 </ng-template>
18
19 <ng-template pTemplate="header">
20 <tr>
21 <th style="width: 40px"></th>
22 <th i18n pSortableColumn="name">Video <p-sortIcon field="name"></p-sortIcon></th>
23 <th style="width: 100px;" i18n>Sensitive</th>
24 <th style="width: 120px;" i18n>Unfederated</th>
25 <th style="width: 140px;" i18n pSortableColumn="createdAt">Date <p-sortIcon field="createdAt"></p-sortIcon></th>
26 <th style="width: 120px;"></th>
27 </tr>
28 </ng-template>
29
30 <ng-template pTemplate="body" let-videoBlacklist let-expanded="expanded">
31 <tr>
32 <td *ngIf="!videoBlacklist.reason"></td>
33 <td *ngIf="videoBlacklist.reason" class="expand-cell c-hand" [pRowToggler]="videoBlacklist" i18n-ngbTooltip ngbTooltip="More information" placement="top-left" container="body">
34 <span class="expander">
35 <i [ngClass]="expanded ? 'glyphicon glyphicon-menu-down' : 'glyphicon glyphicon-menu-right'"></i>
36 </span>
37 </td>
38
39 <td>
40 <a [href]="getVideoUrl(videoBlacklist)" class="video-table-video-link" i18n-title title="Open video in a new tab" target="_blank" rel="noopener noreferrer">
41 <div class="video-table-video">
42 <div class="video-table-video-image">
43 <img [src]="videoBlacklist.video.thumbnailPath">
44 </div>
45 <div class="video-table-video-text">
46 <div>
47 {{ videoBlacklist.video.name }}
48 <span i18n-title title="Video was blacklisted" class="glyphicon glyphicon-ban-circle"></span>
49 </div>
50 <div class="text-muted">by {{ videoBlacklist.video.channel?.displayName }} on {{ videoBlacklist.video.channel?.host }} </div>
51 </div>
52 </div>
53 </a>
54 </td>
55
56 <ng-container *ngIf="videoBlacklist.reason">
57 <td class="c-hand" [pRowToggler]="videoBlacklist">{{ booleanToText(videoBlacklist.video.nsfw) }}</td>
58 <td class="c-hand" [pRowToggler]="videoBlacklist">{{ booleanToText(videoBlacklist.unfederated) }}</td>
59 <td class="c-hand" [pRowToggler]="videoBlacklist">{{ videoBlacklist.createdAt | date: 'short' }}</td>
60 </ng-container>
61 <ng-container *ngIf="!videoBlacklist.reason">
62 <td>{{ booleanToText(videoBlacklist.video.nsfw) }}</td>
63 <td>{{ booleanToText(videoBlacklist.unfederated) }}</td>
64 <td>{{ videoBlacklist.createdAt | date: 'short' }}</td>
65 </ng-container>
66
67 <td class="action-cell">
68 <my-action-dropdown
69 [ngClass]="{ 'show': expanded }" placement="bottom-right" container="body"
70 i18n-label label="Actions" [actions]="videoBlacklistActions" [entry]="videoBlacklist"
71 ></my-action-dropdown>
72 </td>
73 </tr>
74 </ng-template>
75
76 <ng-template pTemplate="rowexpansion" let-videoBlacklist>
77 <tr>
78 <td class="expand-cell" colspan="6">
79 <div class="d-flex moderation-expanded">
80 <span class="col-2 moderation-expanded-label" i18n>Blacklist reason:</span>
81 <span class="col-9 moderation-expanded-text" [innerHTML]="videoBlacklist.reasonHtml"></span>
82 </div>
83 </td>
84 </tr>
85 </ng-template>
86
87 <ng-template pTemplate="emptymessage">
88 <tr>
89 <td colspan="6">
90 <div class="empty-table-message">
91 <ng-container *ngIf="search" i18n>No blacklisted video found matching current filters.</ng-container>
92 <ng-container *ngIf="!search" i18n>No blacklisted video found.</ng-container>
93 </div>
94 </td>
95 </tr>
96 </ng-template>
97 </p-table>
98