Issue #196 : Allow to cancel an upload (#221)

* issue #196

* fixed missattribution of var

* fix styling issue

* renamed videoUpload to videoUploadObservable

* added created path to gitignore

* changed uploadCancel method name to cancelUpload
pull/213/merge
Dimitri Gilbert 2018-01-23 15:01:38 +01:00 committed by Chocobozzz
parent f8b8c36b2a
commit 8c4890cbfe
3 changed files with 28 additions and 4 deletions

5
.gitignore vendored
View File

@ -17,3 +17,8 @@
peertube.zip
/profiling/
/*.zip
thumbnails/
torrents/
videos/
previews/
logs/

View File

@ -32,10 +32,15 @@
</div>
</div>
<p-progressBar
*ngIf="isUploadingVideo" [value]="videoUploadPercents"
<div
*ngIf="isUploadingVideo"
>
<p-progressBar
[value]="videoUploadPercents"
[ngClass]="{ processing: videoUploadPercents === 100 && videoUploaded === false }"
></p-progressBar>
></p-progressBar>
<input type="button" value="Cancel" (click)="cancelUpload()" />
</div>
<!-- Hidden because we need to load the component -->
<form [hidden]="!isUploadingVideo" novalidate [formGroup]="form">

View File

@ -27,6 +27,7 @@ export class VideoAddComponent extends FormReactive implements OnInit {
isUploadingVideo = false
videoUploaded = false
videoUploadObservable = null
videoUploadPercents = 0
videoUploadedIds = {
id: 0,
@ -93,6 +94,16 @@ export class VideoAddComponent extends FormReactive implements OnInit {
return this.form.valid
}
cancelUpload () {
if (this.videoUploadObservable !== null) {
this.videoUploadObservable.unsubscribe()
this.isUploadingVideo = false
this.videoUploadPercents = 0
this.notificationsService.error('Error', 'Upload cancelled')
this.videoUploadObservable = null
}
}
uploadFirstStep () {
const videofile = this.videofileInput.nativeElement.files[0]
if (!videofile) return
@ -132,7 +143,7 @@ export class VideoAddComponent extends FormReactive implements OnInit {
channelId
})
this.videoService.uploadVideo(formData).subscribe(
this.videoUploadObservable = this.videoService.uploadVideo(formData).subscribe(
event => {
if (event.type === HttpEventType.UploadProgress) {
this.videoUploadPercents = Math.round(100 * event.loaded / event.total)
@ -142,6 +153,8 @@ export class VideoAddComponent extends FormReactive implements OnInit {
this.videoUploaded = true
this.videoUploadedIds = event.body.video
this.videoUploadObservable = null
}
},
@ -149,6 +162,7 @@ export class VideoAddComponent extends FormReactive implements OnInit {
// Reset progress
this.isUploadingVideo = false
this.videoUploadPercents = 0
this.videoUploadObservable = null
this.notificationsService.error('Error', err.message)
}
)