X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fvideos%2Fvideo-add%2Fvideo-add.component.ts;h=cd6bb99892ca2752cff29a3ed920131f4dc377ce;hb=2d7653dc8726185615bab66353c4e3fb8fbb5a5f;hp=b7bf1534f9ee13b5c6c446d1b3e423e60f10537d;hpb=464853031832d39eb42807436b4b714798fcb729;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/videos/video-add/video-add.component.ts b/client/src/app/videos/video-add/video-add.component.ts index b7bf1534f..cd6bb9989 100644 --- a/client/src/app/videos/video-add/video-add.component.ts +++ b/client/src/app/videos/video-add/video-add.component.ts @@ -3,8 +3,10 @@ import { FormBuilder, FormGroup } from '@angular/forms'; import { Router } from '@angular/router'; import { FileUploader } from 'ng2-file-upload/ng2-file-upload'; +import { NotificationsService } from 'angular2-notifications'; -import { AuthService, FormReactive, VIDEO_NAME, VIDEO_DESCRIPTION, VIDEO_TAGS } from '../../shared'; +import { AuthService } from '../../core'; +import { FormReactive, VIDEO_NAME, VIDEO_DESCRIPTION, VIDEO_TAGS } from '../../shared'; @Component({ selector: 'my-videos-add', @@ -29,11 +31,16 @@ export class VideoAddComponent extends FormReactive implements OnInit { currentTag: VIDEO_TAGS.MESSAGES }; + // Special error messages + tagsError = ''; + fileError = ''; + constructor( private authService: AuthService, private elementRef: ElementRef, private formBuilder: FormBuilder, - private router: Router + private router: Router, + private notificationsService: NotificationsService ) { super(); } @@ -56,30 +63,6 @@ export class VideoAddComponent extends FormReactive implements OnInit { this.form.valueChanges.subscribe(data => this.onValueChanged(data)); } - getInvalidFieldsTitle() { - let title = ''; - const nameControl = this.form.controls['name']; - const descriptionControl = this.form.controls['description']; - - if (!nameControl.valid) { - title += 'A name is required\n'; - } - - if (this.tags.length === 0) { - title += 'At least one tag is required\n'; - } - - if (this.filename === null) { - title += 'A file is required\n'; - } - - if (!descriptionControl.valid) { - title += 'A description is required\n'; - } - - return title; - } - ngOnInit() { this.uploader = new FileUploader({ authToken: this.authService.getRequestHeaderValue(), @@ -103,6 +86,24 @@ export class VideoAddComponent extends FormReactive implements OnInit { this.buildForm(); } + checkForm() { + this.forceCheck(); + + if (this.tags.length === 0) { + this.tagsError = 'You have 0 tags'; + } + + if (this.filename === null) { + this.fileError = 'You did not add a file.'; + } + + return this.form.valid === true && this.tagsError === '' && this.fileError === ''; + } + + fileChanged() { + this.fileError = ''; + } + onTagKeyPress(event: KeyboardEvent) { const currentTag = this.form.value['currentTag']; @@ -120,6 +121,8 @@ export class VideoAddComponent extends FormReactive implements OnInit { if (this.tags.length >= 3) { this.form.get('currentTag').disable(); } + + this.tagsError = ''; } } } @@ -134,6 +137,10 @@ export class VideoAddComponent extends FormReactive implements OnInit { } upload() { + if (this.checkForm() === false) { + return; + } + const item = this.uploader.queue[0]; // TODO: wait for https://github.com/valor-software/ng2-file-upload/pull/242 item.alias = 'videofile'; @@ -146,6 +153,8 @@ export class VideoAddComponent extends FormReactive implements OnInit { clearInterval(interval); console.log('Video uploaded.'); + this.notificationsService.success('Success', 'Video uploaded.'); + // Print all the videos once it's finished this.router.navigate(['/videos/list']);