X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fvideos%2F%2Bvideo-edit%2Fshared%2Fvideo-edit.component.ts;h=d0d5e2a2b0d3083fe6e8062f5631296328b10132;hb=f36da21e40104a50acb00132920b835240cebb38;hp=3ed7a4a1075afef9f6b7c92d9169c2482eab9a67;hpb=88108880bbdba473cfe36ecbebc1c3c4f972e102;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/videos/+video-edit/shared/video-edit.component.ts b/client/src/app/videos/+video-edit/shared/video-edit.component.ts index 3ed7a4a10..d0d5e2a2b 100644 --- a/client/src/app/videos/+video-edit/shared/video-edit.component.ts +++ b/client/src/app/videos/+video-edit/shared/video-edit.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core' +import { Component, Input, NgZone, OnDestroy, OnInit, ViewChild } from '@angular/core' import { FormArray, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms' import { ActivatedRoute, Router } from '@angular/router' import { FormReactiveValidationMessages, VideoValidatorsService } from '@app/shared' @@ -13,6 +13,7 @@ import { VideoCaptionAddModalComponent } from '@app/videos/+video-edit/shared/vi import { VideoCaptionEdit } from '@app/shared/video-caption/video-caption-edit.model' import { removeElementFromArray } from '@app/shared/misc/utils' import { VideoConstant, VideoPrivacy } from '../../../../../../shared' +import { VideoService } from '@app/shared/video/video.service' @Component({ selector: 'my-video-edit', @@ -23,17 +24,17 @@ export class VideoEditComponent implements OnInit, OnDestroy { @Input() form: FormGroup @Input() formErrors: { [ id: string ]: string } = {} @Input() validationMessages: FormReactiveValidationMessages = {} - @Input() videoPrivacies: VideoConstant[] = [] @Input() userVideoChannels: { id: number, label: string, support: string }[] = [] @Input() schedulePublicationPossible = true - @Input() videoCaptions: VideoCaptionEdit[] = [] + @Input() videoCaptions: (VideoCaptionEdit & { captionPath?: string })[] = [] @Input() waitTranscodingEnabled = true - @ViewChild('videoCaptionAddModal') videoCaptionAddModal: VideoCaptionAddModalComponent + @ViewChild('videoCaptionAddModal', { static: true }) videoCaptionAddModal: VideoCaptionAddModalComponent // So that it can be accessed in the template readonly SPECIAL_SCHEDULED_PRIVACY = VideoEdit.SPECIAL_SCHEDULED_PRIVACY + videoPrivacies: VideoConstant[] = [] videoCategories: VideoConstant[] = [] videoLicences: VideoConstant[] = [] videoLanguages: VideoConstant[] = [] @@ -45,6 +46,7 @@ export class VideoEditComponent implements OnInit, OnDestroy { calendarLocale: any = {} minScheduledDate = new Date() + myYearRange = '1880:' + (new Date()).getFullYear() calendarTimezone: string calendarDateFormat: string @@ -57,11 +59,13 @@ export class VideoEditComponent implements OnInit, OnDestroy { private formValidatorService: FormValidatorService, private videoValidatorsService: VideoValidatorsService, private videoCaptionService: VideoCaptionService, + private videoService: VideoService, private route: ActivatedRoute, private router: Router, private notifier: Notifier, private serverService: ServerService, - private i18nPrimengCalendarService: I18nPrimengCalendarService + private i18nPrimengCalendarService: I18nPrimengCalendarService, + private ngZone: NgZone ) { this.tagValidators = this.videoValidatorsService.VIDEO_TAGS.VALIDATORS this.tagValidatorsMessages = this.videoValidatorsService.VIDEO_TAGS.MESSAGES @@ -98,10 +102,10 @@ export class VideoEditComponent implements OnInit, OnDestroy { language: this.videoValidatorsService.VIDEO_LANGUAGE, description: this.videoValidatorsService.VIDEO_DESCRIPTION, tags: null, - thumbnailfile: null, previewfile: null, support: this.videoValidatorsService.VIDEO_SUPPORT, - schedulePublicationAt: this.videoValidatorsService.VIDEO_SCHEDULE_PUBLICATION_AT + schedulePublicationAt: this.videoValidatorsService.VIDEO_SCHEDULE_PUBLICATION_AT, + originallyPublishedAt: this.videoValidatorsService.VIDEO_ORIGINALLY_PUBLISHED_AT } this.formValidatorService.updateForm( @@ -130,9 +134,14 @@ export class VideoEditComponent implements OnInit, OnDestroy { this.videoLicences = this.serverService.getVideoLicences() this.videoLanguages = this.serverService.getVideoLanguages() - this.schedulerInterval = setInterval(() => this.minScheduledDate = new Date(), 1000 * 60) // Update every minute + const privacies = this.serverService.getVideoPrivacies() + this.videoPrivacies = this.videoService.explainedPrivacyLabels(privacies) this.initialVideoCaptions = this.videoCaptions.map(c => c.language.id) + + this.ngZone.runOutsideAngular(() => { + this.schedulerInterval = setInterval(() => this.minScheduledDate = new Date(), 1000 * 60) // Update every minute + }) } ngOnDestroy () { @@ -184,7 +193,7 @@ export class VideoEditComponent implements OnInit, OnDestroy { } private trackPrivacyChange () { - // We will update the "support" field depending on the channel + // We will update the schedule input and the wait transcoding checkbox validators this.form.controls[ 'privacy' ] .valueChanges .pipe(map(res => parseInt(res.toString(), 10)))