diff --git a/frontend/projects/shared-meet-components/src/lib/components/recording-lists/recording-lists.component.html b/frontend/projects/shared-meet-components/src/lib/components/recording-lists/recording-lists.component.html index eb23745..7b49d8e 100644 --- a/frontend/projects/shared-meet-components/src/lib/components/recording-lists/recording-lists.component.html +++ b/frontend/projects/shared-meet-components/src/lib/components/recording-lists/recording-lists.component.html @@ -258,6 +258,16 @@ > + + + @if (showLoadMore) { +
+ +
+ } } @else {
diff --git a/frontend/projects/shared-meet-components/src/lib/components/recording-lists/recording-lists.component.ts b/frontend/projects/shared-meet-components/src/lib/components/recording-lists/recording-lists.component.ts index 443d392..fab18ca 100644 --- a/frontend/projects/shared-meet-components/src/lib/components/recording-lists/recording-lists.component.ts +++ b/frontend/projects/shared-meet-components/src/lib/components/recording-lists/recording-lists.component.ts @@ -86,6 +86,7 @@ export class RecordingListsComponent implements OnInit, OnChanges { @Input() showFilters = false; @Input() showSelection = true; @Input() showRoomInfo = true; + @Input() showLoadMore = false; @Input() loading = false; // Host binding for styling when recordings are selected @@ -97,6 +98,7 @@ export class RecordingListsComponent implements OnInit, OnChanges { // Output events @Output() recordingAction = new EventEmitter(); @Output() filterChange = new EventEmitter<{ nameFilter: string; statusFilter: string }>(); + @Output() loadMore = new EventEmitter<{ nameFilter: string; statusFilter: string }>(); @Output() refresh = new EventEmitter(); // Filter controls @@ -274,6 +276,12 @@ export class RecordingListsComponent implements OnInit, OnChanges { } } + loadMoreRecordings() { + const nameFilter = this.nameFilterControl.value || ''; + const statusFilter = this.statusFilterControl.value || ''; + this.loadMore.emit({ nameFilter, statusFilter }); + } + // ===== FILTER METHODS ===== hasActiveFilters(): boolean { diff --git a/frontend/projects/shared-meet-components/src/lib/components/rooms-lists/rooms-lists.component.html b/frontend/projects/shared-meet-components/src/lib/components/rooms-lists/rooms-lists.component.html index dd1690d..5de1178 100644 --- a/frontend/projects/shared-meet-components/src/lib/components/rooms-lists/rooms-lists.component.html +++ b/frontend/projects/shared-meet-components/src/lib/components/rooms-lists/rooms-lists.component.html @@ -317,6 +317,16 @@ >
+ + + @if (showLoadMore) { +
+ +
+ } } @else {
diff --git a/frontend/projects/shared-meet-components/src/lib/components/rooms-lists/rooms-lists.component.ts b/frontend/projects/shared-meet-components/src/lib/components/rooms-lists/rooms-lists.component.ts index 00823bb..b866628 100644 --- a/frontend/projects/shared-meet-components/src/lib/components/rooms-lists/rooms-lists.component.ts +++ b/frontend/projects/shared-meet-components/src/lib/components/rooms-lists/rooms-lists.component.ts @@ -94,6 +94,7 @@ export class RoomsListsComponent implements OnInit, OnChanges { @Input() rooms: MeetRoom[] = []; @Input() showFilters = false; @Input() showSelection = true; + @Input() showLoadMore = false; @Input() loading = false; // Host binding for styling when rooms are selected @@ -105,6 +106,7 @@ export class RoomsListsComponent implements OnInit, OnChanges { // Output events @Output() roomAction = new EventEmitter(); @Output() filterChange = new EventEmitter<{ nameFilter: string; statusFilter: string }>(); + @Output() loadMore = new EventEmitter(); @Output() refresh = new EventEmitter(); // Filter controls diff --git a/frontend/projects/shared-meet-components/src/lib/pages/console/recordings/recordings.component.html b/frontend/projects/shared-meet-components/src/lib/pages/console/recordings/recordings.component.html index a62f184..ee62353 100644 --- a/frontend/projects/shared-meet-components/src/lib/pages/console/recordings/recordings.component.html +++ b/frontend/projects/shared-meet-components/src/lib/pages/console/recordings/recordings.component.html @@ -32,9 +32,10 @@ [recordings]="recordings()" [canDeleteRecordings]="true" [loading]="isLoading" - [showFilters]="true" [showSelection]="true" + [showLoadMore]="hasMoreRecordings" (recordingAction)="onRecordingAction($event)" + (loadMore)="loadMoreRecordings($event)" (refresh)="refreshRecordings()" (filterChange)="refreshRecordings($event)" > diff --git a/frontend/projects/shared-meet-components/src/lib/pages/console/recordings/recordings.component.ts b/frontend/projects/shared-meet-components/src/lib/pages/console/recordings/recordings.component.ts index a704d90..99bab95 100644 --- a/frontend/projects/shared-meet-components/src/lib/pages/console/recordings/recordings.component.ts +++ b/frontend/projects/shared-meet-components/src/lib/pages/console/recordings/recordings.component.ts @@ -110,9 +110,9 @@ export class RecordingsComponent implements OnInit { } } - async loadMoreRecordings() { + async loadMoreRecordings(filters?: { nameFilter: string; statusFilter: string }) { if (!this.hasMoreRecordings || this.isLoading) return; - await this.loadRecordings(); + await this.loadRecordings(filters); } async refreshRecordings(filters?: { nameFilter: string; statusFilter: string }) { diff --git a/frontend/projects/shared-meet-components/src/lib/pages/console/rooms/rooms.component.html b/frontend/projects/shared-meet-components/src/lib/pages/console/rooms/rooms.component.html index 42e78ab..5623bc8 100644 --- a/frontend/projects/shared-meet-components/src/lib/pages/console/rooms/rooms.component.html +++ b/frontend/projects/shared-meet-components/src/lib/pages/console/rooms/rooms.component.html @@ -35,7 +35,9 @@ [rooms]="rooms()" [loading]="isLoading" [showSelection]="true" + [showLoadMore]="hasMoreRooms" (roomAction)="onRoomAction($event)" + (loadMore)="loadMoreRooms()" (refresh)="refreshRooms()" >