VIDEO_LANGUAGE,
VIDEO_DESCRIPTION,
VIDEO_TAGS,
- VIDEO_FILE
+ VIDEO_CHANNEL,
+ VIDEO_FILE,
+ VIDEO_PRIVACY
} from '../../shared'
-import { ServerService} from '../../core'
+import { AuthService, ServerService } from '../../core'
import { VideoService } from '../shared'
import { VideoCreate } from '../../../../../shared'
import { HttpEventType, HttpResponse } from '@angular/common/http'
videoCategories = []
videoLicences = []
videoLanguages = []
+ videoPrivacies = []
+ userVideoChannels = []
tagValidators = VIDEO_TAGS.VALIDATORS
tagValidatorsMessages = VIDEO_TAGS.MESSAGES
form: FormGroup
formErrors = {
name: '',
+ privacy: '',
category: '',
licence: '',
language: '',
+ channelId: '',
description: '',
videofile: ''
}
validationMessages = {
name: VIDEO_NAME.MESSAGES,
+ privacy: VIDEO_PRIVACY.MESSAGES,
category: VIDEO_CATEGORY.MESSAGES,
licence: VIDEO_LICENCE.MESSAGES,
language: VIDEO_LANGUAGE.MESSAGES,
+ channelId: VIDEO_CHANNEL.MESSAGES,
description: VIDEO_DESCRIPTION.MESSAGES,
videofile: VIDEO_FILE.MESSAGES
}
private formBuilder: FormBuilder,
private router: Router,
private notificationsService: NotificationsService,
+ private authService: AuthService,
private serverService: ServerService,
private videoService: VideoService
) {
this.form = this.formBuilder.group({
name: [ '', VIDEO_NAME.VALIDATORS ],
nsfw: [ false ],
+ privacy: [ '', VIDEO_PRIVACY.VALIDATORS ],
category: [ '', VIDEO_CATEGORY.VALIDATORS ],
licence: [ '', VIDEO_LICENCE.VALIDATORS ],
language: [ '', VIDEO_LANGUAGE.VALIDATORS ],
+ channelId: [ '', VIDEO_CHANNEL.VALIDATORS ],
description: [ '', VIDEO_DESCRIPTION.VALIDATORS ],
videofile: [ '', VIDEO_FILE.VALIDATORS ],
tags: [ '' ]
this.videoCategories = this.serverService.getVideoCategories()
this.videoLicences = this.serverService.getVideoLicences()
this.videoLanguages = this.serverService.getVideoLanguages()
+ this.videoPrivacies = this.serverService.getVideoPrivacies()
this.buildForm()
+
+ this.authService.userInformationLoaded
+ .subscribe(
+ () => {
+ const user = this.authService.getUser()
+ if (!user) return
+
+ const videoChannels = user.videoChannels
+ if (Array.isArray(videoChannels) === false) return
+
+ this.userVideoChannels = videoChannels.map(v => ({ id: v.id, label: v.name }))
+
+ this.form.patchValue({ channelId: this.userVideoChannels[0].id })
+ }
+ )
}
// The goal is to keep reactive form validation (required field)
const formValue: VideoCreate = this.form.value
const name = formValue.name
+ const privacy = formValue.privacy
const nsfw = formValue.nsfw
const category = formValue.category
const licence = formValue.licence
const language = formValue.language
+ const channelId = formValue.channelId
const description = formValue.description
const tags = formValue.tags
const videofile = this.videofileInput.nativeElement.files[0]
const formData = new FormData()
formData.append('name', name)
+ formData.append('privacy', privacy.toString())
formData.append('category', '' + category)
formData.append('nsfw', '' + nsfw)
formData.append('licence', '' + licence)
+ formData.append('channelId', '' + channelId)
formData.append('videofile', videofile)
// Language is optional