]>
Commit | Line | Data |
---|---|---|
2a491182 F |
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" | |
c95fbe65 | 15 | [first]="pagination.start" [sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)" dataKey="id" |
2a491182 F |
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="add-sync" 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> | |
a3b472a1 | 33 | <th style="width: 10%"></th> |
2a491182 F |
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> |