]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/+my-library/my-history/my-history.component.ts
show first decimal for views above a thousand (#3564)
[github/Chocobozzz/PeerTube.git] / client / src / app / +my-library / my-history / my-history.component.ts
CommitLineData
80bfd33c
C
1import { Component, OnDestroy, OnInit } from '@angular/core'
2import { ActivatedRoute, Router } from '@angular/router'
67ed6552
C
3import {
4 AuthService,
5 ComponentPagination,
6 ConfirmService,
7 LocalStorageService,
8 Notifier,
9 ScreenService,
10 ServerService,
11 UserService
12} from '@app/core'
13import { immutableAssign } from '@app/helpers'
14import { UserHistoryService } from '@app/shared/shared-main'
15import { AbstractVideoList } from '@app/shared/shared-video-miniature'
80bfd33c
C
16
17@Component({
17119e4a
C
18 templateUrl: './my-history.component.html',
19 styleUrls: [ './my-history.component.scss' ]
80bfd33c 20})
17119e4a 21export class MyHistoryComponent extends AbstractVideoList implements OnInit, OnDestroy {
80bfd33c 22 titlePage: string
80bfd33c
C
23 pagination: ComponentPagination = {
24 currentPage: 1,
25 itemsPerPage: 5,
26 totalItems: null
27 }
276d9652 28 videosHistoryEnabled: boolean
80bfd33c 29
80bfd33c
C
30 constructor (
31 protected router: Router,
489290b8 32 protected serverService: ServerService,
80bfd33c
C
33 protected route: ActivatedRoute,
34 protected authService: AuthService,
276d9652 35 protected userService: UserService,
f8b2c1b4 36 protected notifier: Notifier,
80bfd33c 37 protected screenService: ScreenService,
d3217560 38 protected storageService: LocalStorageService,
80bfd33c 39 private confirmService: ConfirmService,
80bfd33c
C
40 private userHistoryService: UserHistoryService
41 ) {
42 super()
43
66357162 44 this.titlePage = $localize`My videos history`
80bfd33c
C
45 }
46
47 ngOnInit () {
48 super.ngOnInit()
276d9652 49
4f926722
C
50 this.authService.userInformationLoaded
51 .subscribe(() => {
52 this.videosHistoryEnabled = this.authService.getUser().videosHistoryEnabled
53 })
54
80bfd33c
C
55 }
56
57 ngOnDestroy () {
58 super.ngOnDestroy()
59 }
60
61 getVideosObservable (page: number) {
62 const newPagination = immutableAssign(this.pagination, { currentPage: page })
63
64 return this.userHistoryService.getUserVideosHistory(newPagination)
65 }
66
67 generateSyndicationList () {
68 throw new Error('Method not implemented.')
69 }
276d9652
C
70
71 onVideosHistoryChange () {
72 this.userService.updateMyProfile({ videosHistoryEnabled: this.videosHistoryEnabled })
73 .subscribe(
74 () => {
75 const message = this.videosHistoryEnabled === true ?
66357162
C
76 $localize`Videos history is enabled` :
77 $localize`Videos history is disabled`
276d9652 78
f8b2c1b4 79 this.notifier.success(message)
276d9652
C
80
81 this.authService.refreshUserInformation()
82 },
83
f8b2c1b4 84 err => this.notifier.error(err.message)
276d9652
C
85 )
86 }
87
88 async deleteHistory () {
66357162
C
89 const title = $localize`Delete videos history`
90 const message = $localize`Are you sure you want to delete all your videos history?`
276d9652
C
91
92 const res = await this.confirmService.confirm(message, title)
93 if (res !== true) return
94
95 this.userHistoryService.deleteUserVideosHistory()
96 .subscribe(
97 () => {
66357162 98 this.notifier.success($localize`Videos history deleted`)
276d9652
C
99
100 this.reloadVideos()
101 },
102
f8b2c1b4 103 err => this.notifier.error(err.message)
276d9652
C
104 )
105 }
80bfd33c 106}