From d63ec72d2df14033e8a8566296e5d36decf12373 Mon Sep 17 00:00:00 2001 From: Wicklow Date: Wed, 11 Oct 2023 17:44:33 +0200 Subject: [PATCH] Add query params logic in admin user list --- .../users/user-list/user-list.component.html | 4 +-- .../users/user-list/user-list.component.ts | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) 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..12a6cc874 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,22 @@ 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 + } + + }