aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/+admin/users/user-list/user-list.component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/+admin/users/user-list/user-list.component.ts')
-rw-r--r--client/src/app/+admin/users/user-list/user-list.component.ts40
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 @@
1import { SortMeta } from 'primeng/api' 1import { SortMeta } from 'primeng/api'
2import { Component, OnInit, ViewChild } from '@angular/core' 2import { Component, OnInit, ViewChild } from '@angular/core'
3import { ActivatedRoute, Params, Router } from '@angular/router'
3import { AuthService, ConfirmService, Notifier, RestPagination, RestTable, ServerService, UserService } from '@app/core' 4import { AuthService, ConfirmService, Notifier, RestPagination, RestTable, ServerService, UserService } from '@app/core'
4import { Actor, DropdownAction } from '@app/shared/shared-main' 5import { Actor, DropdownAction } from '@app/shared/shared-main'
5import { UserBanModalComponent } from '@app/shared/shared-moderation' 6import { UserBanModalComponent } from '@app/shared/shared-moderation'
6import { I18n } from '@ngx-translate/i18n-polyfill'
7import { ServerConfig, User, UserRole } from '@shared/models' 7import { ServerConfig, User, UserRole } from '@shared/models'
8import { Params, Router, ActivatedRoute } from '@angular/router'
9 8
10type UserForList = User & { 9type 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