From c0b9aac823b253aef77475c3d7528da1b634eecb Mon Sep 17 00:00:00 2001
From: _Bastler <_Bastler@bstly.de>
Date: Sun, 9 Nov 2025 02:54:26 +0100
Subject: [PATCH] fix pagination, bump version
---
package.json | 2 +-
.../jitsi-rooms/jitsi-rooms.component.html | 26 +++++------
.../jitsi-rooms/jitsi-rooms.component.ts | 30 ++++++++-----
.../minetest-accounts.component.html | 20 +++++----
.../minetest-accounts.component.ts | 30 ++++++++-----
.../oidc-clients/oidc-clients.component.html | 14 +++---
.../oidc-clients/oidc-clients.component.ts | 32 ++++++++------
.../partey-maps/partey-maps.component.html | 14 +++---
.../partey-maps/partey-maps.component.ts | 32 +++++++-------
.../partey-reports.component.html | 14 +++---
.../partey-reports.component.ts | 32 +++++++-------
.../partey-tags/partey-tags.component.html | 14 +++---
.../partey-tags/partey-tags.component.ts | 32 +++++++-------
.../permission-mappings.component.html | 14 +++---
.../permission-mappings.component.ts | 32 ++++++++------
.../permissions/permissions.component.html | 2 +-
.../quota-mappings.component.html | 14 +++---
.../quota-mappings.component.ts | 32 ++++++++------
.../pages/admin/quotas/quotas.component.html | 2 +-
.../admin/services/services.component.html | 22 +++++-----
.../admin/services/services.component.ts | 30 ++++++++-----
.../shortened-urls.component.html | 22 +++++-----
.../shortened-urls.component.ts | 32 ++++++++------
.../system-profile-fields.component.html | 14 +++---
.../system-profile-fields.component.ts | 32 ++++++++------
.../system-properties.component.html | 14 +++---
.../system-properties.component.ts | 32 ++++++++------
.../admin/timeslots/timeslots.component.html | 26 +++++------
.../admin/timeslots/timeslots.component.ts | 40 ++++++++---------
.../user-aliases/user-aliases.component.html | 18 ++++----
.../user-aliases/user-aliases.component.ts | 32 ++++++++------
.../pages/admin/users/users.component.html | 25 +++++------
src/app/pages/admin/users/users.component.ts | 43 +++++++++----------
.../voucher-mappings.component.html | 14 +++---
.../voucher-mappings.component.ts | 32 ++++++++------
.../pages/borrow/items/items.component.html | 2 +-
.../borrow/requests/requests.component.html | 4 +-
src/app/pages/invites/invites.component.html | 4 +-
src/app/pages/jitsi/jitsi.component.html | 2 +-
.../partey/timeslots/timeslots.component.html | 2 +-
.../urlshortener/urlshortener.component.html | 4 +-
41 files changed, 459 insertions(+), 375 deletions(-)
diff --git a/package.json b/package.json
index 2c50428..3645d85 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "we-bstly-angular",
- "version": "3.2.0",
+ "version": "3.5.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
diff --git a/src/app/pages/admin/jitsi-rooms/jitsi-rooms.component.html b/src/app/pages/admin/jitsi-rooms/jitsi-rooms.component.html
index ba44504..23b7d52 100644
--- a/src/app/pages/admin/jitsi-rooms/jitsi-rooms.component.html
+++ b/src/app/pages/admin/jitsi-rooms/jitsi-rooms.component.html
@@ -7,36 +7,37 @@
-
-
+@if (!!jitsiRooms) {
+
+
- {{'admin.jitsi_rooms.id' | i18n}}
+ {{'admin.jitsi_rooms.id' | i18n}}
{{room.id}}
- {{'admin.jitsi_rooms.owner' | i18n}}
+ {{'admin.jitsi_rooms.owner' | i18n}}
{{room.owner}}
- {{'admin.jitsi_rooms.room' | i18n}}
+ {{'admin.jitsi_rooms.room' | i18n}}
{{room.room}}
- {{'admin.jitsi_rooms.starts' | i18n}}
+ {{'admin.jitsi_rooms.starts' | i18n}}
{{room.starts | date:'short'}}
- {{'admin.jitsi_rooms.moderation_starts' | i18n}}
+ {{'admin.jitsi_rooms.moderation_starts' | i18n}}
{{room.moderationStarts | date:'short'}}
- {{'admin.jitsi_rooms.expires' | i18n}}
+ {{'admin.jitsi_rooms.expires' | i18n}}
{{room.expires | date:'short'}}
@@ -57,10 +58,11 @@
+}
diff --git a/src/app/pages/admin/jitsi-rooms/jitsi-rooms.component.ts b/src/app/pages/admin/jitsi-rooms/jitsi-rooms.component.ts
index 329769d..980312e 100644
--- a/src/app/pages/admin/jitsi-rooms/jitsi-rooms.component.ts
+++ b/src/app/pages/admin/jitsi-rooms/jitsi-rooms.component.ts
@@ -16,11 +16,10 @@ import { AdminJitsiRoomEditDialog } from './jitsi-room.edit';
export class AdminJitsiRoomsComponent implements OnInit {
displayedColumns: string[] = ['id', 'owner', 'room', 'starts', 'moderationStarts', 'expires', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
+ jitsiRooms: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator: MatPaginator;
@@ -29,7 +28,6 @@ export class AdminJitsiRoomsComponent implements OnInit {
private i18n: I18nService,
public dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource([]);
}
ngOnInit(): void {
@@ -37,11 +35,10 @@ export class AdminJitsiRoomsComponent implements OnInit {
}
loadJitsiRooms(): void {
- this.jitsiRoomManagementService.getJitsiRooms(this.pageIndex, this.pageSize)
+ this.jitsiRoomManagementService.getJitsiRooms(this.page.page, this.page.size)
.subscribe({
next: (data: any) => {
- this.dataSource.data = data.content;
- this.totalElements = data.totalElements;
+ this.jitsiRooms = data;
},
error: (error) => {
console.error('Error loading Jitsi rooms:', error);
@@ -49,9 +46,20 @@ export class AdminJitsiRoomsComponent implements OnInit {
});
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
+ this.loadJitsiRooms();
+ }
+
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
this.loadJitsiRooms();
}
diff --git a/src/app/pages/admin/minetest-accounts/minetest-accounts.component.html b/src/app/pages/admin/minetest-accounts/minetest-accounts.component.html
index e598271..339fedb 100644
--- a/src/app/pages/admin/minetest-accounts/minetest-accounts.component.html
+++ b/src/app/pages/admin/minetest-accounts/minetest-accounts.component.html
@@ -7,21 +7,22 @@
-
-
+@if (!!minetestAccounts) {
+
+
- {{'admin.minetest_accounts.name' | i18n}}
+ {{'admin.minetest_accounts.name' | i18n}}
{{account.name}}
- {{'admin.minetest_accounts.owner' | i18n}}
+ {{'admin.minetest_accounts.owner' | i18n}}
{{account.owner}}
- {{'admin.minetest_accounts.created' | i18n}}
+ {{'admin.minetest_accounts.created' | i18n}}
{{account.created | date:'short'}}
@@ -42,10 +43,11 @@
+}
diff --git a/src/app/pages/admin/minetest-accounts/minetest-accounts.component.ts b/src/app/pages/admin/minetest-accounts/minetest-accounts.component.ts
index e42ca87..f1a6c9e 100644
--- a/src/app/pages/admin/minetest-accounts/minetest-accounts.component.ts
+++ b/src/app/pages/admin/minetest-accounts/minetest-accounts.component.ts
@@ -15,11 +15,10 @@ import { ConfirmDialog } from './../../../ui/confirm/confirm.component';
export class AdminMinetestAccountsComponent implements OnInit {
displayedColumns: string[] = ['name', 'owner', 'created', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
+ minetestAccounts: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator: MatPaginator;
@@ -28,7 +27,6 @@ export class AdminMinetestAccountsComponent implements OnInit {
private i18n: I18nService,
public dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource([]);
}
ngOnInit(): void {
@@ -36,11 +34,10 @@ export class AdminMinetestAccountsComponent implements OnInit {
}
loadMinetestAccounts(): void {
- this.minetestAccountManagementService.getMinetestAccounts(this.pageIndex, this.pageSize)
+ this.minetestAccountManagementService.getMinetestAccounts(this.page.page, this.page.size)
.subscribe({
next: (data: any) => {
- this.dataSource.data = data.content;
- this.totalElements = data.totalElements;
+ this.minetestAccounts = data;
},
error: (error) => {
console.error('Error loading Minetest accounts:', error);
@@ -48,9 +45,20 @@ export class AdminMinetestAccountsComponent implements OnInit {
});
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
+ this.loadMinetestAccounts();
+ }
+
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
this.loadMinetestAccounts();
}
diff --git a/src/app/pages/admin/oidc-clients/oidc-clients.component.html b/src/app/pages/admin/oidc-clients/oidc-clients.component.html
index 27963bd..14dae0a 100644
--- a/src/app/pages/admin/oidc-clients/oidc-clients.component.html
+++ b/src/app/pages/admin/oidc-clients/oidc-clients.component.html
@@ -7,8 +7,9 @@
-
-
+@if (!!oidcClients) {
+
+
{{'admin.oidc_clients.id' | i18n}}
{{client.id}}
@@ -44,10 +45,11 @@
+}
diff --git a/src/app/pages/admin/oidc-clients/oidc-clients.component.ts b/src/app/pages/admin/oidc-clients/oidc-clients.component.ts
index bde5944..75cfdde 100644
--- a/src/app/pages/admin/oidc-clients/oidc-clients.component.ts
+++ b/src/app/pages/admin/oidc-clients/oidc-clients.component.ts
@@ -16,10 +16,10 @@ import { AdminOidcClientEditDialog } from './oidc-client.edit';
})
export class AdminOidcClientsComponent implements OnInit {
displayedColumns: string[] = ['id', 'clientId', 'clientName', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
+
+ oidcClients: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator!: MatPaginator;
@ViewChild(MatSort) sort!: MatSort;
@@ -29,7 +29,6 @@ export class AdminOidcClientsComponent implements OnInit {
private i18n: I18nService,
private dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource();
}
ngOnInit(): void {
@@ -37,10 +36,9 @@ export class AdminOidcClientsComponent implements OnInit {
}
loadClients(): void {
- this.oidcClientManagementService.getClients(this.pageIndex, this.pageSize).subscribe(
+ this.oidcClientManagementService.getClients(this.page.page, this.page.size).subscribe(
(data: any) => {
- this.dataSource.data = data.content || data;
- this.totalElements = data.totalElements || data.length;
+ this.oidcClients = data;
},
error => {
console.error('Error loading OIDC clients:', error);
@@ -48,15 +46,21 @@ export class AdminOidcClientsComponent implements OnInit {
);
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadClients();
}
- onSortChange(sort: any): void {
- // Sorting can be implemented when backend supports it
- console.log('Sort change:', sort);
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
+ this.loadClients();
}
deleteClient(client: any): void {
diff --git a/src/app/pages/admin/partey-maps/partey-maps.component.html b/src/app/pages/admin/partey-maps/partey-maps.component.html
index 25092bc..162bfdf 100644
--- a/src/app/pages/admin/partey-maps/partey-maps.component.html
+++ b/src/app/pages/admin/partey-maps/partey-maps.component.html
@@ -7,8 +7,9 @@
-
-
+@if (!!parteyMaps) {
+
+
{{'admin.partey_maps.id' | i18n}}
@@ -47,10 +48,11 @@
+}
diff --git a/src/app/pages/admin/partey-maps/partey-maps.component.ts b/src/app/pages/admin/partey-maps/partey-maps.component.ts
index 37b5c22..9b76dcf 100644
--- a/src/app/pages/admin/partey-maps/partey-maps.component.ts
+++ b/src/app/pages/admin/partey-maps/partey-maps.component.ts
@@ -16,13 +16,10 @@ import { ConfirmDialog } from './../../../ui/confirm/confirm.component';
export class AdminParteyMapsComponent implements OnInit {
displayedColumns: string[] = ['id', 'name', 'policyType', 'tags', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
- sortField = 'id';
- sortDescending = false;
+ parteyMaps: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@@ -32,7 +29,6 @@ export class AdminParteyMapsComponent implements OnInit {
private i18n: I18nService,
public dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource([]);
}
ngOnInit(): void {
@@ -40,11 +36,10 @@ export class AdminParteyMapsComponent implements OnInit {
}
loadParteyMaps(): void {
- this.parteyMapManagementService.getParteyMaps(this.pageIndex, this.pageSize, this.sortField, this.sortDescending)
+ this.parteyMapManagementService.getParteyMaps(this.page.page, this.page.size, this.page.sort, this.page.desc)
.subscribe({
next: (data: any) => {
- this.dataSource.data = data.content;
- this.totalElements = data.totalElements;
+ this.parteyMaps = data;
},
error: (error) => {
console.error('Error loading Partey maps:', error);
@@ -52,15 +47,20 @@ export class AdminParteyMapsComponent implements OnInit {
});
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadParteyMaps();
}
- onSortChange(sort: any): void {
- this.sortField = sort.active || 'id';
- this.sortDescending = sort.direction === 'desc';
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
this.loadParteyMaps();
}
diff --git a/src/app/pages/admin/partey-reports/partey-reports.component.html b/src/app/pages/admin/partey-reports/partey-reports.component.html
index 0994ac5..6511db4 100644
--- a/src/app/pages/admin/partey-reports/partey-reports.component.html
+++ b/src/app/pages/admin/partey-reports/partey-reports.component.html
@@ -7,8 +7,9 @@
-
-
+@if (!!parteyReports) {
+
+
{{'admin.partey_reports.id' | i18n}}
@@ -52,10 +53,11 @@
+}
diff --git a/src/app/pages/admin/partey-reports/partey-reports.component.ts b/src/app/pages/admin/partey-reports/partey-reports.component.ts
index 3c0b59d..909e573 100644
--- a/src/app/pages/admin/partey-reports/partey-reports.component.ts
+++ b/src/app/pages/admin/partey-reports/partey-reports.component.ts
@@ -16,13 +16,10 @@ import { ConfirmDialog } from './../../../ui/confirm/confirm.component';
export class AdminParteyReportsComponent implements OnInit {
displayedColumns: string[] = ['id', 'reporterUserUuid', 'reportedUserUuid', 'reportWorldSlug', 'created', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
- sortField = 'id';
- sortDescending = false;
+ parteyReports: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@@ -32,7 +29,6 @@ export class AdminParteyReportsComponent implements OnInit {
private i18n: I18nService,
public dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource([]);
}
ngOnInit(): void {
@@ -40,11 +36,10 @@ export class AdminParteyReportsComponent implements OnInit {
}
loadParteyReports(): void {
- this.userReportManagementService.getParteyUserReports(this.pageIndex, this.pageSize, this.sortField, this.sortDescending)
+ this.userReportManagementService.getParteyUserReports(this.page.page, this.page.size, this.page.sort, this.page.desc)
.subscribe({
next: (data: any) => {
- this.dataSource.data = data.content;
- this.totalElements = data.totalElements;
+ this.parteyReports = data;
},
error: (error) => {
console.error('Error loading Partey reports:', error);
@@ -52,15 +47,20 @@ export class AdminParteyReportsComponent implements OnInit {
});
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadParteyReports();
}
- onSortChange(sort: any): void {
- this.sortField = sort.active || 'id';
- this.sortDescending = sort.direction === 'desc';
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
this.loadParteyReports();
}
diff --git a/src/app/pages/admin/partey-tags/partey-tags.component.html b/src/app/pages/admin/partey-tags/partey-tags.component.html
index 1179da3..2679a92 100644
--- a/src/app/pages/admin/partey-tags/partey-tags.component.html
+++ b/src/app/pages/admin/partey-tags/partey-tags.component.html
@@ -7,8 +7,9 @@
-
-
+@if (!!parteyTags) {
+
+
{{'admin.partey_tags.id' | i18n}}
@@ -52,10 +53,11 @@
+}
diff --git a/src/app/pages/admin/partey-tags/partey-tags.component.ts b/src/app/pages/admin/partey-tags/partey-tags.component.ts
index f1ee8ae..c1042d8 100644
--- a/src/app/pages/admin/partey-tags/partey-tags.component.ts
+++ b/src/app/pages/admin/partey-tags/partey-tags.component.ts
@@ -16,13 +16,10 @@ import { ConfirmDialog } from './../../../ui/confirm/confirm.component';
export class AdminParteyTagsComponent implements OnInit {
displayedColumns: string[] = ['id', 'target', 'name', 'starts', 'expires', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
- sortField = 'target';
- sortDescending = false;
+ parteyTags: any;
+ page: any = { page: 0, size: 10, sort: "target", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@@ -32,7 +29,6 @@ export class AdminParteyTagsComponent implements OnInit {
private i18n: I18nService,
public dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource([]);
}
ngOnInit(): void {
@@ -40,11 +36,10 @@ export class AdminParteyTagsComponent implements OnInit {
}
loadParteyTags(): void {
- this.userTagManagementService.getParteyUserTags(this.pageIndex, this.pageSize, this.sortField, this.sortDescending)
+ this.userTagManagementService.getParteyUserTags(this.page.page, this.page.size, this.page.sort, this.page.desc)
.subscribe({
next: (data: any) => {
- this.dataSource.data = data.content;
- this.totalElements = data.totalElements;
+ this.parteyTags = data;
},
error: (error) => {
console.error('Error loading Partey tags:', error);
@@ -52,15 +47,20 @@ export class AdminParteyTagsComponent implements OnInit {
});
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadParteyTags();
}
- onSortChange(sort: any): void {
- this.sortField = sort.active || 'target';
- this.sortDescending = sort.direction === 'desc';
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "target";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
this.loadParteyTags();
}
diff --git a/src/app/pages/admin/permission-mappings/permission-mappings.component.html b/src/app/pages/admin/permission-mappings/permission-mappings.component.html
index 550740f..dae4108 100644
--- a/src/app/pages/admin/permission-mappings/permission-mappings.component.html
+++ b/src/app/pages/admin/permission-mappings/permission-mappings.component.html
@@ -7,8 +7,9 @@
-
-
+@if (!!permissionMappings) {
+
+
{{'admin.permission_mappings.id' | i18n}}
{{mapping.id}}
@@ -51,10 +52,11 @@
+}
diff --git a/src/app/pages/admin/permission-mappings/permission-mappings.component.ts b/src/app/pages/admin/permission-mappings/permission-mappings.component.ts
index a11172f..a31c62b 100644
--- a/src/app/pages/admin/permission-mappings/permission-mappings.component.ts
+++ b/src/app/pages/admin/permission-mappings/permission-mappings.component.ts
@@ -16,10 +16,10 @@ import { AdminPermissionMappingEditDialog } from './permission-mapping.edit';
})
export class AdminPermissionMappingsComponent implements OnInit {
displayedColumns: string[] = ['id', 'item', 'names', 'lifetime', 'product', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
+
+ permissionMappings: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator!: MatPaginator;
@ViewChild(MatSort) sort!: MatSort;
@@ -29,7 +29,6 @@ export class AdminPermissionMappingsComponent implements OnInit {
private i18n: I18nService,
private dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource();
}
ngOnInit(): void {
@@ -37,10 +36,9 @@ export class AdminPermissionMappingsComponent implements OnInit {
}
loadMappings(): void {
- this.permissionMappingManagementService.getPermissionMappings(this.pageIndex, this.pageSize).subscribe(
+ this.permissionMappingManagementService.getPermissionMappings(this.page.page, this.page.size).subscribe(
(data: any) => {
- this.dataSource.data = data.content || data;
- this.totalElements = data.totalElements || data.length;
+ this.permissionMappings = data;
},
error => {
console.error('Error loading permission mappings:', error);
@@ -48,15 +46,21 @@ export class AdminPermissionMappingsComponent implements OnInit {
);
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadMappings();
}
- onSortChange(sort: any): void {
- // Sorting can be implemented when backend supports it
- console.log('Sort change:', sort);
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
+ this.loadMappings();
}
createMapping(): void {
diff --git a/src/app/pages/admin/permissions/permissions.component.html b/src/app/pages/admin/permissions/permissions.component.html
index 631f570..51de7c7 100644
--- a/src/app/pages/admin/permissions/permissions.component.html
+++ b/src/app/pages/admin/permissions/permissions.component.html
@@ -17,7 +17,7 @@
@if (permissions.length > 0) {
-
+
diff --git a/src/app/pages/admin/quota-mappings/quota-mappings.component.html b/src/app/pages/admin/quota-mappings/quota-mappings.component.html
index a6aeafa..b265760 100644
--- a/src/app/pages/admin/quota-mappings/quota-mappings.component.html
+++ b/src/app/pages/admin/quota-mappings/quota-mappings.component.html
@@ -7,8 +7,9 @@
-
-
+@if (!!quotaMappings) {
+
+
{{'admin.quota_mappings.id' | i18n}}
{{mapping.id}}
@@ -51,10 +52,11 @@
+}
diff --git a/src/app/pages/admin/quota-mappings/quota-mappings.component.ts b/src/app/pages/admin/quota-mappings/quota-mappings.component.ts
index a43e775..661441d 100644
--- a/src/app/pages/admin/quota-mappings/quota-mappings.component.ts
+++ b/src/app/pages/admin/quota-mappings/quota-mappings.component.ts
@@ -16,10 +16,10 @@ import { AdminQuotaMappingEditDialog } from './quota-mapping.edit';
})
export class AdminQuotaMappingsComponent implements OnInit {
displayedColumns: string[] = ['id', 'name', 'value', 'unit', 'items', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
+
+ quotaMappings: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator!: MatPaginator;
@ViewChild(MatSort) sort!: MatSort;
@@ -29,7 +29,6 @@ export class AdminQuotaMappingsComponent implements OnInit {
private i18n: I18nService,
private dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource();
}
ngOnInit(): void {
@@ -37,10 +36,9 @@ export class AdminQuotaMappingsComponent implements OnInit {
}
loadMappings(): void {
- this.quotaMappingManagementService.getQuotaMappings(this.pageIndex, this.pageSize).subscribe(
+ this.quotaMappingManagementService.getQuotaMappings(this.page.page, this.page.size).subscribe(
(data: any) => {
- this.dataSource.data = data.content || data;
- this.totalElements = data.totalElements || data.length;
+ this.quotaMappings = data;
},
error => {
console.error('Error loading quota mappings:', error);
@@ -48,15 +46,21 @@ export class AdminQuotaMappingsComponent implements OnInit {
);
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadMappings();
}
- onSortChange(sort: any): void {
- // Sorting can be implemented when backend supports it
- console.log('Sort change:', sort);
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
+ this.loadMappings();
}
createMapping(): void {
diff --git a/src/app/pages/admin/quotas/quotas.component.html b/src/app/pages/admin/quotas/quotas.component.html
index c2616c5..6d7f78f 100644
--- a/src/app/pages/admin/quotas/quotas.component.html
+++ b/src/app/pages/admin/quotas/quotas.component.html
@@ -17,7 +17,7 @@
@if (quotas.length > 0) {
-
+
diff --git a/src/app/pages/admin/services/services.component.html b/src/app/pages/admin/services/services.component.html
index b19dd6a..9f87bed 100644
--- a/src/app/pages/admin/services/services.component.html
+++ b/src/app/pages/admin/services/services.component.html
@@ -7,26 +7,27 @@
-
-
+@if (!!services) {
+
+
- {{'admin.services.name' | i18n}}
+ {{'admin.services.name' | i18n}}
{{service.name}}
- {{'admin.services.url' | i18n}}
+ {{'admin.services.url' | i18n}}
{{service.url}}
- {{'admin.services.category' | i18n}}
+ {{'admin.services.category' | i18n}}
{{service.category}}
- {{'admin.services.permission' | i18n}}
+ {{'admin.services.permission' | i18n}}
{{service.permission}}
@@ -47,10 +48,11 @@
+}
diff --git a/src/app/pages/admin/services/services.component.ts b/src/app/pages/admin/services/services.component.ts
index aa6d3f8..d2d3886 100644
--- a/src/app/pages/admin/services/services.component.ts
+++ b/src/app/pages/admin/services/services.component.ts
@@ -16,11 +16,10 @@ import { AdminServiceEditDialog } from './service.edit';
export class AdminServicesComponent implements OnInit {
displayedColumns: string[] = ['name', 'url', 'category', 'permission', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
+ services: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator: MatPaginator;
@@ -29,7 +28,6 @@ export class AdminServicesComponent implements OnInit {
private i18n: I18nService,
public dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource([]);
}
ngOnInit(): void {
@@ -37,11 +35,10 @@ export class AdminServicesComponent implements OnInit {
}
loadServices(): void {
- this.serviceManagementService.getAllServices(this.pageIndex, this.pageSize)
+ this.serviceManagementService.getAllServices(this.page.page, this.page.size)
.subscribe({
next: (data: any) => {
- this.dataSource.data = data.content;
- this.totalElements = data.totalElements;
+ this.services = data;
},
error: (error) => {
console.error('Error loading services:', error);
@@ -49,9 +46,20 @@ export class AdminServicesComponent implements OnInit {
});
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
+ this.loadServices();
+ }
+
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
this.loadServices();
}
diff --git a/src/app/pages/admin/shortened-urls/shortened-urls.component.html b/src/app/pages/admin/shortened-urls/shortened-urls.component.html
index 85335a2..345472d 100644
--- a/src/app/pages/admin/shortened-urls/shortened-urls.component.html
+++ b/src/app/pages/admin/shortened-urls/shortened-urls.component.html
@@ -24,26 +24,27 @@
-
-
+@if (!!shortenedUrls) {
+
+
- {{'admin.shortened_urls.code' | i18n}}
+ {{'admin.shortened_urls.code' | i18n}}
{{url.code}}
- {{'admin.shortened_urls.url' | i18n}}
+ {{'admin.shortened_urls.url' | i18n}}
{{url.url}}
- {{'admin.shortened_urls.owner' | i18n}}
+ {{'admin.shortened_urls.owner' | i18n}}
{{url.owner}}
- {{'admin.shortened_urls.created' | i18n}}
+ {{'admin.shortened_urls.created' | i18n}}
{{url.created | date:'short'}}
@@ -64,10 +65,11 @@
+}
diff --git a/src/app/pages/admin/shortened-urls/shortened-urls.component.ts b/src/app/pages/admin/shortened-urls/shortened-urls.component.ts
index f1415ce..fcc1ca0 100644
--- a/src/app/pages/admin/shortened-urls/shortened-urls.component.ts
+++ b/src/app/pages/admin/shortened-urls/shortened-urls.component.ts
@@ -17,12 +17,11 @@ import { AdminShortenedUrlEditDialog } from './shortened-url.edit';
export class AdminShortenedUrlsComponent implements OnInit {
displayedColumns: string[] = ['code', 'url', 'owner', 'created', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
+ shortenedUrls: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
searchText: string = '';
+ pageSizeOptions: number[] = [5, 10, 25, 50];
searchForm: FormGroup;
@@ -34,7 +33,6 @@ export class AdminShortenedUrlsComponent implements OnInit {
private formBuilder: FormBuilder,
public dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource([]);
this.searchForm = this.formBuilder.group({
search: ['']
});
@@ -45,11 +43,10 @@ export class AdminShortenedUrlsComponent implements OnInit {
}
loadShortenedUrls(): void {
- this.shortenedUrlManagementService.getShortenedUrls(this.pageIndex, this.pageSize, this.searchText)
+ this.shortenedUrlManagementService.getShortenedUrls(this.page.page, this.page.size, this.searchText)
.subscribe({
next: (data: any) => {
- this.dataSource.data = data.content;
- this.totalElements = data.totalElements;
+ this.shortenedUrls = data;
},
error: (error) => {
console.error('Error loading shortened URLs:', error);
@@ -57,15 +54,26 @@ export class AdminShortenedUrlsComponent implements OnInit {
});
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
+ this.loadShortenedUrls();
+ }
+
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
this.loadShortenedUrls();
}
onSearch(): void {
this.searchText = this.searchForm.value.search;
- this.pageIndex = 0;
+ this.page.page = 0;
this.loadShortenedUrls();
}
diff --git a/src/app/pages/admin/system-profile-fields/system-profile-fields.component.html b/src/app/pages/admin/system-profile-fields/system-profile-fields.component.html
index 1c39807..fe2fad8 100644
--- a/src/app/pages/admin/system-profile-fields/system-profile-fields.component.html
+++ b/src/app/pages/admin/system-profile-fields/system-profile-fields.component.html
@@ -7,8 +7,9 @@
-
-
+@if (!!systemProfileFields) {
+
+
{{'admin.system_profile_fields.name' | i18n}}
{{field.name}}
@@ -41,10 +42,11 @@
+}
diff --git a/src/app/pages/admin/system-profile-fields/system-profile-fields.component.ts b/src/app/pages/admin/system-profile-fields/system-profile-fields.component.ts
index 461069a..841bf46 100644
--- a/src/app/pages/admin/system-profile-fields/system-profile-fields.component.ts
+++ b/src/app/pages/admin/system-profile-fields/system-profile-fields.component.ts
@@ -16,10 +16,10 @@ import { AdminSystemProfileFieldEditDialog } from './system-profile-field.edit';
})
export class AdminSystemProfileFieldsComponent implements OnInit {
displayedColumns: string[] = ['name', 'type', 'uniqueValue', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
+
+ systemProfileFields: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator!: MatPaginator;
@ViewChild(MatSort) sort!: MatSort;
@@ -29,7 +29,6 @@ export class AdminSystemProfileFieldsComponent implements OnInit {
private i18n: I18nService,
private dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource();
}
ngOnInit(): void {
@@ -37,10 +36,9 @@ export class AdminSystemProfileFieldsComponent implements OnInit {
}
loadFields(): void {
- this.systemProfileFieldManagementService.getSystemProfileFields(this.pageIndex, this.pageSize).subscribe(
+ this.systemProfileFieldManagementService.getSystemProfileFields(this.page.page, this.page.size).subscribe(
(data: any) => {
- this.dataSource.data = data.content || data;
- this.totalElements = data.totalElements || data.length;
+ this.systemProfileFields = data;
},
error => {
console.error('Error loading system profile fields:', error);
@@ -48,15 +46,21 @@ export class AdminSystemProfileFieldsComponent implements OnInit {
);
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadFields();
}
- onSortChange(sort: any): void {
- // Sorting can be implemented when backend supports it
- console.log('Sort change:', sort);
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
+ this.loadFields();
}
deleteField(field: any): void {
diff --git a/src/app/pages/admin/system-properties/system-properties.component.html b/src/app/pages/admin/system-properties/system-properties.component.html
index 0e89316..886670e 100644
--- a/src/app/pages/admin/system-properties/system-properties.component.html
+++ b/src/app/pages/admin/system-properties/system-properties.component.html
@@ -10,8 +10,9 @@
-
-
+@if (!!systemProperties) {
+
+
{{'admin.system_properties.key' | i18n}}
{{property.key}}
@@ -39,10 +40,11 @@
+}
diff --git a/src/app/pages/admin/system-properties/system-properties.component.ts b/src/app/pages/admin/system-properties/system-properties.component.ts
index 35e7159..c3336ff 100644
--- a/src/app/pages/admin/system-properties/system-properties.component.ts
+++ b/src/app/pages/admin/system-properties/system-properties.component.ts
@@ -16,10 +16,10 @@ import { AdminSystemPropertyEditDialog } from './system-property.edit';
})
export class AdminSystemPropertiesComponent implements OnInit {
displayedColumns: string[] = ['key', 'value', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
+
+ systemProperties: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator!: MatPaginator;
@ViewChild(MatSort) sort!: MatSort;
@@ -29,7 +29,6 @@ export class AdminSystemPropertiesComponent implements OnInit {
private i18n: I18nService,
private dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource();
}
ngOnInit(): void {
@@ -37,10 +36,9 @@ export class AdminSystemPropertiesComponent implements OnInit {
}
loadProperties(): void {
- this.systemManagementService.getProperties(this.pageIndex, this.pageSize).subscribe(
+ this.systemManagementService.getProperties(this.page.page, this.page.size).subscribe(
(data: any) => {
- this.dataSource.data = data.content || data;
- this.totalElements = data.totalElements || data.length;
+ this.systemProperties = data;
},
error => {
console.error('Error loading system properties:', error);
@@ -48,15 +46,21 @@ export class AdminSystemPropertiesComponent implements OnInit {
);
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadProperties();
}
- onSortChange(sort: any): void {
- // Sorting can be implemented when backend supports it
- console.log('Sort change:', sort);
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
+ this.loadProperties();
}
deleteProperty(property: any): void {
diff --git a/src/app/pages/admin/timeslots/timeslots.component.html b/src/app/pages/admin/timeslots/timeslots.component.html
index b5256ae..bff436a 100644
--- a/src/app/pages/admin/timeslots/timeslots.component.html
+++ b/src/app/pages/admin/timeslots/timeslots.component.html
@@ -53,8 +53,9 @@
-
-
+@if (!!timeslots) {
+
+
{{'admin.timeslots.id' | i18n}}
@@ -62,32 +63,32 @@
- {{'admin.timeslots.owner' | i18n}}
+ {{'admin.timeslots.owner' | i18n}}
{{timeslot.owner}}
- {{'admin.timeslots.title' | i18n}}
+ {{'admin.timeslots.title' | i18n}}
{{timeslot.title}}
- {{'admin.timeslots.type' | i18n}}
+ {{'admin.timeslots.type' | i18n}}
{{timeslot.type}}
- {{'admin.timeslots.visibility' | i18n}}
+ {{'admin.timeslots.visibility' | i18n}}
{{timeslot.visibility}}
- {{'admin.timeslots.start' | i18n}}
+ {{'admin.timeslots.start' | i18n}}
{{timeslot.start | date:'short'}}
- {{'admin.timeslots.end' | i18n}}
+ {{'admin.timeslots.end' | i18n}}
{{timeslot.end | date:'short'}}
@@ -108,10 +109,11 @@
+}
diff --git a/src/app/pages/admin/timeslots/timeslots.component.ts b/src/app/pages/admin/timeslots/timeslots.component.ts
index 347bd80..a334ba9 100644
--- a/src/app/pages/admin/timeslots/timeslots.component.ts
+++ b/src/app/pages/admin/timeslots/timeslots.component.ts
@@ -17,13 +17,10 @@ import { ConfirmDialog } from './../../../ui/confirm/confirm.component';
export class AdminTimeslotsComponent implements OnInit {
displayedColumns: string[] = ['id', 'owner', 'title', 'type', 'visibility', 'start', 'end', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
- sortField = 'id';
- sortDescending = false;
+ timeslots: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
filterForm: FormGroup;
@@ -36,7 +33,6 @@ export class AdminTimeslotsComponent implements OnInit {
private formBuilder: FormBuilder,
public dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource([]);
this.filterForm = this.formBuilder.group({
owner: [''],
type: [''],
@@ -52,10 +48,10 @@ export class AdminTimeslotsComponent implements OnInit {
loadTimeslots(): void {
const filters = this.filterForm.value;
this.timeslotManagementService.getTimeslots(
- this.pageIndex,
- this.pageSize,
- this.sortField,
- this.sortDescending,
+ this.page.page,
+ this.page.size,
+ this.page.sort,
+ this.page.desc,
filters.owner || undefined,
undefined,
undefined,
@@ -64,8 +60,7 @@ export class AdminTimeslotsComponent implements OnInit {
filters.search || undefined
).subscribe({
next: (data: any) => {
- this.dataSource.data = data.content;
- this.totalElements = data.totalElements;
+ this.timeslots = data;
},
error: (error) => {
console.error('Error loading timeslots:', error);
@@ -73,20 +68,25 @@ export class AdminTimeslotsComponent implements OnInit {
});
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadTimeslots();
}
- onSortChange(sort: any): void {
- this.sortField = sort.active || 'id';
- this.sortDescending = sort.direction === 'desc';
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
this.loadTimeslots();
}
applyFilter(): void {
- this.pageIndex = 0;
+ this.page.page = 0;
this.loadTimeslots();
}
diff --git a/src/app/pages/admin/user-aliases/user-aliases.component.html b/src/app/pages/admin/user-aliases/user-aliases.component.html
index 36966b5..882ce42 100644
--- a/src/app/pages/admin/user-aliases/user-aliases.component.html
+++ b/src/app/pages/admin/user-aliases/user-aliases.component.html
@@ -7,8 +7,9 @@
-
-
+@if (!!userAliases) {
+
+
{{'admin.user_aliases.id' | i18n}}
{{alias.id}}
@@ -20,12 +21,12 @@
- {{'admin.user_aliases.target' | i18n}}
+ {{'admin.user_aliases.target' | i18n}}
{{alias.target}}
- {{'admin.user_aliases.visibility' | i18n}}
+ {{'admin.user_aliases.visibility' | i18n}}
{{alias.visibility}}
@@ -46,10 +47,11 @@
+}
diff --git a/src/app/pages/admin/user-aliases/user-aliases.component.ts b/src/app/pages/admin/user-aliases/user-aliases.component.ts
index 9fee44a..aa98b94 100644
--- a/src/app/pages/admin/user-aliases/user-aliases.component.ts
+++ b/src/app/pages/admin/user-aliases/user-aliases.component.ts
@@ -16,10 +16,10 @@ import { AdminUserAliasEditDialog } from './user-alias.edit';
})
export class AdminUserAliasesComponent implements OnInit {
displayedColumns: string[] = ['id', 'alias', 'target', 'visibility', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
+
+ userAliases: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator!: MatPaginator;
@ViewChild(MatSort) sort!: MatSort;
@@ -29,7 +29,6 @@ export class AdminUserAliasesComponent implements OnInit {
private i18n: I18nService,
private dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource();
}
ngOnInit(): void {
@@ -37,10 +36,9 @@ export class AdminUserAliasesComponent implements OnInit {
}
loadAliases(): void {
- this.userAliasManagementService.getAliases(this.pageIndex, this.pageSize).subscribe(
+ this.userAliasManagementService.getAliases(this.page.page, this.page.size).subscribe(
(data: any) => {
- this.dataSource.data = data.content || data;
- this.totalElements = data.totalElements || data.length;
+ this.userAliases = data;
},
error => {
console.error('Error loading user aliases:', error);
@@ -48,15 +46,21 @@ export class AdminUserAliasesComponent implements OnInit {
);
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadAliases();
}
- onSortChange(sort: any): void {
- // Sorting can be implemented when backend supports it
- console.log('Sort change:', sort);
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
+ this.loadAliases();
}
deleteAlias(alias: any): void {
diff --git a/src/app/pages/admin/users/users.component.html b/src/app/pages/admin/users/users.component.html
index 8e06b75..c202bab 100644
--- a/src/app/pages/admin/users/users.component.html
+++ b/src/app/pages/admin/users/users.component.html
@@ -7,8 +7,9 @@
-
-
+@if (!!users) {
+
+
{{'admin.users.id' | i18n}}
@@ -25,21 +26,18 @@
{{user.status}}
-
- {{'admin.users.created' | i18n}}
- {{user.created | date:'short'}}
-
-
{{'admin.actions' | i18n}}
edit
-
+
security
-
+
data_usage
@@ -52,11 +50,8 @@
-
+
+}
\ No newline at end of file
diff --git a/src/app/pages/admin/users/users.component.ts b/src/app/pages/admin/users/users.component.ts
index 485a7fe..23f6aad 100644
--- a/src/app/pages/admin/users/users.component.ts
+++ b/src/app/pages/admin/users/users.component.ts
@@ -1,10 +1,9 @@
import { Component, OnInit, ViewChild } from '@angular/core';
-import { MatPaginator, PageEvent } from '@angular/material/paginator';
-import { MatSort } from '@angular/material/sort';
-import { MatTableDataSource } from '@angular/material/table';
import { MatDialog } from '@angular/material/dialog';
-import { I18nService } from './../../../services/i18n.service';
+import { MatPaginator, PageEvent } from '@angular/material/paginator';
+import { MatSort, Sort } from '@angular/material/sort';
import { UserManagementService } from '../../../services/admin/user.management.service';
+import { I18nService } from './../../../services/i18n.service';
import { ConfirmDialog } from './../../../ui/confirm/confirm.component';
import { AdminUserEditDialog } from './user.edit';
@@ -16,14 +15,11 @@ import { AdminUserEditDialog } from './user.edit';
})
export class AdminUsersComponent implements OnInit {
- displayedColumns: string[] = ['id', 'username', 'status', 'created', 'actions'];
- dataSource: MatTableDataSource;
-
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
- sortField = 'username';
- sortDescending = false;
+ displayedColumns: string[] = ['id', 'username', 'status', 'actions'];
+
+ users: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@@ -33,7 +29,6 @@ export class AdminUsersComponent implements OnInit {
private i18n: I18nService,
public dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource([]);
}
ngOnInit(): void {
@@ -41,11 +36,10 @@ export class AdminUsersComponent implements OnInit {
}
loadUsers(): void {
- this.userManagementService.getUsers(this.pageIndex, this.pageSize, this.sortField, this.sortDescending)
+ this.userManagementService.getUsers(this.page.page, this.page.size, this.page.sort, this.page.desc)
.subscribe({
next: (data: any) => {
- this.dataSource.data = data.content;
- this.totalElements = data.totalElements;
+ this.users = data;
},
error: (error) => {
console.error('Error loading users:', error);
@@ -53,15 +47,20 @@ export class AdminUsersComponent implements OnInit {
});
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadUsers();
}
- onSortChange(sort: any): void {
- this.sortField = sort.active || 'username';
- this.sortDescending = sort.direction === 'desc';
+ updateSort(sort: Sort): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
this.loadUsers();
}
diff --git a/src/app/pages/admin/voucher-mappings/voucher-mappings.component.html b/src/app/pages/admin/voucher-mappings/voucher-mappings.component.html
index 8547ed5..6e87228 100644
--- a/src/app/pages/admin/voucher-mappings/voucher-mappings.component.html
+++ b/src/app/pages/admin/voucher-mappings/voucher-mappings.component.html
@@ -7,8 +7,9 @@
-
-
+@if (!!voucherMappings) {
+
+
{{'admin.voucher_mappings.id' | i18n}}
{{mapping.id}}
@@ -51,10 +52,11 @@
+}
diff --git a/src/app/pages/admin/voucher-mappings/voucher-mappings.component.ts b/src/app/pages/admin/voucher-mappings/voucher-mappings.component.ts
index 1f76f23..a81be9c 100644
--- a/src/app/pages/admin/voucher-mappings/voucher-mappings.component.ts
+++ b/src/app/pages/admin/voucher-mappings/voucher-mappings.component.ts
@@ -16,10 +16,10 @@ import { AdminVoucherMappingEditDialog } from './voucher-mapping.edit';
})
export class AdminVoucherMappingsComponent implements OnInit {
displayedColumns: string[] = ['id', 'name', 'voucher', 'quota', 'free', 'actions'];
- dataSource: MatTableDataSource;
- totalElements = 0;
- pageSize = 10;
- pageIndex = 0;
+
+ voucherMappings: any;
+ page: any = { page: 0, size: 10, sort: "id", desc: false };
+ pageSizeOptions: number[] = [5, 10, 25, 50];
@ViewChild(MatPaginator) paginator!: MatPaginator;
@ViewChild(MatSort) sort!: MatSort;
@@ -29,7 +29,6 @@ export class AdminVoucherMappingsComponent implements OnInit {
private i18n: I18nService,
private dialog: MatDialog
) {
- this.dataSource = new MatTableDataSource();
}
ngOnInit(): void {
@@ -37,10 +36,9 @@ export class AdminVoucherMappingsComponent implements OnInit {
}
loadMappings(): void {
- this.voucherMappingManagementService.getVoucherMappings(this.pageIndex, this.pageSize).subscribe(
+ this.voucherMappingManagementService.getVoucherMappings(this.page.page, this.page.size).subscribe(
(data: any) => {
- this.dataSource.data = data.content || data;
- this.totalElements = data.totalElements || data.length;
+ this.voucherMappings = data;
},
error => {
console.error('Error loading voucher mappings:', error);
@@ -48,15 +46,21 @@ export class AdminVoucherMappingsComponent implements OnInit {
);
}
- onPageChange(event: PageEvent): void {
- this.pageIndex = event.pageIndex;
- this.pageSize = event.pageSize;
+ updatePages(event: PageEvent): void {
+ this.page.page = event.pageIndex;
+ this.page.size = event.pageSize;
this.loadMappings();
}
- onSortChange(sort: any): void {
- // Sorting can be implemented when backend supports it
- console.log('Sort change:', sort);
+ updateSort(sort: any): void {
+ if (sort.direction == "") {
+ this.page.sort = "id";
+ this.page.desc = false;
+ } else {
+ this.page.sort = sort.active;
+ this.page.desc = sort.direction == "desc";
+ }
+ this.loadMappings();
}
deleteMapping(mapping: any): void {
diff --git a/src/app/pages/borrow/items/items.component.html b/src/app/pages/borrow/items/items.component.html
index 854f1fb..426b24c 100644
--- a/src/app/pages/borrow/items/items.component.html
+++ b/src/app/pages/borrow/items/items.component.html
@@ -62,7 +62,7 @@
-
}
\ No newline at end of file
diff --git a/src/app/pages/borrow/requests/requests.component.html b/src/app/pages/borrow/requests/requests.component.html
index 474b08d..50ea23f 100644
--- a/src/app/pages/borrow/requests/requests.component.html
+++ b/src/app/pages/borrow/requests/requests.component.html
@@ -47,7 +47,7 @@
-
+
}
\ No newline at end of file
diff --git a/src/app/pages/invites/invites.component.html b/src/app/pages/invites/invites.component.html
index ae4de51..43fd18b 100644
--- a/src/app/pages/invites/invites.component.html
+++ b/src/app/pages/invites/invites.component.html
@@ -91,7 +91,7 @@
-
}
@@ -176,7 +176,7 @@
-
}
\ No newline at end of file
diff --git a/src/app/pages/jitsi/jitsi.component.html b/src/app/pages/jitsi/jitsi.component.html
index 388bc79..d9c87a3 100644
--- a/src/app/pages/jitsi/jitsi.component.html
+++ b/src/app/pages/jitsi/jitsi.component.html
@@ -86,7 +86,7 @@
-
}
diff --git a/src/app/pages/partey/timeslots/timeslots.component.html b/src/app/pages/partey/timeslots/timeslots.component.html
index d30a0b9..e8614ae 100644
--- a/src/app/pages/partey/timeslots/timeslots.component.html
+++ b/src/app/pages/partey/timeslots/timeslots.component.html
@@ -116,7 +116,7 @@
-
}
diff --git a/src/app/pages/urlshortener/urlshortener.component.html b/src/app/pages/urlshortener/urlshortener.component.html
index b9b5377..688b288 100644
--- a/src/app/pages/urlshortener/urlshortener.component.html
+++ b/src/app/pages/urlshortener/urlshortener.component.html
@@ -68,8 +68,8 @@
-
+
}