diff --git a/client/src/app/+admin/overview/users/user-list/user-list.component.html b/client/src/app/+admin/overview/users/user-list/user-list.component.html index 142057141..cec324f41 100644 --- a/client/src/app/+admin/overview/users/user-list/user-list.component.html +++ b/client/src/app/+admin/overview/users/user-list/user-list.component.html @@ -4,9 +4,9 @@ diff --git a/client/src/app/+admin/overview/users/user-list/user-list.component.ts b/client/src/app/+admin/overview/users/user-list/user-list.component.ts index a5a1552da..327cb34f4 100644 --- a/client/src/app/+admin/overview/users/user-list/user-list.component.ts +++ b/client/src/app/+admin/overview/users/user-list/user-list.component.ts @@ -9,6 +9,7 @@ import { AccountMutedStatus, BlocklistService, UserBanModalComponent, UserModera import { UserAdminService } from '@app/shared/shared-users' import { User, UserRole, UserRoleType } from '@peertube/peertube-models' import { logger } from '@root-helpers/logger' +import { TableLazyLoadEvent } from 'primeng/table' type UserForList = User & { rawVideoQuota: number @@ -88,7 +89,18 @@ export class UserListComponent extends RestTable implements OnInit { this.saveSelectedColumns() } + start = 0 + ngOnInit () { + this.route.queryParams.subscribe(params => { + const paramPage = +params['page'] + const paramCount = +params['count'] + + if (!isNaN(paramPage) && !isNaN(paramCount)) { + this.rowsPerPage = paramCount + this.start = paramCount * (paramPage - 1) + } + }) this.serverService.getConfig() .subscribe(config => this.requiresEmailVerification = config.signup.requiresEmailVerification) @@ -321,4 +333,21 @@ export class UserListComponent extends RestTable implements OnInit { } }) } + + onLazyLoadHandler (event: TableLazyLoadEvent) { + this.loadLazy(event) + + const url = new URL(window.location.href) + const page = event.first / event.rows + 1 + + url.searchParams.set('page', page.toString()) + url.searchParams.set('count', event.rows.toString()) + + window.history.pushState({}, document.title, url.href) + + this.start = event.first + + this.pagination.start = this.start + } + }