X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fvideos%2F%2Bvideo-edit%2Fvideo-update.component.ts;h=de34555abc47a5f73c1582e4200993497bd6f8fb;hb=68e24d727969a73a13e3c29b4d3bcfe50c3c52be;hp=7f41b56d8ab8771718e5b372025774bdb8825f0c;hpb=ce5496d6a31b9617aba67970f5dc135e73335234;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/videos/+video-edit/video-update.component.ts b/client/src/app/videos/+video-edit/video-update.component.ts index 7f41b56d8..de34555ab 100644 --- a/client/src/app/videos/+video-edit/video-update.component.ts +++ b/client/src/app/videos/+video-edit/video-update.component.ts @@ -1,6 +1,7 @@ import { Component, OnInit } from '@angular/core' import { FormBuilder, FormGroup } from '@angular/forms' import { ActivatedRoute, Router } from '@angular/router' +import { LoadingBarService } from '@ngx-loading-bar/core' import { NotificationsService } from 'angular2-notifications' import 'rxjs/add/observable/forkJoin' import { VideoPrivacy } from '../../../../../shared/models/videos' @@ -21,6 +22,7 @@ import { VideoService } from '../../shared/video/video.service' export class VideoUpdateComponent extends FormReactive implements OnInit { video: VideoEdit + isUpdatingVideo = false form: FormGroup formErrors: { [ id: string ]: string } = {} validationMessages: ValidatorMessage = {} @@ -34,7 +36,8 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { private notificationsService: NotificationsService, private serverService: ServerService, private videoService: VideoService, - private authService: AuthService + private authService: AuthService, + private loadingBar: LoadingBarService ) { super() } @@ -48,11 +51,10 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { this.buildForm() this.serverService.videoPrivaciesLoaded - .subscribe( - () => this.videoPrivacies = this.serverService.getVideoPrivacies() - ) + .subscribe(() => this.videoPrivacies = this.serverService.getVideoPrivacies()) populateAsyncUserVideoChannels(this.authService, this.userVideoChannels) + .catch(err => console.error('Cannot populate async user video channels.', err)) const uuid: string = this.route.snapshot.params['uuid'] this.videoService.getVideo(uuid) @@ -99,14 +101,19 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { this.video.patch(this.form.value) + this.loadingBar.start() + this.isUpdatingVideo = true this.videoService.updateVideo(this.video) .subscribe( () => { + this.isUpdatingVideo = false + this.loadingBar.complete() this.notificationsService.success('Success', 'Video updated.') this.router.navigate([ '/videos/watch', this.video.uuid ]) }, err => { + this.isUpdatingVideo = false this.notificationsService.error('Error', err.message) console.error(err) } @@ -116,5 +123,26 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { private hydrateFormFromVideo () { this.form.patchValue(this.video.toJSON()) + + const objects = [ + { + url: 'thumbnailUrl', + name: 'thumbnailfile' + }, + { + url: 'previewUrl', + name: 'previewfile' + } + ] + + for (const obj of objects) { + fetch(this.video[obj.url]) + .then(response => response.blob()) + .then(data => { + this.form.patchValue({ + [ obj.name ]: data + }) + }) + } } }