diff options
author | Chocobozzz <me@florianbigard.com> | 2022-02-22 13:48:09 +0100 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2022-02-22 13:48:09 +0100 |
commit | f7298d0dcc247fe3be94ec1e00351942a079a44b (patch) | |
tree | 6bcb9935ab00101115be003c988a8211fc260d8c /client/src/app | |
parent | 0d9a327df33e42a0f34caaf2cbff5f74e4d78426 (diff) | |
parent | ac5f679ad60fc48db6d9a9534a8ac5fd20eda36f (diff) | |
download | PeerTube-f7298d0dcc247fe3be94ec1e00351942a079a44b.tar.gz PeerTube-f7298d0dcc247fe3be94ec1e00351942a079a44b.tar.zst PeerTube-f7298d0dcc247fe3be94ec1e00351942a079a44b.zip |
Merge branch 'release/4.1.0' into develop
Diffstat (limited to 'client/src/app')
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 @@ | |||
1 | import { Component, ElementRef, OnInit, ViewChild } from '@angular/core' | 1 | import { Component, ElementRef, OnInit, ViewChild } from '@angular/core' |
2 | import { HtmlRendererService } from '@app/core' | ||
2 | import { ConfirmService } from '@app/core/confirm/confirm.service' | 3 | import { ConfirmService } from '@app/core/confirm/confirm.service' |
3 | import { POP_STATE_MODAL_DISMISS } from '@app/helpers' | 4 | import { POP_STATE_MODAL_DISMISS } from '@app/helpers' |
4 | import { NgbModal } from '@ng-bootstrap/ng-bootstrap' | 5 | import { 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 | ||