2 <my-global-icon iconName=
"videos" aria-hidden=
"true"></my-global-icon>
3 <ng-container i18n
>Videos
</ng-container>
7 [value]=
"videos" [paginator]=
"totalRecords > 0" [totalRecords]=
"totalRecords" [rows]=
"rowsPerPage" [first]=
"pagination.start"
8 [rowsPerPageOptions]=
"rowsPerPageOptions" [sortField]=
"sort.field" [sortOrder]=
"sort.order" dataKey=
"id" [resizableColumns]=
"true"
9 [(selection)]=
"selectedRows" [lazy]=
"true" (onLazyLoad)=
"loadLazy($event)" [lazyLoadOnInit]=
"false" [selectionPageOnly]=
"true"
10 [showCurrentPageReport]=
"true" i18n-currentPageReportTemplate
11 currentPageReportTemplate=
"Showing {{'{first}'}} to {{'{last}'}} of {{'{totalRecords}'}} videos"
12 [expandedRowKeys]=
"expandedRows" [ngClass]=
"{ loading: loading }"
14 <ng-template pTemplate=
"caption">
16 <div class=
"left-buttons">
18 *
ngIf=
"isInSelectionMode()" i18n-label
label=
"Batch actions" theme=
"orange"
19 [actions]=
"bulkActions" [entry]=
"selectedRows"
24 <div class=
"ms-auto right-form">
25 <my-advanced-input-filter [filters]=
"inputFilters" (search)=
"onSearch($event)"></my-advanced-input-filter>
27 <my-button i18n-label
label=
"Refresh" icon=
"refresh" (click)=
"reloadData()"></my-button>
33 <ng-template pTemplate=
"header">
35 <th style=
"width: 40px">
36 <p-tableHeaderCheckbox ariaLabel=
"Select all rows" i18n-ariaLabel
></p-tableHeaderCheckbox>
38 <th style=
"width: 40px"></th>
39 <th style=
"width: 70px;"></th>
43 <th style=
"width: 150px;" i18n
pSortableColumn=
"publishedAt">Published
<p-sortIcon field=
"publishedAt"></p-sortIcon></th>
47 <ng-template pTemplate=
"body" let-expanded=
"expanded" let-video
>
49 <tr [pSelectableRow]=
"video">
50 <td class=
"checkbox-cell">
51 <p-tableCheckbox [value]=
"video" ariaLabel=
"Select this row" i18n-ariaLabel
></p-tableCheckbox>
54 <td class=
"expand-cell" [pRowToggler]=
"video">
55 <my-table-expander-icon [expanded]=
"expanded"></my-table-expander-icon>
58 <td class=
"action-cell">
59 <my-video-actions-dropdown
60 placement=
"bottom auto" buttonDirection=
"horizontal" [buttonStyled]=
"true" [video]=
"video" [displayOptions]=
"videoActionsOptions"
61 (videoRemoved)=
"reloadData()" (videoFilesRemoved)=
"reloadData()" (transcodingCreated)=
"reloadData()"
62 ></my-video-actions-dropdown>
66 <my-video-cell [video]=
"video"></my-video-cell>
70 <span class=
"pt-badge badge-blue" *
ngIf=
"video.isLocal">Local
</span>
71 <span class=
"pt-badge badge-purple" *
ngIf=
"!video.isLocal">Remote
</span>
73 <span [ngClass]=
"getPrivacyBadgeClass(video)" class=
"pt-badge">{{ video.privacy.label }}
</span>
75 <span *
ngIf=
"video.nsfw" class=
"pt-badge badge-red" i18n
>NSFW
</span>
77 <span *
ngIf=
"isUnpublished(video)" class=
"pt-badge badge-yellow" i18n
>{{ video.state.label }}
</span>
79 <span *
ngIf=
"isAccountBlocked(video)" class=
"pt-badge badge-red" i18n
>Account muted
</span>
80 <span *
ngIf=
"isServerBlocked(video)" class=
"pt-badge badge-red" i18n
>Server muted
</span>
82 <span *
ngIf=
"isVideoBlocked(video)" class=
"pt-badge badge-red" i18n
>Blocked
</span>
86 <span *
ngIf=
"isHLS(video)" class=
"pt-badge badge-blue">HLS
</span>
87 <span *
ngIf=
"isWebTorrent(video)" class=
"pt-badge badge-blue">WebTorrent ({{ video.files.length }})
</span>
88 <span i18n *
ngIf=
"video.isLive" class=
"pt-badge badge-blue">Live
</span>
89 <span i18n *
ngIf=
"hasObjectStorage(video)" class=
"pt-badge badge-purple">Object storage
</span>
91 <span *
ngIf=
"!isImport(video) && !video.isLive && video.isLocal">{{ getFilesSize(video) | bytes:
1 }}
</span>
95 {{ video.publishedAt | date: 'short' }}
101 <ng-template pTemplate=
"rowexpansion" let-video
>
103 <td class=
"video-info expand-cell" myAutoColspan
>
105 <div *
ngIf=
"isWebTorrent(video)">
109 <li *
ngFor=
"let file of video.files">
110 <a target=
"_blank" rel=
"noopener noreferrer" [href]=
"file.fileUrl">{{ file.resolution.label }}
</a>: {{ file.size | bytes:
1 }}
113 *
ngIf=
"canRemoveOneFile(video)"
114 i18n-ngbTooltip
ngbTooltip=
"Delete this file" iconName=
"delete" role=
"button"
115 (click)=
"removeVideoFile(video, file, 'webtorrent')"
121 <div *
ngIf=
"isHLS(video)">
125 <li *
ngFor=
"let file of video.streamingPlaylists[0].files">
126 <a target=
"_blank" rel=
"noopener noreferrer" [href]=
"file.fileUrl">{{ file.resolution.label }}
</a>: {{ file.size | bytes:
1 }}
129 *
ngIf=
"canRemoveOneFile(video)"
130 i18n-ngbTooltip
ngbTooltip=
"Delete this file" iconName=
"delete" role=
"button"
131 (click)=
"removeVideoFile(video, file, 'hls')"
137 <my-embed class=
"ms-auto" [video]=
"video"></my-embed>
144 <my-video-block #videoBlockModal (videoBlocked)=
"reloadData()"></my-video-block>