import { VideoCaptionAddModalComponent } from '@app/videos/+video-edit/shared/video-caption-add-modal.component'
import { VideoCaptionEdit } from '@app/shared/video-caption/video-caption-edit.model'
import { removeElementFromArray } from '@app/shared/misc/utils'
-import { VideoConstant } from '../../../../../../shared'
+import { VideoConstant, VideoPrivacy } from '../../../../../../shared'
@Component({
selector: 'my-video-edit',
@Input() form: FormGroup
@Input() formErrors: { [ id: string ]: string } = {}
@Input() validationMessages: FormReactiveValidationMessages = {}
- @Input() videoPrivacies: { id: number, label: string }[] = []
+ @Input() videoPrivacies: VideoConstant<VideoPrivacy>[] = []
@Input() userVideoChannels: { id: number, label: string, support: string }[] = []
@Input() schedulePublicationPossible = true
@Input() videoCaptions: VideoCaptionEdit[] = []
// So that it can be accessed in the template
readonly SPECIAL_SCHEDULED_PRIVACY = VideoEdit.SPECIAL_SCHEDULED_PRIVACY
- videoCategories: VideoConstant<string>[] = []
- videoLicences: VideoConstant<string>[] = []
+ videoCategories: VideoConstant<number>[] = []
+ videoLicences: VideoConstant<number>[] = []
videoLanguages: VideoConstant<string>[] = []
tagValidators: ValidatorFn[]
const defaultValues = {
nsfw: 'false',
commentsEnabled: 'true',
+ downloadingEnabled: 'true',
waitTranscoding: 'true',
tags: []
}
channelId: this.videoValidatorsService.VIDEO_CHANNEL,
nsfw: null,
commentsEnabled: null,
+ downloadingEnabled: null,
waitTranscoding: null,
category: this.videoValidatorsService.VIDEO_CATEGORY,
licence: this.videoValidatorsService.VIDEO_LICENCE,
// Replace existing caption?
if (existingCaption) {
Object.assign(existingCaption, caption, { action: 'CREATE' as 'CREATE' })
- return
+ } else {
+ this.videoCaptions.push(
+ Object.assign(caption, { action: 'CREATE' as 'CREATE' })
+ )
}
- this.videoCaptions.push(
- Object.assign(caption, { action: 'CREATE' as 'CREATE' })
- )
+ this.sortVideoCaptions()
}
async deleteCaption (caption: VideoCaptionEdit) {
this.videoCaptionAddModal.show()
}
+ private sortVideoCaptions () {
+ this.videoCaptions.sort((v1, v2) => {
+ if (v1.language.label < v2.language.label) return -1
+ if (v1.language.label === v2.language.label) return 0
+
+ return 1
+ })
+ }
+
private trackPrivacyChange () {
// We will update the "support" field depending on the channel
this.form.controls[ 'privacy' ]