mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			Fix wait transcoding checkbox display
							parent
							
								
									e08ff02a9f
								
							
						
					
					
						commit
						ddb62a85c5
					
				| 
						 | 
				
			
			@ -136,7 +136,7 @@
 | 
			
		|||
              </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>
 | 
			
		||||
| 
						 | 
				
			
			@ -347,5 +347,5 @@
 | 
			
		|||
</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>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,22 +96,6 @@ export class VideoEditComponent implements OnInit, OnDestroy {
 | 
			
		|||
    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',
 | 
			
		||||
| 
						 | 
				
			
			@ -217,6 +201,12 @@ export class VideoEditComponent implements OnInit, OnDestroy {
 | 
			
		|||
    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)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,7 +36,7 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -137,6 +137,10 @@ export class VideoGoLiveComponent extends VideoSend implements OnInit, CanCompon
 | 
			
		|||
    return this.serverConfig.live.maxDuration / 1000
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  isWaitTranscodingEnabled () {
 | 
			
		||||
    return this.form.value['saveReplay'] === true
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private fetchVideoLive () {
 | 
			
		||||
    this.liveVideoService.getVideoLive(this.videoId)
 | 
			
		||||
      .subscribe(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -84,7 +84,7 @@
 | 
			
		|||
  <my-video-edit
 | 
			
		||||
    [form]="form" [formErrors]="formErrors" [videoCaptions]="videoCaptions"
 | 
			
		||||
    [validationMessages]="validationMessages" [userVideoChannels]="userVideoChannels"
 | 
			
		||||
    [waitTranscodingEnabled]="waitTranscodingEnabled"
 | 
			
		||||
    [waitTranscodingEnabled]="true"
 | 
			
		||||
    type="upload"
 | 
			
		||||
  ></my-video-edit>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,7 +44,6 @@ export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy
 | 
			
		|||
  }
 | 
			
		||||
  formData: FormData
 | 
			
		||||
 | 
			
		||||
  waitTranscodingEnabled = true
 | 
			
		||||
  previewfileUpload: File
 | 
			
		||||
 | 
			
		||||
  error: string
 | 
			
		||||
| 
						 | 
				
			
			@ -163,11 +162,6 @@ export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy
 | 
			
		|||
    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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@
 | 
			
		|||
    <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>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,6 +17,7 @@ import { hydrateFormFromVideo } from './shared/video-edit-utils'
 | 
			
		|||
})
 | 
			
		||||
export class VideoUpdateComponent extends FormReactive implements OnInit {
 | 
			
		||||
  video: VideoEdit
 | 
			
		||||
  videoDetails: VideoDetails
 | 
			
		||||
  userVideoChannels: SelectChannelItem[] = []
 | 
			
		||||
  videoCaptions: VideoCaptionEdit[] = []
 | 
			
		||||
  liveVideo: LiveVideo
 | 
			
		||||
| 
						 | 
				
			
			@ -47,17 +48,14 @@ export class VideoUpdateComponent extends FormReactive implements OnInit {
 | 
			
		|||
        .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)
 | 
			
		||||
| 
						 | 
				
			
			@ -106,6 +104,18 @@ export class VideoUpdateComponent extends FormReactive implements OnInit {
 | 
			
		|||
    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) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue