Cleanup video update component
This commit is contained in:
parent
382258676c
commit
0ba9696c01
|
@ -63,6 +63,7 @@ export class VideoEditComponent implements OnInit, OnDestroy {
|
||||||
|
|
||||||
@ViewChild('videoCaptionAddModal', { static: true }) videoCaptionAddModal: VideoCaptionAddModalComponent
|
@ViewChild('videoCaptionAddModal', { static: true }) videoCaptionAddModal: VideoCaptionAddModalComponent
|
||||||
|
|
||||||
|
@Output() formBuilt = new EventEmitter<void>()
|
||||||
@Output() pluginFieldsAdded = new EventEmitter<void>()
|
@Output() pluginFieldsAdded = new EventEmitter<void>()
|
||||||
|
|
||||||
// So that it can be accessed in the template
|
// So that it can be accessed in the template
|
||||||
|
@ -154,6 +155,8 @@ export class VideoEditComponent implements OnInit, OnDestroy {
|
||||||
this.trackChannelChange()
|
this.trackChannelChange()
|
||||||
this.trackPrivacyChange()
|
this.trackPrivacyChange()
|
||||||
this.trackLivePermanentFieldChange()
|
this.trackLivePermanentFieldChange()
|
||||||
|
|
||||||
|
this.formBuilt.emit()
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit () {
|
ngOnInit () {
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
[videoCaptions]="videoCaptions" [waitTranscodingEnabled]="isWaitTranscodingEnabled()"
|
[videoCaptions]="videoCaptions" [waitTranscodingEnabled]="isWaitTranscodingEnabled()"
|
||||||
type="update" (pluginFieldsAdded)="hydratePluginFieldsFromVideo()"
|
type="update" (pluginFieldsAdded)="hydratePluginFieldsFromVideo()"
|
||||||
[liveVideo]="liveVideo" [videoToUpdate]="videoDetails"
|
[liveVideo]="liveVideo" [videoToUpdate]="videoDetails"
|
||||||
|
|
||||||
|
(formBuilt)="onFormBuilt()"
|
||||||
></my-video-edit>
|
></my-video-edit>
|
||||||
|
|
||||||
<div class="submit-container">
|
<div class="submit-container">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { of } from 'rxjs'
|
import { of } from 'rxjs'
|
||||||
import { map, switchMap } from 'rxjs/operators'
|
import { switchMap } from 'rxjs/operators'
|
||||||
import { SelectChannelItem } from 'src/types/select-options-item.model'
|
import { SelectChannelItem } from 'src/types/select-options-item.model'
|
||||||
import { Component, HostListener, OnInit } from '@angular/core'
|
import { Component, HostListener, OnInit } from '@angular/core'
|
||||||
import { ActivatedRoute, Router } from '@angular/router'
|
import { ActivatedRoute, Router } from '@angular/router'
|
||||||
|
@ -45,37 +45,28 @@ export class VideoUpdateComponent extends FormReactive implements OnInit {
|
||||||
ngOnInit () {
|
ngOnInit () {
|
||||||
this.buildForm({})
|
this.buildForm({})
|
||||||
|
|
||||||
this.route.data
|
const { videoData } = this.route.snapshot.data
|
||||||
.pipe(map(data => data.videoData))
|
const { video, videoChannels, videoCaptions, liveVideo } = videoData
|
||||||
.subscribe({
|
|
||||||
next: ({ video, videoChannels, videoCaptions, liveVideo }) => {
|
|
||||||
this.video = new VideoEdit(video)
|
|
||||||
this.videoDetails = video
|
|
||||||
|
|
||||||
this.userVideoChannels = videoChannels
|
this.video = new VideoEdit(video)
|
||||||
this.videoCaptions = videoCaptions
|
this.videoDetails = video
|
||||||
this.liveVideo = liveVideo
|
|
||||||
|
|
||||||
this.schedulePublicationPossible = this.video.privacy === VideoPrivacy.PRIVATE
|
this.userVideoChannels = videoChannels
|
||||||
|
this.videoCaptions = videoCaptions
|
||||||
|
this.liveVideo = liveVideo
|
||||||
|
|
||||||
// FIXME: Angular does not detect the change inside this subscription, so use the patched setTimeout
|
this.schedulePublicationPossible = this.video.privacy === VideoPrivacy.PRIVATE
|
||||||
setTimeout(() => {
|
}
|
||||||
hydrateFormFromVideo(this.form, this.video, true)
|
|
||||||
|
|
||||||
if (this.liveVideo) {
|
onFormBuilt () {
|
||||||
this.form.patchValue({
|
hydrateFormFromVideo(this.form, this.video, true)
|
||||||
saveReplay: this.liveVideo.saveReplay,
|
|
||||||
permanentLive: this.liveVideo.permanentLive
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
error: err => {
|
if (this.liveVideo) {
|
||||||
console.error(err)
|
this.form.patchValue({
|
||||||
this.notifier.error(err.message)
|
saveReplay: this.liveVideo.saveReplay,
|
||||||
}
|
permanentLive: this.liveVideo.permanentLive
|
||||||
})
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@HostListener('window:beforeunload', [ '$event' ])
|
@HostListener('window:beforeunload', [ '$event' ])
|
||||||
|
|
Loading…
Reference in New Issue