1
0
Fork 0

add url field to download modal

This commit is contained in:
Rigel Kent 2018-09-23 19:43:41 +02:00
parent bc144e16ce
commit bb5d74289b
No known key found for this signature in database
GPG Key ID: EA12971B0E438F36
3 changed files with 38 additions and 9 deletions

View File

@ -5,10 +5,20 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="peertube-select-container"> <div class="form-group">
<select [(ngModel)]="resolutionId"> <div class="input-group input-group-sm">
<option *ngFor="let file of video.files" [value]="file.resolution.id">{{ file.resolution.label }}</option> <div class="input-group-prepend peertube-select-container">
</select> <select [(ngModel)]="resolutionId">
<option *ngFor="let file of video.files" [value]="file.resolution.id">{{ file.resolution.label }}</option>
</select>
</div>
<input #urlInput (click)="urlInput.select()" type="text" class="form-control input-sm readonly" readonly [value]="getLink()" />
<div class="input-group-append">
<button [ngxClipboard]="urlInput" (click)="activateCopiedMessage()" type="button" class="btn btn-outline-secondary">
<span class="glyphicon glyphicon-copy"></span>
</button>
</div>
</div>
</div> </div>
<div class="download-type"> <div class="download-type">

View File

@ -2,7 +2,13 @@
@import 'mixins'; @import 'mixins';
.peertube-select-container { .peertube-select-container {
@include peertube-select-container(130px); @include peertube-select-container(100px);
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
select {
height: inherit;
}
} }
.download-type { .download-type {

View File

@ -1,6 +1,8 @@
import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core' import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core'
import { VideoDetails } from '../../../shared/video/video-details.model' import { VideoDetails } from '../../../shared/video/video-details.model'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { I18n } from '@ngx-translate/i18n-polyfill'
import { NotificationsService } from 'angular2-notifications'
@Component({ @Component({
selector: 'my-video-download', selector: 'my-video-download',
@ -15,9 +17,11 @@ export class VideoDownloadComponent implements OnInit {
downloadType: 'direct' | 'torrent' | 'magnet' = 'torrent' downloadType: 'direct' | 'torrent' | 'magnet' = 'torrent'
resolutionId: number | string = -1 resolutionId: number | string = -1
constructor (private modalService: NgbModal) { constructor (
// empty private notificationsService: NotificationsService,
} private modalService: NgbModal,
private i18n: I18n
) { }
ngOnInit () { ngOnInit () {
this.resolutionId = this.video.files[0].resolution.id this.resolutionId = this.video.files[0].resolution.id
@ -28,6 +32,10 @@ export class VideoDownloadComponent implements OnInit {
} }
download () { download () {
window.location.assign(this.getLink())
}
getLink () {
// HTML select send us a string, so convert it to a number // HTML select send us a string, so convert it to a number
this.resolutionId = parseInt(this.resolutionId.toString(), 10) this.resolutionId = parseInt(this.resolutionId.toString(), 10)
@ -50,6 +58,11 @@ export class VideoDownloadComponent implements OnInit {
} }
} }
})() })()
window.location.assign(link)
return link
}
activateCopiedMessage () {
this.notificationsService.success(this.i18n('Success'), this.i18n('Copied'))
} }
} }