diff options
Diffstat (limited to 'client/src/app/+videos')
4 files changed, 27 insertions, 47 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 c369ba2b7..da4996902 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,3 +1,4 @@ | |||
1 | import { switchMap } from 'rxjs' | ||
1 | import { AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core' | 2 | import { AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core' |
2 | import { Router } from '@angular/router' | 3 | import { Router } from '@angular/router' |
3 | import { AuthService, CanComponentDeactivate, HooksService, Notifier, ServerService } from '@app/core' | 4 | import { AuthService, CanComponentDeactivate, HooksService, Notifier, ServerService } from '@app/core' |
@@ -87,21 +88,16 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Af | |||
87 | this.loadingBar.useRef().start() | 88 | this.loadingBar.useRef().start() |
88 | 89 | ||
89 | this.videoImportService.importVideoTorrent(torrentfile || this.magnetUri, videoUpdate) | 90 | this.videoImportService.importVideoTorrent(torrentfile || this.magnetUri, videoUpdate) |
91 | .pipe(switchMap(({ video }) => this.videoService.getVideo({ videoId: video.uuid }))) | ||
90 | .subscribe({ | 92 | .subscribe({ |
91 | next: res => { | 93 | next: video => { |
92 | this.loadingBar.useRef().complete() | 94 | this.loadingBar.useRef().complete() |
93 | this.firstStepDone.emit(res.video.name) | 95 | this.firstStepDone.emit(video.name) |
94 | this.isImportingVideo = false | 96 | this.isImportingVideo = false |
95 | this.hasImportedVideo = true | 97 | this.hasImportedVideo = true |
96 | 98 | ||
97 | this.video = new VideoEdit(Object.assign(res.video, { | 99 | this.video = new VideoEdit(video) |
98 | commentsEnabled: videoUpdate.commentsEnabled, | 100 | this.video.patch({ privacy: this.firstStepPrivacyId }) |
99 | downloadEnabled: videoUpdate.downloadEnabled, | ||
100 | privacy: { id: this.firstStepPrivacyId }, | ||
101 | support: null, | ||
102 | thumbnailUrl: null, | ||
103 | previewUrl: null | ||
104 | })) | ||
105 | 101 | ||
106 | hydrateFormFromVideo(this.form, this.video, false) | 102 | hydrateFormFromVideo(this.form, this.video, false) |
107 | }, | 103 | }, |
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts index 4c74eda84..971a2a070 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts | |||
@@ -1,8 +1,9 @@ | |||
1 | import { forkJoin } from 'rxjs' | ||
1 | import { map, switchMap } from 'rxjs/operators' | 2 | import { map, switchMap } from 'rxjs/operators' |
2 | import { AfterViewInit, Component, EventEmitter, OnInit, Output } from '@angular/core' | 3 | import { AfterViewInit, Component, EventEmitter, OnInit, Output } from '@angular/core' |
3 | import { Router } from '@angular/router' | 4 | import { Router } from '@angular/router' |
4 | import { AuthService, CanComponentDeactivate, HooksService, Notifier, ServerService } from '@app/core' | 5 | import { AuthService, CanComponentDeactivate, HooksService, Notifier, ServerService } from '@app/core' |
5 | import { getAbsoluteAPIUrl, scrollToTop } from '@app/helpers' | 6 | import { scrollToTop } from '@app/helpers' |
6 | import { FormValidatorService } from '@app/shared/shared-forms' | 7 | import { FormValidatorService } from '@app/shared/shared-forms' |
7 | import { VideoCaptionService, VideoEdit, VideoImportService, VideoService } from '@app/shared/shared-main' | 8 | import { VideoCaptionService, VideoEdit, VideoImportService, VideoService } from '@app/shared/shared-main' |
8 | import { LoadingBarService } from '@ngx-loading-bar/core' | 9 | import { LoadingBarService } from '@ngx-loading-bar/core' |
@@ -76,12 +77,11 @@ export class VideoImportUrlComponent extends VideoSend implements OnInit, AfterV | |||
76 | this.videoImportService | 77 | this.videoImportService |
77 | .importVideoUrl(this.targetUrl, videoUpdate) | 78 | .importVideoUrl(this.targetUrl, videoUpdate) |
78 | .pipe( | 79 | .pipe( |
79 | switchMap(res => { | 80 | switchMap(previous => { |
80 | return this.videoCaptionService | 81 | return forkJoin([ |
81 | .listCaptions(res.video.uuid) | 82 | this.videoCaptionService.listCaptions(previous.video.uuid), |
82 | .pipe( | 83 | this.videoService.getVideo({ videoId: previous.video.uuid }) |
83 | map(result => ({ video: res.video, videoCaptions: result.data })) | 84 | ]).pipe(map(([ videoCaptionsResult, video ]) => ({ videoCaptions: videoCaptionsResult.data, video }))) |
84 | ) | ||
85 | }) | 85 | }) |
86 | ) | 86 | ) |
87 | .subscribe({ | 87 | .subscribe({ |
@@ -91,24 +91,8 @@ export class VideoImportUrlComponent extends VideoSend implements OnInit, AfterV | |||
91 | this.isImportingVideo = false | 91 | this.isImportingVideo = false |
92 | this.hasImportedVideo = true | 92 | this.hasImportedVideo = true |
93 | 93 | ||
94 | const absoluteAPIUrl = getAbsoluteAPIUrl() | 94 | this.video = new VideoEdit(video) |
95 | 95 | this.video.patch({ privacy: this.firstStepPrivacyId }) | |
96 | const thumbnailUrl = video.thumbnailPath | ||
97 | ? absoluteAPIUrl + video.thumbnailPath | ||
98 | : null | ||
99 | |||
100 | const previewUrl = video.previewPath | ||
101 | ? absoluteAPIUrl + video.previewPath | ||
102 | : null | ||
103 | |||
104 | this.video = new VideoEdit(Object.assign(video, { | ||
105 | commentsEnabled: videoUpdate.commentsEnabled, | ||
106 | downloadEnabled: videoUpdate.downloadEnabled, | ||
107 | privacy: { id: this.firstStepPrivacyId }, | ||
108 | support: null, | ||
109 | thumbnailUrl, | ||
110 | previewUrl | ||
111 | })) | ||
112 | 96 | ||
113 | this.videoCaptions = videoCaptions | 97 | this.videoCaptions = videoCaptions |
114 | 98 | ||
diff --git a/client/src/app/+videos/+video-edit/video-update.component.html b/client/src/app/+videos/+video-edit/video-update.component.html index ffd125695..a33ac3db4 100644 --- a/client/src/app/+videos/+video-edit/video-update.component.html +++ b/client/src/app/+videos/+video-edit/video-update.component.html | |||
@@ -1,7 +1,7 @@ | |||
1 | <div class="margin-content"> | 1 | <div class="margin-content"> |
2 | <div class="title-page"> | 2 | <div class="title-page"> |
3 | <span class="me-1" i18n>Update</span> | 3 | <span class="me-1" i18n>Update</span> |
4 | <a [routerLink]="getVideoUrl()">{{ video?.name }}</a> | 4 | <a [routerLink]="getVideoUrl()">{{ videoDetails?.name }}</a> |
5 | </div> | 5 | </div> |
6 | 6 | ||
7 | <form novalidate [formGroup]="form"> | 7 | <form novalidate [formGroup]="form"> |
diff --git a/client/src/app/+videos/+video-edit/video-update.component.ts b/client/src/app/+videos/+video-edit/video-update.component.ts index 43e8ba3e5..13e786a8e 100644 --- a/client/src/app/+videos/+video-edit/video-update.component.ts +++ b/client/src/app/+videos/+video-edit/video-update.component.ts | |||
@@ -18,7 +18,7 @@ import { VideoSource } from '@shared/models/videos/video-source' | |||
18 | templateUrl: './video-update.component.html' | 18 | templateUrl: './video-update.component.html' |
19 | }) | 19 | }) |
20 | export class VideoUpdateComponent extends FormReactive implements OnInit { | 20 | export class VideoUpdateComponent extends FormReactive implements OnInit { |
21 | video: VideoEdit | 21 | videoEdit: VideoEdit |
22 | videoDetails: VideoDetails | 22 | videoDetails: VideoDetails |
23 | videoSource: VideoSource | 23 | videoSource: VideoSource |
24 | userVideoChannels: SelectChannelItem[] = [] | 24 | userVideoChannels: SelectChannelItem[] = [] |
@@ -50,19 +50,19 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { | |||
50 | const { videoData } = this.route.snapshot.data | 50 | const { videoData } = this.route.snapshot.data |
51 | const { video, videoChannels, videoCaptions, videoSource, liveVideo } = videoData | 51 | const { video, videoChannels, videoCaptions, videoSource, liveVideo } = videoData |
52 | 52 | ||
53 | this.video = new VideoEdit(video) | ||
54 | this.videoDetails = video | 53 | this.videoDetails = video |
54 | this.videoEdit = new VideoEdit(this.videoDetails) | ||
55 | 55 | ||
56 | this.userVideoChannels = videoChannels | 56 | this.userVideoChannels = videoChannels |
57 | this.videoCaptions = videoCaptions | 57 | this.videoCaptions = videoCaptions |
58 | this.videoSource = videoSource | 58 | this.videoSource = videoSource |
59 | this.liveVideo = liveVideo | 59 | this.liveVideo = liveVideo |
60 | 60 | ||
61 | this.forbidScheduledPublication = this.video.privacy !== VideoPrivacy.PRIVATE | 61 | this.forbidScheduledPublication = this.videoEdit.privacy !== VideoPrivacy.PRIVATE |
62 | } | 62 | } |
63 | 63 | ||
64 | onFormBuilt () { | 64 | onFormBuilt () { |
65 | hydrateFormFromVideo(this.form, this.video, true) | 65 | hydrateFormFromVideo(this.form, this.videoEdit, true) |
66 | 66 | ||
67 | if (this.liveVideo) { | 67 | if (this.liveVideo) { |
68 | this.form.patchValue({ | 68 | this.form.patchValue({ |
@@ -115,16 +115,16 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { | |||
115 | return | 115 | return |
116 | } | 116 | } |
117 | 117 | ||
118 | this.video.patch(this.form.value) | 118 | this.videoEdit.patch(this.form.value) |
119 | 119 | ||
120 | this.loadingBar.useRef().start() | 120 | this.loadingBar.useRef().start() |
121 | this.isUpdatingVideo = true | 121 | this.isUpdatingVideo = true |
122 | 122 | ||
123 | // Update the video | 123 | // Update the video |
124 | this.videoService.updateVideo(this.video) | 124 | this.videoService.updateVideo(this.videoEdit) |
125 | .pipe( | 125 | .pipe( |
126 | // Then update captions | 126 | // Then update captions |
127 | switchMap(() => this.videoCaptionService.updateCaptions(this.video.id, this.videoCaptions)), | 127 | switchMap(() => this.videoCaptionService.updateCaptions(this.videoEdit.id, this.videoCaptions)), |
128 | 128 | ||
129 | switchMap(() => { | 129 | switchMap(() => { |
130 | if (!this.liveVideo) return of(undefined) | 130 | if (!this.liveVideo) return of(undefined) |
@@ -140,7 +140,7 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { | |||
140 | .some(key => this.liveVideo[key] !== liveVideoUpdate[key]) | 140 | .some(key => this.liveVideo[key] !== liveVideoUpdate[key]) |
141 | if (!liveChanged) return of(undefined) | 141 | if (!liveChanged) return of(undefined) |
142 | 142 | ||
143 | return this.liveVideoService.updateLive(this.video.id, liveVideoUpdate) | 143 | return this.liveVideoService.updateLive(this.videoEdit.id, liveVideoUpdate) |
144 | }) | 144 | }) |
145 | ) | 145 | ) |
146 | .subscribe({ | 146 | .subscribe({ |
@@ -149,7 +149,7 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { | |||
149 | this.isUpdatingVideo = false | 149 | this.isUpdatingVideo = false |
150 | this.loadingBar.useRef().complete() | 150 | this.loadingBar.useRef().complete() |
151 | this.notifier.success($localize`Video updated.`) | 151 | this.notifier.success($localize`Video updated.`) |
152 | this.router.navigateByUrl(Video.buildWatchUrl(this.video)) | 152 | this.router.navigateByUrl(Video.buildWatchUrl(this.videoEdit)) |
153 | }, | 153 | }, |
154 | 154 | ||
155 | error: err => { | 155 | error: err => { |
@@ -162,10 +162,10 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { | |||
162 | } | 162 | } |
163 | 163 | ||
164 | hydratePluginFieldsFromVideo () { | 164 | hydratePluginFieldsFromVideo () { |
165 | if (!this.video.pluginData) return | 165 | if (!this.videoEdit.pluginData) return |
166 | 166 | ||
167 | this.form.patchValue({ | 167 | this.form.patchValue({ |
168 | pluginData: this.video.pluginData | 168 | pluginData: this.videoEdit.pluginData |
169 | }) | 169 | }) |
170 | } | 170 | } |
171 | 171 | ||