1 <ng-template #modal
let-hide=
"close">
2 <div class=
"modal-header">
3 <h4 class=
"modal-title">
4 <ng-container i18n
>Download
</ng-container>
6 <div *
ngIf=
"videoCaptions" ngbDropdown
class=
"d-inline-block ml-1">
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=
"alert alert-warning" *
ngIf=
"isConfidentialVideo()" i18n
>
21 The following link contains a private token and should not be shared with anyone.
24 <ng-container *
ngIf=
"type === 'subtitles'">
25 <div class=
"input-group input-group-sm">
26 <input #urlInput (click)=
"urlInput.select()" type=
"text" class=
"form-control input-sm readonly" readonly [value]=
"getLink()" />
27 <div class=
"input-group-append" *
ngIf=
"!isConfidentialVideo()">
28 <button [cdkCopyToClipboard]=
"urlInput.value" (click)=
"activateCopiedMessage()" type=
"button" class=
"btn btn-outline-secondary">
29 <span class=
"glyphicon glyphicon-duplicate"></span>
35 <ng-container *
ngIf=
"type === 'video'">
36 <div ngbNav #
resolutionNav=
"ngbNav" class=
"nav-tabs" [activeId]=
"resolutionId" (activeIdChange)=
"onResolutionIdChange($event)">
38 <ng-container *
ngFor=
"let file of getVideoFiles()" [ngbNavItem]=
"file.resolution.id">
39 <a ngbNavLink i18n
>{{ file.resolution.label }}
</a>
41 <ng-template ngbNavContent
>
42 <div class=
"nav-content">
43 <div class=
"input-group input-group-sm">
44 <input #urlInput (click)=
"urlInput.select()" type=
"text" class=
"form-control input-sm readonly" readonly [value]=
"getLink()" />
45 <div class=
"input-group-append" *
ngIf=
"!isConfidentialVideo()">
46 <button [cdkCopyToClipboard]=
"urlInput.value" (click)=
"activateCopiedMessage()" type=
"button" class=
"btn btn-outline-secondary">
47 <span class=
"glyphicon glyphicon-duplicate"></span>
55 <div [ngbNavOutlet]=
"resolutionNav"></div>
57 <div class=
"advanced-filters collapse-transition" [ngbCollapse]=
"isAdvancedCustomizationCollapsed">
58 <ng-container *
ngIf=
"videoFile?.metadata">
59 <div ngbNav #
nav=
"ngbNav" class=
"nav-tabs nav-metadata">
60 <ng-container ngbNavItem
>
61 <a ngbNavLink i18n
>Format
</a>
62 <ng-template ngbNavContent
>
63 <div class=
"file-metadata">
64 <div class=
"metadata-attribute metadata-attribute-tags" *
ngFor=
"let item of videoFileMetadataFormat | keyvalue">
65 <span i18n
class=
"metadata-attribute-label">{{ item.value.label }}
</span>
66 <span class=
"metadata-attribute-value">{{ item.value.value }}
</span>
71 <ng-container ngbNavItem [disabled]=
"videoFileMetadataVideoStream === undefined">
72 <a ngbNavLink i18n
>Video stream
</a>
73 <ng-template ngbNavContent
>
74 <div class=
"file-metadata">
75 <div class=
"metadata-attribute metadata-attribute-tags" *
ngFor=
"let item of videoFileMetadataVideoStream | keyvalue">
76 <span i18n
class=
"metadata-attribute-label">{{ item.value.label }}
</span>
77 <span class=
"metadata-attribute-value">{{ item.value.value }}
</span>
83 <ng-container ngbNavItem [disabled]=
"videoFileMetadataAudioStream === undefined">
84 <a ngbNavLink i18n
>Audio stream
</a>
85 <ng-template ngbNavContent
>
86 <div class=
"file-metadata">
87 <div class=
"metadata-attribute metadata-attribute-tags" *
ngFor=
"let item of videoFileMetadataAudioStream | keyvalue">
88 <span i18n
class=
"metadata-attribute-label">{{ item.value.label }}
</span>
89 <span class=
"metadata-attribute-value">{{ item.value.value }}
</span>
97 <div [ngbNavOutlet]=
"nav"></div>
98 <div class=
"download-type">
99 <div class=
"peertube-radio-container">
100 <input type=
"radio" name=
"download" id=
"download-direct" [(ngModel)]=
"downloadType" value=
"direct">
101 <label i18n
for=
"download-direct">Direct download
</label>
103 <div class=
"peertube-radio-container">
104 <input type=
"radio" name=
"download" id=
"download-torrent" [(ngModel)]=
"downloadType" value=
"torrent">
105 <label i18n
for=
"download-torrent">Torrent (.torrent file)
</label>
111 <div (click)=
"isAdvancedCustomizationCollapsed = !isAdvancedCustomizationCollapsed" role=
"button" class=
"advanced-filters-button"
112 [attr.aria-expanded]=
"!isAdvancedCustomizationCollapsed" aria-controls=
"collapseBasic">
113 <ng-container *
ngIf=
"isAdvancedCustomizationCollapsed">
114 <span class=
"glyphicon glyphicon-menu-down"></span>
121 <ng-container *
ngIf=
"!isAdvancedCustomizationCollapsed">
122 <span class=
"glyphicon glyphicon-menu-up"></span>
132 <div class=
"modal-footer inputs">
134 type=
"button" role=
"button" i18n-value
value=
"Cancel" class=
"action-button action-button-cancel"
135 (click)=
"hide()" (key.enter)=
"hide()"
139 type=
"submit" i18n-value
value=
"Download" class=
"action-button-submit"