1 <ng-template #modal
let-hide=
"close">
2 <div class=
"modal-header">
3 <h4 class=
"modal-title">Download
4 <span *
ngIf=
"!videoCaptions" i18n
>video
</span>
6 <div *
ngIf=
"videoCaptions" ngbDropdown
class=
"d-inline-block">
7 <span id=
"dropdownDownloadType" ngbDropdownToggle
>
10 <div ngbDropdownMenu
aria-labelledby=
"dropdownDownloadType">
11 <button *
ngIf=
"type === 'video'" (click)=
"switchToType('subtitles')" ngbDropdownItem i18n
>subtitles
</button>
12 <button *
ngIf=
"type === 'subtitles'" (click)=
"switchToType('video')" ngbDropdownItem i18n
>video
</button>
16 <my-global-icon iconName=
"cross" aria-label=
"Close" role=
"button" (click)=
"hide()"></my-global-icon>
19 <div class=
"modal-body">
20 <div class=
"form-group">
21 <div class=
"input-group input-group-sm">
22 <div class=
"input-group-prepend peertube-select-container">
23 <select *
ngIf=
"type === 'video'" [(ngModel)]=
"resolutionId" (ngModelChange)=
"onResolutionIdChange()">
24 <option *
ngFor=
"let file of getVideoFiles()" [value]=
"file.resolution.id">{{ file.resolution.label }}
</option>
27 <select *
ngIf=
"type === 'subtitles'" [(ngModel)]=
"subtitleLanguageId">
28 <option *
ngFor=
"let caption of videoCaptions" [value]=
"caption.language.id">{{ caption.language.label }}
</option>
32 <input #urlInput (click)=
"urlInput.select()" type=
"text" class=
"form-control input-sm readonly" readonly [value]=
"getLink()" />
33 <div class=
"input-group-append">
34 <button [cdkCopyToClipboard]=
"urlInput.value" (click)=
"activateCopiedMessage()" type=
"button" class=
"btn btn-outline-secondary">
35 <span class=
"glyphicon glyphicon-copy"></span>
41 <ngb-tabset *
ngIf=
"type === 'video' && videoFile?.metadata">
43 <ng-template ngbTabTitle i18n
>Format
</ng-template>
44 <ng-template ngbTabContent
>
45 <div class=
"file-metadata">
46 <div class=
"metadata-attribute metadata-attribute-tags" *
ngFor=
"let item of videoFileMetadataFormat | keyvalue">
47 <span i18n
class=
"metadata-attribute-label">{{ item.value.label }}
</span>
48 <span class=
"metadata-attribute-value">{{ item.value.value }}
</span>
53 <ngb-tab [disabled]=
"videoFileMetadataVideoStream === undefined">
54 <ng-template ngbTabTitle i18n
>Video stream
</ng-template>
55 <ng-template ngbTabContent
>
56 <div class=
"file-metadata">
57 <div class=
"metadata-attribute metadata-attribute-tags" *
ngFor=
"let item of videoFileMetadataVideoStream | keyvalue">
58 <span i18n
class=
"metadata-attribute-label">{{ item.value.label }}
</span>
59 <span class=
"metadata-attribute-value">{{ item.value.value }}
</span>
64 <ngb-tab [disabled]=
"videoFileMetadataAudioStream === undefined">
65 <ng-template ngbTabTitle i18n
>Audio stream
</ng-template>
66 <ng-template ngbTabContent
>
67 <div class=
"file-metadata">
68 <div class=
"metadata-attribute metadata-attribute-tags" *
ngFor=
"let item of videoFileMetadataAudioStream | keyvalue">
69 <span i18n
class=
"metadata-attribute-label">{{ item.value.label }}
</span>
70 <span class=
"metadata-attribute-value">{{ item.value.value }}
</span>
77 <div class=
"download-type" *
ngIf=
"type === 'video'">
78 <div class=
"peertube-radio-container">
79 <input type=
"radio" name=
"download" id=
"download-direct" [(ngModel)]=
"downloadType" value=
"direct">
80 <label i18n
for=
"download-direct">Direct download
</label>
83 <div class=
"peertube-radio-container">
84 <input type=
"radio" name=
"download" id=
"download-torrent" [(ngModel)]=
"downloadType" value=
"torrent">
85 <label i18n
for=
"download-torrent">Torrent (.torrent file)
</label>
90 <div class=
"modal-footer inputs">
91 <span i18n
class=
"action-button action-button-cancel" (click)=
"hide()">
96 type=
"submit" i18n-value
value=
"Download" class=
"action-button-submit"