diff options
author | Chocobozzz <me@florianbigard.com> | 2020-08-12 10:40:04 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2020-08-14 10:28:30 +0200 |
commit | 66357162f8e1227495f09bd4f68446aad7071c6d (patch) | |
tree | 7d4429506deb512b2fe1d0267f38a28cda20af55 /client/src/app/+admin/users/user-list | |
parent | 8c360747995e17eb5520e22fc3d7bd4c3d26eeee (diff) | |
download | PeerTube-66357162f8e1227495f09bd4f68446aad7071c6d.tar.gz PeerTube-66357162f8e1227495f09bd4f68446aad7071c6d.tar.zst PeerTube-66357162f8e1227495f09bd4f68446aad7071c6d.zip |
Migrate to $localize
* Remove i18n polyfill to translate things in components
* Reduce bundle sizes
* Improve runtime perf
* Reduce a lot the time to make a full client build
* Reduce client build complexity
* We don't need a service to translate things anymore (so we will be able to translate title pages etc)
Unfortunately we may loose some translations in the migration process.
I'll put a message on weblate to notify translators
Diffstat (limited to 'client/src/app/+admin/users/user-list')
-rw-r--r-- | client/src/app/+admin/users/user-list/user-list.component.ts | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/client/src/app/+admin/users/user-list/user-list.component.ts b/client/src/app/+admin/users/user-list/user-list.component.ts index 69d4e917d..86812f73d 100644 --- a/client/src/app/+admin/users/user-list/user-list.component.ts +++ b/client/src/app/+admin/users/user-list/user-list.component.ts | |||
@@ -1,11 +1,10 @@ | |||
1 | import { SortMeta } from 'primeng/api' | 1 | import { SortMeta } from 'primeng/api' |
2 | import { Component, OnInit, ViewChild } from '@angular/core' | 2 | import { Component, OnInit, ViewChild } from '@angular/core' |
3 | import { ActivatedRoute, Params, Router } from '@angular/router' | ||
3 | import { AuthService, ConfirmService, Notifier, RestPagination, RestTable, ServerService, UserService } from '@app/core' | 4 | import { AuthService, ConfirmService, Notifier, RestPagination, RestTable, ServerService, UserService } from '@app/core' |
4 | import { Actor, DropdownAction } from '@app/shared/shared-main' | 5 | import { Actor, DropdownAction } from '@app/shared/shared-main' |
5 | import { UserBanModalComponent } from '@app/shared/shared-moderation' | 6 | import { UserBanModalComponent } from '@app/shared/shared-moderation' |
6 | import { I18n } from '@ngx-translate/i18n-polyfill' | ||
7 | import { ServerConfig, User, UserRole } from '@shared/models' | 7 | import { ServerConfig, User, UserRole } from '@shared/models' |
8 | import { Params, Router, ActivatedRoute } from '@angular/router' | ||
9 | 8 | ||
10 | type UserForList = User & { | 9 | type UserForList = User & { |
11 | rawVideoQuota: number | 10 | rawVideoQuota: number |
@@ -42,9 +41,8 @@ export class UserListComponent extends RestTable implements OnInit { | |||
42 | private userService: UserService, | 41 | private userService: UserService, |
43 | private auth: AuthService, | 42 | private auth: AuthService, |
44 | private route: ActivatedRoute, | 43 | private route: ActivatedRoute, |
45 | private router: Router, | 44 | private router: Router |
46 | private i18n: I18n | 45 | ) { |
47 | ) { | ||
48 | super() | 46 | super() |
49 | } | 47 | } |
50 | 48 | ||
@@ -82,26 +80,26 @@ export class UserListComponent extends RestTable implements OnInit { | |||
82 | this.bulkUserActions = [ | 80 | this.bulkUserActions = [ |
83 | [ | 81 | [ |
84 | { | 82 | { |
85 | label: this.i18n('Delete'), | 83 | label: $localize`Delete`, |
86 | description: this.i18n('Videos will be deleted, comments will be tombstoned.'), | 84 | description: $localize`Videos will be deleted, comments will be tombstoned.`, |
87 | handler: users => this.removeUsers(users), | 85 | handler: users => this.removeUsers(users), |
88 | isDisplayed: users => users.every(u => this.authUser.canManage(u)) | 86 | isDisplayed: users => users.every(u => this.authUser.canManage(u)) |
89 | }, | 87 | }, |
90 | { | 88 | { |
91 | label: this.i18n('Ban'), | 89 | label: $localize`Ban`, |
92 | description: this.i18n('User won\'t be able to login anymore, but videos and comments will be kept as is.'), | 90 | description: $localize`User won't be able to login anymore, but videos and comments will be kept as is.`, |
93 | handler: users => this.openBanUserModal(users), | 91 | handler: users => this.openBanUserModal(users), |
94 | isDisplayed: users => users.every(u => this.authUser.canManage(u) && u.blocked === false) | 92 | isDisplayed: users => users.every(u => this.authUser.canManage(u) && u.blocked === false) |
95 | }, | 93 | }, |
96 | { | 94 | { |
97 | label: this.i18n('Unban'), | 95 | label: $localize`Unban`, |
98 | handler: users => this.unbanUsers(users), | 96 | handler: users => this.unbanUsers(users), |
99 | isDisplayed: users => users.every(u => this.authUser.canManage(u) && u.blocked === true) | 97 | isDisplayed: users => users.every(u => this.authUser.canManage(u) && u.blocked === true) |
100 | } | 98 | } |
101 | ], | 99 | ], |
102 | [ | 100 | [ |
103 | { | 101 | { |
104 | label: this.i18n('Set Email as Verified'), | 102 | label: $localize`Set Email as Verified`, |
105 | handler: users => this.setEmailsAsVerified(users), | 103 | handler: users => this.setEmailsAsVerified(users), |
106 | isDisplayed: users => { | 104 | isDisplayed: users => { |
107 | return this.requiresEmailVerification && | 105 | return this.requiresEmailVerification && |
@@ -160,7 +158,7 @@ export class UserListComponent extends RestTable implements OnInit { | |||
160 | openBanUserModal (users: User[]) { | 158 | openBanUserModal (users: User[]) { |
161 | for (const user of users) { | 159 | for (const user of users) { |
162 | if (user.username === 'root') { | 160 | if (user.username === 'root') { |
163 | this.notifier.error(this.i18n('You cannot ban root.')) | 161 | this.notifier.error($localize`You cannot ban root.`) |
164 | return | 162 | return |
165 | } | 163 | } |
166 | } | 164 | } |
@@ -197,17 +195,13 @@ export class UserListComponent extends RestTable implements OnInit { | |||
197 | } | 195 | } |
198 | 196 | ||
199 | async unbanUsers (users: User[]) { | 197 | async unbanUsers (users: User[]) { |
200 | const message = this.i18n('Do you really want to unban {{num}} users?', { num: users.length }) | 198 | const res = await this.confirmService.confirm($localize`Do you really want to unban ${users.length} users?`, $localize`Unban`) |
201 | |||
202 | const res = await this.confirmService.confirm(message, this.i18n('Unban')) | ||
203 | if (res === false) return | 199 | if (res === false) return |
204 | 200 | ||
205 | this.userService.unbanUsers(users) | 201 | this.userService.unbanUsers(users) |
206 | .subscribe( | 202 | .subscribe( |
207 | () => { | 203 | () => { |
208 | const message = this.i18n('{{num}} users unbanned.', { num: users.length }) | 204 | this.notifier.success($localize`${users.length} users unbanned.`) |
209 | |||
210 | this.notifier.success(message) | ||
211 | this.loadData() | 205 | this.loadData() |
212 | }, | 206 | }, |
213 | 207 | ||
@@ -218,18 +212,18 @@ export class UserListComponent extends RestTable implements OnInit { | |||
218 | async removeUsers (users: User[]) { | 212 | async removeUsers (users: User[]) { |
219 | for (const user of users) { | 213 | for (const user of users) { |
220 | if (user.username === 'root') { | 214 | if (user.username === 'root') { |
221 | this.notifier.error(this.i18n('You cannot delete root.')) | 215 | this.notifier.error($localize`You cannot delete root.`) |
222 | return | 216 | return |
223 | } | 217 | } |
224 | } | 218 | } |
225 | 219 | ||
226 | const message = this.i18n('If you remove these users, you will not be able to create others with the same username!') | 220 | const message = $localize`If you remove these users, you will not be able to create others with the same username!` |
227 | const res = await this.confirmService.confirm(message, this.i18n('Delete')) | 221 | const res = await this.confirmService.confirm(message, $localize`Delete`) |
228 | if (res === false) return | 222 | if (res === false) return |
229 | 223 | ||
230 | this.userService.removeUser(users).subscribe( | 224 | this.userService.removeUser(users).subscribe( |
231 | () => { | 225 | () => { |
232 | this.notifier.success(this.i18n('{{num}} users deleted.', { num: users.length })) | 226 | this.notifier.success($localize`${users.length} users deleted.`) |
233 | this.loadData() | 227 | this.loadData() |
234 | }, | 228 | }, |
235 | 229 | ||
@@ -240,7 +234,7 @@ export class UserListComponent extends RestTable implements OnInit { | |||
240 | async setEmailsAsVerified (users: User[]) { | 234 | async setEmailsAsVerified (users: User[]) { |
241 | this.userService.updateUsers(users, { emailVerified: true }).subscribe( | 235 | this.userService.updateUsers(users, { emailVerified: true }).subscribe( |
242 | () => { | 236 | () => { |
243 | this.notifier.success(this.i18n('{{num}} users email set as verified.', { num: users.length })) | 237 | this.notifier.success($localize`${users.length} users email set as verified.`) |
244 | this.loadData() | 238 | this.loadData() |
245 | }, | 239 | }, |
246 | 240 | ||