X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bvideos%2F%2Bvideo-edit%2Fvideo-add-components%2Fvideo-import-torrent.component.ts;h=62aaeb01926918f530813c996633df700975dd80;hb=a3f45a2ab3cadf0946f06a0539993b828becd516;hp=3a8e6eeccc5d1132cb9c97f653fe27457793028c;hpb=a02b93ce756d646a59cef57b5e4ff53c2bb30bec;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts index 3a8e6eecc..62aaeb019 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts @@ -1,13 +1,13 @@ -import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core' +import { AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core' import { Router } from '@angular/router' -import { AuthService, CanComponentDeactivate, Notifier, ServerService } from '@app/core' +import { AuthService, CanComponentDeactivate, HooksService, Notifier, ServerService } from '@app/core' import { scrollToTop } from '@app/helpers' import { FormValidatorService } from '@app/shared/shared-forms' import { VideoCaptionService, VideoEdit, VideoImportService, VideoService } from '@app/shared/shared-main' -import { VideoSend } from './video-send' import { LoadingBarService } from '@ngx-loading-bar/core' -import { I18n } from '@ngx-translate/i18n-polyfill' -import { VideoPrivacy, VideoUpdate } from '@shared/models' +import { PeerTubeProblemDocument, ServerErrorCode, VideoPrivacy, VideoUpdate } from '@shared/models' +import { hydrateFormFromVideo } from '../shared/video-edit-utils' +import { VideoSend } from './video-send' @Component({ selector: 'my-video-import-torrent', @@ -18,7 +18,7 @@ import { VideoPrivacy, VideoUpdate } from '@shared/models' './video-send.scss' ] }) -export class VideoImportTorrentComponent extends VideoSend implements OnInit, CanComponentDeactivate { +export class VideoImportTorrentComponent extends VideoSend implements OnInit, AfterViewInit, CanComponentDeactivate { @Output() firstStepDone = new EventEmitter() @Output() firstStepError = new EventEmitter() @ViewChild('torrentfileInput') torrentfileInput: ElementRef @@ -32,8 +32,6 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Ca video: VideoEdit error: string - protected readonly DEFAULT_VIDEO_PRIVACY = VideoPrivacy.PUBLIC - constructor ( protected formValidatorService: FormValidatorService, protected loadingBar: LoadingBarService, @@ -44,8 +42,8 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Ca protected videoCaptionService: VideoCaptionService, private router: Router, private videoImportService: VideoImportService, - private i18n: I18n - ) { + private hooks: HooksService + ) { super() } @@ -53,6 +51,10 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Ca super.ngOnInit() } + ngAfterViewInit () { + this.hooks.runAction('action:video-torrent-import.init', 'video-edit') + } + canDeactivate () { return { canDeactivate: true } } @@ -77,7 +79,7 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Ca this.isImportingVideo = true const videoUpdate: VideoUpdate = { - privacy: this.firstStepPrivacyId, + privacy: this.highestPrivacy, waitTranscoding: false, commentsEnabled: true, downloadEnabled: true, @@ -96,19 +98,28 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Ca this.video = new VideoEdit(Object.assign(res.video, { commentsEnabled: videoUpdate.commentsEnabled, downloadEnabled: videoUpdate.downloadEnabled, + privacy: { id: this.firstStepPrivacyId }, support: null, thumbnailUrl: null, previewUrl: null })) - this.hydrateFormFromVideo() + hydrateFormFromVideo(this.form, this.video, false) }, err => { this.loadingBar.useRef().complete() this.isImportingVideo = false this.firstStepError.emit() - this.notifier.error(err.message) + + let message = err.message + + const error = err.body as PeerTubeProblemDocument + if (error?.code === ServerErrorCode.INCORRECT_FILES_IN_TORRENT) { + message = $localize`Torrents with only 1 file are supported.` + } + + this.notifier.error(message) } ) } @@ -127,9 +138,9 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Ca .subscribe( () => { this.isUpdatingVideo = false - this.notifier.success(this.i18n('Video to import updated.')) + this.notifier.success($localize`Video to import updated.`) - this.router.navigate([ '/my-account', 'video-imports' ]) + this.router.navigate([ '/my-library', 'video-imports' ]) }, err => { @@ -138,10 +149,5 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Ca console.error(err) } ) - - } - - private hydrateFormFromVideo () { - this.form.patchValue(this.video.toFormPatch()) } }