From: Chocobozzz Date: Mon, 6 Aug 2018 13:18:35 +0000 (+0200) Subject: video-import -> video-import-url X-Git-Tag: delete~48 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=047559af6e7570ac98b0d11ab43e60a9c5c1f5c3;p=oweals%2Fpeertube.git video-import -> video-import-url --- diff --git a/client/src/app/videos/+video-edit/video-add.component.html b/client/src/app/videos/+video-edit/video-add.component.html index 17d086fc6..7a50372e9 100644 --- a/client/src/app/videos/+video-edit/video-add.component.html +++ b/client/src/app/videos/+video-edit/video-add.component.html @@ -11,7 +11,7 @@ - + diff --git a/client/src/app/videos/+video-edit/video-add.component.ts b/client/src/app/videos/+video-edit/video-add.component.ts index 69b364ddd..377ea5dd2 100644 --- a/client/src/app/videos/+video-edit/video-add.component.ts +++ b/client/src/app/videos/+video-edit/video-add.component.ts @@ -1,6 +1,6 @@ import { Component, ViewChild } from '@angular/core' import { CanComponentDeactivate } from '@app/shared/guards/can-deactivate-guard.service' -import { VideoImportComponent } from '@app/videos/+video-edit/video-import.component' +import { VideoImportUrlComponent } from '@app/videos/+video-edit/video-import-url.component' import { VideoUploadComponent } from '@app/videos/+video-edit/video-upload.component' import { ServerService } from '@app/core' @@ -11,23 +11,23 @@ import { ServerService } from '@app/core' }) export class VideoAddComponent implements CanComponentDeactivate { @ViewChild('videoUpload') videoUpload: VideoUploadComponent - @ViewChild('videoImport') videoImport: VideoImportComponent + @ViewChild('videoImportUrl') videoImportUrl: VideoImportUrlComponent - secondStepType: 'upload' | 'import' + secondStepType: 'upload' | 'import-url' videoName: string constructor ( private serverService: ServerService ) {} - onFirstStepDone (type: 'upload' | 'import', videoName: string) { + onFirstStepDone (type: 'upload' | 'import-url', videoName: string) { this.secondStepType = type this.videoName = videoName } canDeactivate () { if (this.secondStepType === 'upload') return this.videoUpload.canDeactivate() - if (this.secondStepType === 'import') return this.videoImport.canDeactivate() + if (this.secondStepType === 'import-url') return this.videoImportUrl.canDeactivate() return { canDeactivate: true } } diff --git a/client/src/app/videos/+video-edit/video-add.module.ts b/client/src/app/videos/+video-edit/video-add.module.ts index 91f544971..dd1a3875d 100644 --- a/client/src/app/videos/+video-edit/video-add.module.ts +++ b/client/src/app/videos/+video-edit/video-add.module.ts @@ -6,7 +6,7 @@ import { VideoAddRoutingModule } from './video-add-routing.module' import { VideoAddComponent } from './video-add.component' import { CanDeactivateGuard } from '../../shared/guards/can-deactivate-guard.service' import { VideoUploadComponent } from '@app/videos/+video-edit/video-upload.component' -import { VideoImportComponent } from '@app/videos/+video-edit/video-import.component' +import { VideoImportUrlComponent } from '@app/videos/+video-edit/video-import-url.component' @NgModule({ imports: [ @@ -18,7 +18,7 @@ import { VideoImportComponent } from '@app/videos/+video-edit/video-import.compo declarations: [ VideoAddComponent, VideoUploadComponent, - VideoImportComponent + VideoImportUrlComponent ], exports: [ VideoAddComponent diff --git a/client/src/app/videos/+video-edit/video-import-url.component.html b/client/src/app/videos/+video-edit/video-import-url.component.html new file mode 100644 index 000000000..6b431f6f6 --- /dev/null +++ b/client/src/app/videos/+video-edit/video-import-url.component.html @@ -0,0 +1,60 @@ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ + +
+
+ +
+ Congratulations, the video behind {{ targetUrl }} will be imported! You can already add information about this video. +
+ + +
+ + +
+
+ + +
+
+
diff --git a/client/src/app/videos/+video-edit/video-import-url.component.scss b/client/src/app/videos/+video-edit/video-import-url.component.scss new file mode 100644 index 000000000..9ada9db19 --- /dev/null +++ b/client/src/app/videos/+video-edit/video-import-url.component.scss @@ -0,0 +1,37 @@ +@import '_variables'; +@import '_mixins'; + +$width-size: 190px; + +.peertube-select-container { + @include peertube-select-container($width-size); +} + +.import-video { + display: flex; + flex-direction: column; + align-items: center; + + .icon.icon-upload { + @include icon(90px); + margin-bottom: 25px; + cursor: default; + + background-image: url('../../../assets/images/video/upload.svg'); + } + + input[type=text] { + @include peertube-input-text($width-size); + display: block; + } + + input[type=button] { + @include peertube-button; + @include orange-button; + + width: $width-size; + margin-top: 30px; + } +} + + diff --git a/client/src/app/videos/+video-edit/video-import-url.component.ts b/client/src/app/videos/+video-edit/video-import-url.component.ts new file mode 100644 index 000000000..99fcb6f00 --- /dev/null +++ b/client/src/app/videos/+video-edit/video-import-url.component.ts @@ -0,0 +1,132 @@ +import { Component, EventEmitter, OnInit, Output } from '@angular/core' +import { Router } from '@angular/router' +import { CanComponentDeactivate } from '@app/shared/guards/can-deactivate-guard.service' +import { NotificationsService } from 'angular2-notifications' +import { VideoPrivacy, VideoUpdate } from '../../../../../shared/models/videos' +import { AuthService, ServerService } from '../../core' +import { VideoService } from '../../shared/video/video.service' +import { I18n } from '@ngx-translate/i18n-polyfill' +import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service' +import { VideoImportService } from '@app/shared/video-import' +import { VideoEdit } from '@app/shared/video/video-edit.model' +import { LoadingBarService } from '@ngx-loading-bar/core' +import { VideoCaptionService } from '@app/shared/video-caption' +import { VideoSend } from '@app/videos/+video-edit/shared/video-send' + +@Component({ + selector: 'my-video-import-url', + templateUrl: './video-import-url.component.html', + styleUrls: [ + './shared/video-edit.component.scss', + './video-import-url.component.scss' + ] +}) +export class VideoImportUrlComponent extends VideoSend implements OnInit, CanComponentDeactivate { + @Output() firstStepDone = new EventEmitter() + + targetUrl = '' + videoFileName: string + + isImportingVideo = false + hasImportedVideo = false + isUpdatingVideo = false + + video: VideoEdit + + protected readonly DEFAULT_VIDEO_PRIVACY = VideoPrivacy.PRIVATE + + constructor ( + protected formValidatorService: FormValidatorService, + protected loadingBar: LoadingBarService, + protected notificationsService: NotificationsService, + protected authService: AuthService, + protected serverService: ServerService, + protected videoService: VideoService, + protected videoCaptionService: VideoCaptionService, + private router: Router, + private videoImportService: VideoImportService, + private i18n: I18n + ) { + super() + } + + ngOnInit () { + super.ngOnInit() + } + + canDeactivate () { + return { canDeactivate: true } + } + + isTargetUrlValid () { + return this.targetUrl && this.targetUrl.match(/https?:\/\//) + } + + importVideo () { + this.isImportingVideo = true + + const videoUpdate: VideoUpdate = { + privacy: this.firstStepPrivacyId, + waitTranscoding: false, + commentsEnabled: true, + channelId: this.firstStepChannelId + } + + this.loadingBar.start() + + this.videoImportService.importVideo(this.targetUrl, videoUpdate).subscribe( + res => { + this.loadingBar.complete() + this.firstStepDone.emit(res.video.name) + this.isImportingVideo = false + this.hasImportedVideo = true + + this.video = new VideoEdit(Object.assign(res.video, { + commentsEnabled: videoUpdate.commentsEnabled, + support: null, + thumbnailUrl: null, + previewUrl: null + })) + this.hydrateFormFromVideo() + }, + + err => { + this.loadingBar.complete() + this.isImportingVideo = false + this.notificationsService.error(this.i18n('Error'), err.message) + } + ) + } + + updateSecondStep () { + if (this.checkForm() === false) { + return + } + + this.video.patch(this.form.value) + + this.isUpdatingVideo = true + + // Update the video + this.updateVideoAndCaptions(this.video) + .subscribe( + () => { + this.isUpdatingVideo = false + this.notificationsService.success(this.i18n('Success'), this.i18n('Video to import updated.')) + + this.router.navigate([ '/my-account', 'video-imports' ]) + }, + + err => { + this.isUpdatingVideo = false + this.notificationsService.error(this.i18n('Error'), err.message) + console.error(err) + } + ) + + } + + private hydrateFormFromVideo () { + this.form.patchValue(this.video.toFormPatch()) + } +} diff --git a/client/src/app/videos/+video-edit/video-import.component.html b/client/src/app/videos/+video-edit/video-import.component.html deleted file mode 100644 index 6b431f6f6..000000000 --- a/client/src/app/videos/+video-edit/video-import.component.html +++ /dev/null @@ -1,60 +0,0 @@ -
-
-
- -
- - - - -
- -
- -
- -
-
- -
- -
- -
-
- - -
-
- -
- Congratulations, the video behind {{ targetUrl }} will be imported! You can already add information about this video. -
- - -
- - -
-
- - -
-
-
diff --git a/client/src/app/videos/+video-edit/video-import.component.scss b/client/src/app/videos/+video-edit/video-import.component.scss deleted file mode 100644 index 9ada9db19..000000000 --- a/client/src/app/videos/+video-edit/video-import.component.scss +++ /dev/null @@ -1,37 +0,0 @@ -@import '_variables'; -@import '_mixins'; - -$width-size: 190px; - -.peertube-select-container { - @include peertube-select-container($width-size); -} - -.import-video { - display: flex; - flex-direction: column; - align-items: center; - - .icon.icon-upload { - @include icon(90px); - margin-bottom: 25px; - cursor: default; - - background-image: url('../../../assets/images/video/upload.svg'); - } - - input[type=text] { - @include peertube-input-text($width-size); - display: block; - } - - input[type=button] { - @include peertube-button; - @include orange-button; - - width: $width-size; - margin-top: 30px; - } -} - - diff --git a/client/src/app/videos/+video-edit/video-import.component.ts b/client/src/app/videos/+video-edit/video-import.component.ts deleted file mode 100644 index 5d355dc8b..000000000 --- a/client/src/app/videos/+video-edit/video-import.component.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { Component, EventEmitter, OnInit, Output } from '@angular/core' -import { Router } from '@angular/router' -import { CanComponentDeactivate } from '@app/shared/guards/can-deactivate-guard.service' -import { NotificationsService } from 'angular2-notifications' -import { VideoPrivacy, VideoUpdate } from '../../../../../shared/models/videos' -import { AuthService, ServerService } from '../../core' -import { VideoService } from '../../shared/video/video.service' -import { I18n } from '@ngx-translate/i18n-polyfill' -import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service' -import { VideoImportService } from '@app/shared/video-import' -import { VideoEdit } from '@app/shared/video/video-edit.model' -import { LoadingBarService } from '@ngx-loading-bar/core' -import { VideoCaptionService } from '@app/shared/video-caption' -import { VideoSend } from '@app/videos/+video-edit/shared/video-send' - -@Component({ - selector: 'my-video-import', - templateUrl: './video-import.component.html', - styleUrls: [ - './shared/video-edit.component.scss', - './video-import.component.scss' - ] -}) -export class VideoImportComponent extends VideoSend implements OnInit, CanComponentDeactivate { - @Output() firstStepDone = new EventEmitter() - - targetUrl = '' - videoFileName: string - - isImportingVideo = false - hasImportedVideo = false - isUpdatingVideo = false - - video: VideoEdit - - protected readonly DEFAULT_VIDEO_PRIVACY = VideoPrivacy.PRIVATE - - constructor ( - protected formValidatorService: FormValidatorService, - protected loadingBar: LoadingBarService, - protected notificationsService: NotificationsService, - protected authService: AuthService, - protected serverService: ServerService, - protected videoService: VideoService, - protected videoCaptionService: VideoCaptionService, - private router: Router, - private videoImportService: VideoImportService, - private i18n: I18n - ) { - super() - } - - ngOnInit () { - super.ngOnInit() - } - - canDeactivate () { - return { canDeactivate: true } - } - - isTargetUrlValid () { - return this.targetUrl && this.targetUrl.match(/https?:\/\//) - } - - importVideo () { - this.isImportingVideo = true - - const videoUpdate: VideoUpdate = { - privacy: this.firstStepPrivacyId, - waitTranscoding: false, - commentsEnabled: true, - channelId: this.firstStepChannelId - } - - this.loadingBar.start() - - this.videoImportService.importVideo(this.targetUrl, videoUpdate).subscribe( - res => { - this.loadingBar.complete() - this.firstStepDone.emit(res.video.name) - this.isImportingVideo = false - this.hasImportedVideo = true - - this.video = new VideoEdit(Object.assign(res.video, { - commentsEnabled: videoUpdate.commentsEnabled, - support: null, - thumbnailUrl: null, - previewUrl: null - })) - this.hydrateFormFromVideo() - }, - - err => { - this.loadingBar.complete() - this.isImportingVideo = false - this.notificationsService.error(this.i18n('Error'), err.message) - } - ) - } - - updateSecondStep () { - if (this.checkForm() === false) { - return - } - - this.video.patch(this.form.value) - - this.isUpdatingVideo = true - - // Update the video - this.updateVideoAndCaptions(this.video) - .subscribe( - () => { - this.isUpdatingVideo = false - this.notificationsService.success(this.i18n('Success'), this.i18n('Video to import updated.')) - - this.router.navigate([ '/my-account', 'video-imports' ]) - }, - - err => { - this.isUpdatingVideo = false - this.notificationsService.error(this.i18n('Error'), err.message) - console.error(err) - } - ) - - } - - private hydrateFormFromVideo () { - this.form.patchValue(this.video.toFormPatch()) - } -}