]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/+my-library/my-video-channel-syncs/my-video-channel-syncs.component.html
Bumped to version v5.2.1
[github/Chocobozzz/PeerTube.git] / client / src / app / +my-library / my-video-channel-syncs / my-video-channel-syncs.component.html
1 <div *ngIf="error" class="alert alert-danger">{{ error }}</div>
2
3 <h1>
4 <my-global-icon iconName="refresh" aria-hidden="true"></my-global-icon>
5 <ng-container i18n>My synchronizations</ng-container>
6 </h1>
7
8 <div *ngIf="!syncEnabled()">
9 <p class="muted" i18n>⚠️ The instance doesn't allow channel synchronization</p>
10 </div>
11
12 <p-table
13 *ngIf="syncEnabled()" [value]="channelSyncs" [lazy]="true"
14 [paginator]="totalRecords > 0" [totalRecords]="totalRecords" [rows]="rowsPerPage" [rowsPerPageOptions]="rowsPerPageOptions"
15 [first]="pagination.start" [sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)" dataKey="id"
16 [showCurrentPageReport]="true" i18n-currentPageReportTemplate
17 currentPageReportTemplate="Showing {{'{first}'}} to {{'{last}'}} of {{'{totalRecords}'}} synchronizations"
18 [expandedRowKeys]="expandedRows"
19 >
20 <ng-template pTemplate="caption">
21 <div class="caption">
22 <div class="left-buttons">
23 <a class="peertube-create-button" routerLink="{{ getSyncCreateLink() }}">
24 <my-global-icon iconName="add" aria-hidden="true"></my-global-icon>
25 <ng-container i18n>Add synchronization</ng-container>
26 </a>
27 </div>
28 </div>
29 </ng-template>
30
31 <ng-template pTemplate="header">
32 <tr>
33 <th style="width: 10%"></th>
34 <th style="width: 25%" i18n pSortableColumn="externalChannelUrl">External Channel <p-sortIcon field="externalChannelUrl"></p-sortIcon></th>
35 <th style="width: 25%" i18n pSortableColumn="videoChannel">Channel <p-sortIcon field="videoChannel"></p-sortIcon></th>
36 <th style="width: 10%" i18n pSortableColumn="state">State <p-sortIcon field="state"></p-sortIcon></th>
37 <th style="width: 10%" i18n pSortableColumn="createdAt">Created <p-sortIcon field="createdAt"></p-sortIcon></th>
38 <th style="width: 10%" i18n pSortableColumn="lastSyncAt">Last synchronization at <p-sortIcon field="lastSyncAt"></p-sortIcon></th>
39 </tr>
40 </ng-template>
41
42 <ng-template pTemplate="body" let-expanded="expanded" let-videoChannelSync>
43 <tr>
44 <td class="action-cell">
45 <my-action-dropdown
46 container="body"
47 [actions]="videoChannelSyncActions" [entry]="videoChannelSync"
48 ></my-action-dropdown>
49 </td>
50
51 <td>
52 <a [href]="videoChannelSync.externalChannelUrl" target="_blank" rel="noopener noreferrer">{{ videoChannelSync.externalChannelUrl }}</a>
53 </td>
54
55 <td>
56 <div class="actor">
57 <my-actor-avatar
58 class="channel"
59 [actor]="videoChannelSync.channel" actorType="channel"
60 [internalHref]="[ '/c', videoChannelSync.channel.name ]"
61 size="25"
62 ></my-actor-avatar>
63
64 <div class="actor-info">
65 <a [routerLink]="[ '/c', videoChannelSync.channel.name ]" class="actor-names" i18n-title title="Channel page">
66 <div class="actor-display-name">{{ videoChannelSync.channel.displayName }}</div>
67 <div class="actor-name">{{ videoChannelSync.channel.name }}</div>
68 </a>
69 </div>
70 </div>
71 </td>
72
73 <td>
74 <span [ngClass]="getSyncStateClass(videoChannelSync.state.id)">
75 {{ videoChannelSync.state.label }}
76 </span>
77 </td>
78
79 <td>{{ videoChannelSync.createdAt | date: 'short' }}</td>
80 <td>{{ videoChannelSync.lastSyncAt | date: 'short' }}</td>
81 </tr>
82 </ng-template>
83 </p-table>