modify user settings to use new pagination

This commit is contained in:
rubikscraft
2022-05-08 16:20:16 +02:00
parent 51675fcf32
commit 241f300a54
7 changed files with 25 additions and 18 deletions

View File

@@ -53,6 +53,7 @@ export class UserAdminController {
users: found.results.map(EUserBackend2EUser),
page: found.page,
pages: found.pages,
total: found.totalResults,
};
}

View File

@@ -75,6 +75,7 @@ export class ImageManageController {
images: found.results,
page: found.page,
pages: found.pages,
total: found.totalResults,
};
}

View File

@@ -68,7 +68,7 @@
[pageSizeOptions]="pageSizeOptions"
[pageSize]="startingPageSize"
[hidePageSize]="utilService.isMobile() | async"
length="Infinity"
[length]="totalUsers"
aria-label="Select page of users"
(page)="updateSubject.next($event)"
>

View File

@@ -28,6 +28,7 @@ export class SettingsUsersComponent implements OnInit {
public dataSubject = new BehaviorSubject<EUser[]>([]);
public updateSubject = new Subject<PageEvent>();
public totalUsers: number = 0;
@ViewChild(MatPaginator) paginator: MatPaginator;
@@ -126,8 +127,9 @@ export class SettingsUsersComponent implements OnInit {
return false;
}
if (result.length > 0) {
this.dataSubject.next(result);
if (result.users.length > 0) {
this.dataSubject.next(result.users);
this.totalUsers = result.total;
return true;
}

View File

@@ -1,18 +1,18 @@
import { Injectable } from '@angular/core';
import {
UserCreateRequest,
UserCreateResponse,
UserDeleteRequest,
UserDeleteResponse,
UserInfoRequest,
UserInfoResponse,
UserListRequest,
UserListResponse,
UserUpdateRequest,
UserUpdateResponse
UserCreateRequest,
UserCreateResponse,
UserDeleteRequest,
UserDeleteResponse,
UserInfoRequest,
UserInfoResponse,
UserListRequest,
UserListResponse,
UserUpdateRequest,
UserUpdateResponse
} from 'picsur-shared/dist/dto/api/user-manage.dto';
import { EUser } from 'picsur-shared/dist/entities/user.entity';
import { AsyncFailable, Open } from 'picsur-shared/dist/types';
import { AsyncFailable } from 'picsur-shared/dist/types';
import { ApiService } from './api.service';
@Injectable({
@@ -30,8 +30,11 @@ export class UserAdminService {
);
}
public async getUsers(count: number, page: number): AsyncFailable<EUser[]> {
const result = await this.api.post(
public async getUsers(
count: number,
page: number
): AsyncFailable<UserListResponse> {
return await this.api.post(
UserListRequest,
UserListResponse,
'/api/user/list',
@@ -40,8 +43,6 @@ export class UserAdminService {
page,
}
);
return Open(result, 'users');
}
public async createUser(user: UserCreateRequest): AsyncFailable<EUser> {

View File

@@ -22,6 +22,7 @@ export const ImageListResponseSchema = z.object({
images: z.array(EImageSchema),
page: IsPosInt(),
pages: IsPosInt(),
total: IsPosInt(),
});
export class ImageListResponse extends createZodDto(ImageListResponseSchema) {}

View File

@@ -18,6 +18,7 @@ export const UserListResponseSchema = z.object({
users: z.array(EUserSchema),
page: IsPosInt(),
pages: IsPosInt(),
total: IsPosInt(),
});
export class UserListResponse extends createZodDto(UserListResponseSchema) {}