]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/shared/shared-moderation/server-blocklist.component.html
Refactor search filters
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-moderation / server-blocklist.component.html
1 <h1>
2 <my-global-icon iconName="peertube-x" aria-hidden="true"></my-global-icon>
3 <ng-container i18n>Muted servers</ng-container>
4 </h1>
5
6 <p-table
7 [value]="blockedServers" [paginator]="totalRecords > 0" [totalRecords]="totalRecords" [rows]="rowsPerPage" [rowsPerPageOptions]="rowsPerPageOptions"
8 [sortField]="sort.field" [sortOrder]="sort.order" (onPage)="onPage($event)"
9 [lazy]="true" (onLazyLoad)="loadLazy($event)" [lazyLoadOnInit]="false"
10 [showCurrentPageReport]="true" i18n-currentPageReportTemplate
11 currentPageReportTemplate="Showing {{'{first}'}} to {{'{last}'}} of {{'{totalRecords}'}} muted instances"
12 >
13 <ng-template pTemplate="caption">
14 <div class="caption">
15 <div class="left-buttons">
16 <a class="block-button" (click)="addServersToBlock()" (key.enter)="addServersToBlock()">
17 <my-global-icon iconName="add" aria-hidden="true"></my-global-icon>
18 <ng-container i18n>Mute domain</ng-container>
19 </a>
20 </div>
21
22 <div class="ml-auto">
23 <my-advanced-input-filter (search)="onSearch($event)"></my-advanced-input-filter>
24 </div>
25 </div>
26 </ng-template>
27
28 <ng-template pTemplate="header">
29 <tr>
30 <th style="width: 150px;" i18n>Action</th> <!-- column for action buttons -->
31 <th style="width: calc(100% - 300px);" i18n>Instance</th>
32 <th style="width: 150px;" i18n pSortableColumn="createdAt">Muted at <p-sortIcon field="createdAt"></p-sortIcon></th>
33 </tr>
34 </ng-template>
35
36 <ng-template pTemplate="body" let-serverBlock>
37 <tr>
38 <td class="action-cell">
39 <button class="unblock-button" (click)="unblockServer(serverBlock)" i18n>Unmute</button>
40 </td>
41 <td>
42 <a [href]="'https://' + serverBlock.blockedServer.host" i18n-title title="Open instance in a new tab" target="_blank" rel="noopener noreferrer">
43 {{ serverBlock.blockedServer.host }}
44 <span class="glyphicon glyphicon-new-window"></span>
45 </a>
46 </td>
47 <td>{{ serverBlock.createdAt | date: 'short' }}</td>
48 </tr>
49 </ng-template>
50
51 <ng-template pTemplate="emptymessage">
52 <tr>
53 <td colspan="6">
54 <div class="no-results">
55 <ng-container *ngIf="search" i18n>No server found matching current filters.</ng-container>
56 <ng-container *ngIf="!search" i18n>No server found.</ng-container>
57 </div>
58 </td>
59 </tr>
60 </ng-template>
61 </p-table>
62
63 <my-batch-domains-modal #batchDomainsModal i18n-action action="Mute domains" (domains)="onDomainsToBlock($event)"></my-batch-domains-modal>