aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2022-02-22 13:48:09 +0100
committerChocobozzz <me@florianbigard.com>2022-02-22 13:48:09 +0100
commitf7298d0dcc247fe3be94ec1e00351942a079a44b (patch)
tree6bcb9935ab00101115be003c988a8211fc260d8c /client/src/app
parent0d9a327df33e42a0f34caaf2cbff5f74e4d78426 (diff)
parentac5f679ad60fc48db6d9a9534a8ac5fd20eda36f (diff)
downloadPeerTube-f7298d0dcc247fe3be94ec1e00351942a079a44b.tar.gz
PeerTube-f7298d0dcc247fe3be94ec1e00351942a079a44b.tar.zst
PeerTube-f7298d0dcc247fe3be94ec1e00351942a079a44b.zip
Merge branch 'release/4.1.0' into develop
Diffstat (limited to 'client/src/app')
-rw-r--r--client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts9
-rw-r--r--client/src/app/modal/confirm.component.ts10
-rw-r--r--client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts21
3 files changed, 32 insertions, 8 deletions
diff --git a/client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts b/client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts
index 4a46f1ad9..2bae3499e 100644
--- a/client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts
+++ b/client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts
@@ -19,8 +19,13 @@ export class MyAccountDangerZoneComponent {
19 19
20 async deleteMe () { 20 async deleteMe () {
21 const res = await this.confirmService.confirmWithInput( 21 const res = await this.confirmService.confirmWithInput(
22 // eslint-disable-next-line max-len 22 $localize`Are you sure you want to delete your account?` +
23 $localize`Are you sure you want to delete your account? This will delete all your data, including channels, videos and comments. Content cached by other servers and other third-parties might make longer to be deleted.`, 23 '<br /><br />' +
24 // eslint-disable-next-line max-len
25 $localize`This will delete all your data, including channels, videos, comments and you won't be able to create another user on this instance with "${this.user.username}" username.` +
26 '<br /><br />' +
27 $localize`Content cached by other servers and other third-parties might make longer to be deleted.`,
28
24 $localize`Type your username to confirm`, 29 $localize`Type your username to confirm`,
25 this.user.username, 30 this.user.username,
26 $localize`Delete your account`, 31 $localize`Delete your account`,
diff --git a/client/src/app/modal/confirm.component.ts b/client/src/app/modal/confirm.component.ts
index 457dd1f3f..ec4e1d60f 100644
--- a/client/src/app/modal/confirm.component.ts
+++ b/client/src/app/modal/confirm.component.ts
@@ -1,4 +1,5 @@
1import { Component, ElementRef, OnInit, ViewChild } from '@angular/core' 1import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'
2import { HtmlRendererService } from '@app/core'
2import { ConfirmService } from '@app/core/confirm/confirm.service' 3import { ConfirmService } from '@app/core/confirm/confirm.service'
3import { POP_STATE_MODAL_DISMISS } from '@app/helpers' 4import { POP_STATE_MODAL_DISMISS } from '@app/helpers'
4import { NgbModal } from '@ng-bootstrap/ng-bootstrap' 5import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
@@ -24,6 +25,7 @@ export class ConfirmComponent implements OnInit {
24 25
25 constructor ( 26 constructor (
26 private modalService: NgbModal, 27 private modalService: NgbModal,
28 private html: HtmlRendererService,
27 private confirmService: ConfirmService 29 private confirmService: ConfirmService
28 ) { } 30 ) { }
29 31
@@ -31,14 +33,18 @@ export class ConfirmComponent implements OnInit {
31 this.confirmService.showConfirm.subscribe( 33 this.confirmService.showConfirm.subscribe(
32 ({ title, message, expectedInputValue, inputLabel, confirmButtonText }) => { 34 ({ title, message, expectedInputValue, inputLabel, confirmButtonText }) => {
33 this.title = title 35 this.title = title
34 this.message = message
35 36
36 this.inputLabel = inputLabel 37 this.inputLabel = inputLabel
37 this.expectedInputValue = expectedInputValue 38 this.expectedInputValue = expectedInputValue
38 39
39 this.confirmButtonText = confirmButtonText || $localize`Confirm` 40 this.confirmButtonText = confirmButtonText || $localize`Confirm`
40 41
41 this.showModal() 42 this.html.toSafeHtml(message)
43 .then(message => {
44 this.message = message
45
46 this.showModal()
47 })
42 } 48 }
43 ) 49 )
44 } 50 }
diff --git a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts
index 553930595..e4972ec10 100644
--- a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts
+++ b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts
@@ -56,6 +56,8 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
56 private listenToPlaylistChangeSub: Subscription 56 private listenToPlaylistChangeSub: Subscription
57 private playlistsData: CachedPlaylist[] = [] 57 private playlistsData: CachedPlaylist[] = []
58 58
59 private pendingAddId: number
60
59 constructor ( 61 constructor (
60 protected formValidatorService: FormValidatorService, 62 protected formValidatorService: FormValidatorService,
61 private authService: AuthService, 63 private authService: AuthService,
@@ -215,8 +217,9 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
215 } 217 }
216 218
217 isPrimaryCheckboxChecked (playlist: PlaylistSummary) { 219 isPrimaryCheckboxChecked (playlist: PlaylistSummary) {
218 return playlist.elements.filter(e => e.enabled) 220 // Reduce latency when adding a video to a playlist using pendingAddId
219 .length !== 0 221 return this.pendingAddId === playlist.id ||
222 playlist.elements.filter(e => e.enabled).length !== 0
220 } 223 }
221 224
222 toggleOptionalRow (playlist: PlaylistSummary) { 225 toggleOptionalRow (playlist: PlaylistSummary) {
@@ -367,6 +370,8 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
367 if (element.startTimestamp) body.startTimestamp = element.startTimestamp 370 if (element.startTimestamp) body.startTimestamp = element.startTimestamp
368 if (element.stopTimestamp && element.stopTimestamp !== this.video.duration) body.stopTimestamp = element.stopTimestamp 371 if (element.stopTimestamp && element.stopTimestamp !== this.video.duration) body.stopTimestamp = element.stopTimestamp
369 372
373 this.pendingAddId = playlist.id
374
370 this.videoPlaylistService.addVideoInPlaylist(playlist.id, body) 375 this.videoPlaylistService.addVideoInPlaylist(playlist.id, body)
371 .subscribe({ 376 .subscribe({
372 next: res => { 377 next: res => {
@@ -379,9 +384,17 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
379 if (element) element.playlistElementId = res.videoPlaylistElement.id 384 if (element) element.playlistElementId = res.videoPlaylistElement.id
380 }, 385 },
381 386
382 error: err => this.notifier.error(err.message), 387 error: err => {
388 this.pendingAddId = undefined
389 this.cd.markForCheck()
390
391 this.notifier.error(err.message)
392 },
383 393
384 complete: () => this.cd.markForCheck() 394 complete: () => {
395 this.pendingAddId = undefined
396 this.cd.markForCheck()
397 }
385 }) 398 })
386 } 399 }
387 400