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) { +
+
- + - + - + - + - + - + @@ -57,10 +58,11 @@
{{'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'}}
+} 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) { +
+
- + - + - + @@ -42,10 +43,11 @@
{{'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'}}
+} 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) { +
+
@@ -44,10 +45,11 @@
{{'admin.oidc_clients.id' | i18n}} {{client.id}}
+} 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) { +
+
@@ -47,10 +48,11 @@
{{'admin.partey_maps.id' | i18n}}
+} 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) { +
+
@@ -52,10 +53,11 @@
{{'admin.partey_reports.id' | i18n}}
+} 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) { +
+
@@ -52,10 +53,11 @@
{{'admin.partey_tags.id' | i18n}}
+} 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) { +
+
@@ -51,10 +52,11 @@
{{'admin.permission_mappings.id' | i18n}} {{mapping.id}}
+} 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) { +
+
@@ -51,10 +52,11 @@
{{'admin.quota_mappings.id' | i18n}} {{mapping.id}}
+} 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) { +
+
- + - + - + - + @@ -47,10 +48,11 @@
{{'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}}
+} 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) { +
+
- + - + - + - + @@ -64,10 +65,11 @@
{{'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'}}
+} 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) { +
+
@@ -41,10 +42,11 @@
{{'admin.system_profile_fields.name' | i18n}} {{field.name}}
+} 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) { +
+
@@ -39,10 +40,11 @@
{{'admin.system_properties.key' | i18n}} {{property.key}}
+} 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) { +
+
@@ -62,32 +63,32 @@ - + - + - + - + - + - + @@ -108,10 +109,11 @@
{{'admin.timeslots.id' | i18n}} {{'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'}}
+} 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) { +
+
@@ -20,12 +21,12 @@ - + - + @@ -46,10 +47,11 @@
{{'admin.user_aliases.id' | i18n}} {{alias.id}} {{'admin.user_aliases.target' | i18n}}{{'admin.user_aliases.target' | i18n}} {{alias.target}} {{'admin.user_aliases.visibility' | i18n}}{{'admin.user_aliases.visibility' | i18n}} {{alias.visibility}}
+} 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) { +
+
@@ -25,21 +26,18 @@ - - - - -
{{'admin.users.id' | i18n}} {{user.status}} {{'admin.users.created' | i18n}} {{user.created | date:'short'}} {{'admin.actions' | i18n}} - -
- +
+} \ 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) { +
+
@@ -51,10 +52,11 @@
{{'admin.voucher_mappings.id' | i18n}} {{mapping.id}}
+} 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 @@ - + }