</ng-template>
</my-peertube-checkbox>
- <my-peertube-checkbox *ngIf="isWaitTranscodingDisplayed()" inputName="waitTranscoding" formControlName="waitTranscoding" helpPlacement="bottom-right">
+ <my-peertube-checkbox *ngIf="waitTranscodingEnabled" inputName="waitTranscoding" formControlName="waitTranscoding" helpPlacement="bottom-right">
<ng-template ptTemplate="label">
<ng-container i18n>Publish after transcoding</ng-container>
</ng-template>
</div>
<my-video-caption-add-modal
- #videoCaptionAddModal [existingCaptions]="existingCaptions" [serverConfig]="serverConfig" (captionAdded)="onCaptionAdded($event)"
+ #videoCaptionAddModal [existingCaptions]="getExistingCaptions()" [serverConfig]="serverConfig" (captionAdded)="onCaptionAdded($event)"
></my-video-caption-add-modal>
this.calendarDateFormat = this.i18nPrimengCalendarService.getDateFormat()
}
- get existingCaptions () {
- return this.videoCaptions
- .filter(c => c.action !== 'REMOVE')
- .map(c => c.language.id)
- }
-
- isWaitTranscodingDisplayed () {
- if (!this.waitTranscodingEnabled) return false
-
- if (this.liveVideo) {
- return this.form.value['saveReplay'] === true
- }
-
- return true
- }
-
updateForm () {
const defaultValues: any = {
nsfw: 'false',
if (this.schedulerInterval) clearInterval(this.schedulerInterval)
}
+ getExistingCaptions () {
+ return this.videoCaptions
+ .filter(c => c.action !== 'REMOVE')
+ .map(c => c.language.id)
+ }
+
onCaptionAdded (caption: VideoCaptionEdit) {
const existingCaption = this.videoCaptions.find(c => c.language.id === caption.language.id)
<form [hidden]="!isInUpdateForm" novalidate [formGroup]="form">
<my-video-edit
[form]="form" [formErrors]="formErrors" [videoCaptions]="videoCaptions"
- [schedulePublicationPossible]="false" [waitTranscodingEnabled]="false"
+ [schedulePublicationPossible]="false" [waitTranscodingEnabled]="isWaitTranscodingEnabled()"
[validationMessages]="validationMessages" [userVideoChannels]="userVideoChannels" [liveVideo]="liveVideo"
type="go-live"
></my-video-edit>
return this.serverConfig.live.maxDuration / 1000
}
+ isWaitTranscodingEnabled () {
+ return this.form.value['saveReplay'] === true
+ }
+
private fetchVideoLive () {
this.liveVideoService.getVideoLive(this.videoId)
.subscribe(
<my-video-edit
[form]="form" [formErrors]="formErrors" [videoCaptions]="videoCaptions"
[validationMessages]="validationMessages" [userVideoChannels]="userVideoChannels"
- [waitTranscodingEnabled]="waitTranscodingEnabled"
+ [waitTranscodingEnabled]="true"
type="upload"
></my-video-edit>
}
formData: FormData
- waitTranscodingEnabled = true
previewfileUpload: File
error: string
if (nameWithoutExtension.length < 3) name = videofile.name
else name = nameWithoutExtension
- // Force user to wait transcoding for unsupported video types in web browsers
- if (!videofile.name.endsWith('.mp4') && !videofile.name.endsWith('.webm') && !videofile.name.endsWith('.ogv')) {
- this.waitTranscodingEnabled = false
- }
-
const nsfw = this.serverConfig.instance.isNSFW
const waitTranscoding = true
const commentsEnabled = true
<my-video-edit
[form]="form" [formErrors]="formErrors" [schedulePublicationPossible]="schedulePublicationPossible"
[validationMessages]="validationMessages" [userVideoChannels]="userVideoChannels"
- [videoCaptions]="videoCaptions" [waitTranscodingEnabled]="waitTranscodingEnabled"
+ [videoCaptions]="videoCaptions" [waitTranscodingEnabled]="isWaitTranscodingEnabled()"
type="update" (pluginFieldsAdded)="hydratePluginFieldsFromVideo()"
[liveVideo]="liveVideo"
></my-video-edit>
})
export class VideoUpdateComponent extends FormReactive implements OnInit {
video: VideoEdit
+ videoDetails: VideoDetails
userVideoChannels: SelectChannelItem[] = []
videoCaptions: VideoCaptionEdit[] = []
liveVideo: LiveVideo
.pipe(map(data => data.videoData))
.subscribe(({ video, videoChannels, videoCaptions, liveVideo }) => {
this.video = new VideoEdit(video)
+ this.videoDetails = video
+
this.userVideoChannels = videoChannels
this.videoCaptions = videoCaptions
this.liveVideo = liveVideo
this.schedulePublicationPossible = this.video.privacy === VideoPrivacy.PRIVATE
- const videoFiles = (video as VideoDetails).getFiles()
- if (videoFiles.length > 1) { // Already transcoded
- this.waitTranscodingEnabled = false
- }
-
// FIXME: Angular does not detect the change inside this subscription, so use the patched setTimeout
setTimeout(() => {
hydrateFormFromVideo(this.form, this.video, true)
return this.form.valid
}
+ isWaitTranscodingEnabled () {
+ if (this.videoDetails.getFiles().length > 1) { // Already transcoded
+ return false
+ }
+
+ if (this.liveVideo && this.form.value['saveReplay'] !== true) {
+ return false
+ }
+
+ return true
+ }
+
update () {
if (this.checkForm() === false
|| this.isUpdatingVideo === true) {