diff options
Diffstat (limited to 'client/src/app/videos/+video-edit/video-add-components/video-import-torrent.component.ts')
-rw-r--r-- | client/src/app/videos/+video-edit/video-add-components/video-import-torrent.component.ts | 27 |
1 files changed, 15 insertions, 12 deletions
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 0f6fd17a9..c12a1d653 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,8 +1,7 @@ | |||
1 | import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core' | 1 | import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core' |
2 | import { Router } from '@angular/router' | 2 | import { Router } from '@angular/router' |
3 | import { NotificationsService } from 'angular2-notifications' | ||
4 | import { VideoPrivacy, VideoUpdate } from '../../../../../../shared/models/videos' | 3 | import { VideoPrivacy, VideoUpdate } from '../../../../../../shared/models/videos' |
5 | import { AuthService, ServerService } from '../../../core' | 4 | import { AuthService, Notifier, ServerService } from '../../../core' |
6 | import { VideoService } from '../../../shared/video/video.service' | 5 | import { VideoService } from '../../../shared/video/video.service' |
7 | import { I18n } from '@ngx-translate/i18n-polyfill' | 6 | import { I18n } from '@ngx-translate/i18n-polyfill' |
8 | import { LoadingBarService } from '@ngx-loading-bar/core' | 7 | import { LoadingBarService } from '@ngx-loading-bar/core' |
@@ -12,20 +11,22 @@ import { VideoEdit } from '@app/shared/video/video-edit.model' | |||
12 | import { FormValidatorService } from '@app/shared' | 11 | import { FormValidatorService } from '@app/shared' |
13 | import { VideoCaptionService } from '@app/shared/video-caption' | 12 | import { VideoCaptionService } from '@app/shared/video-caption' |
14 | import { VideoImportService } from '@app/shared/video-import' | 13 | import { VideoImportService } from '@app/shared/video-import' |
14 | import { scrollToTop } from '@app/shared/misc/utils' | ||
15 | 15 | ||
16 | @Component({ | 16 | @Component({ |
17 | selector: 'my-video-import-torrent', | 17 | selector: 'my-video-import-torrent', |
18 | templateUrl: './video-import-torrent.component.html', | 18 | templateUrl: './video-import-torrent.component.html', |
19 | styleUrls: [ | 19 | styleUrls: [ |
20 | '../shared/video-edit.component.scss', | 20 | '../shared/video-edit.component.scss', |
21 | './video-import-torrent.component.scss' | 21 | './video-import-torrent.component.scss', |
22 | './video-send.scss' | ||
22 | ] | 23 | ] |
23 | }) | 24 | }) |
24 | export class VideoImportTorrentComponent extends VideoSend implements OnInit, CanComponentDeactivate { | 25 | export class VideoImportTorrentComponent extends VideoSend implements OnInit, CanComponentDeactivate { |
25 | @Output() firstStepDone = new EventEmitter<string>() | 26 | @Output() firstStepDone = new EventEmitter<string>() |
26 | @ViewChild('torrentfileInput') torrentfileInput | 27 | @Output() firstStepError = new EventEmitter<void>() |
28 | @ViewChild('torrentfileInput') torrentfileInput: ElementRef<HTMLInputElement> | ||
27 | 29 | ||
28 | videoFileName: string | ||
29 | magnetUri = '' | 30 | magnetUri = '' |
30 | 31 | ||
31 | isImportingVideo = false | 32 | isImportingVideo = false |
@@ -33,13 +34,14 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Ca | |||
33 | isUpdatingVideo = false | 34 | isUpdatingVideo = false |
34 | 35 | ||
35 | video: VideoEdit | 36 | video: VideoEdit |
37 | error: string | ||
36 | 38 | ||
37 | protected readonly DEFAULT_VIDEO_PRIVACY = VideoPrivacy.PUBLIC | 39 | protected readonly DEFAULT_VIDEO_PRIVACY = VideoPrivacy.PUBLIC |
38 | 40 | ||
39 | constructor ( | 41 | constructor ( |
40 | protected formValidatorService: FormValidatorService, | 42 | protected formValidatorService: FormValidatorService, |
41 | protected loadingBar: LoadingBarService, | 43 | protected loadingBar: LoadingBarService, |
42 | protected notificationsService: NotificationsService, | 44 | protected notifier: Notifier, |
43 | protected authService: AuthService, | 45 | protected authService: AuthService, |
44 | protected serverService: ServerService, | 46 | protected serverService: ServerService, |
45 | protected videoService: VideoService, | 47 | protected videoService: VideoService, |
@@ -64,7 +66,7 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Ca | |||
64 | } | 66 | } |
65 | 67 | ||
66 | fileChange () { | 68 | fileChange () { |
67 | const torrentfile = this.torrentfileInput.nativeElement.files[0] as File | 69 | const torrentfile = this.torrentfileInput.nativeElement.files[0] |
68 | if (!torrentfile) return | 70 | if (!torrentfile) return |
69 | 71 | ||
70 | this.importVideo(torrentfile) | 72 | this.importVideo(torrentfile) |
@@ -106,7 +108,8 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Ca | |||
106 | err => { | 108 | err => { |
107 | this.loadingBar.complete() | 109 | this.loadingBar.complete() |
108 | this.isImportingVideo = false | 110 | this.isImportingVideo = false |
109 | this.notificationsService.error(this.i18n('Error'), err.message) | 111 | this.firstStepError.emit() |
112 | this.notifier.error(err.message) | ||
110 | } | 113 | } |
111 | ) | 114 | ) |
112 | } | 115 | } |
@@ -125,14 +128,14 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Ca | |||
125 | .subscribe( | 128 | .subscribe( |
126 | () => { | 129 | () => { |
127 | this.isUpdatingVideo = false | 130 | this.isUpdatingVideo = false |
128 | this.notificationsService.success(this.i18n('Success'), this.i18n('Video to import updated.')) | 131 | this.notifier.success(this.i18n('Video to import updated.')) |
129 | 132 | ||
130 | this.router.navigate([ '/my-account', 'video-imports' ]) | 133 | this.router.navigate([ '/my-account', 'video-imports' ]) |
131 | }, | 134 | }, |
132 | 135 | ||
133 | err => { | 136 | err => { |
134 | this.isUpdatingVideo = false | 137 | this.error = err.message |
135 | this.notificationsService.error(this.i18n('Error'), err.message) | 138 | scrollToTop() |
136 | console.error(err) | 139 | console.error(err) |
137 | } | 140 | } |
138 | ) | 141 | ) |