diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf
index e988a39cb..3eee47eb8 100644
--- a/src-ui/messages.xlf
+++ b/src-ui/messages.xlf
@@ -7405,18 +7405,32 @@
264
+
+ Previous page
+
+ src/app/components/document-list/document-list.component.ts
+ 280
+
+
+
+ Next page
+
+ src/app/components/document-list/document-list.component.ts
+ 292
+
+
View "" saved successfully.
src/app/components/document-list/document-list.component.ts
- 300
+ 324
View "" created successfully.
src/app/components/document-list/document-list.component.ts
- 343
+ 367
diff --git a/src-ui/src/app/components/document-list/document-list.component.spec.ts b/src-ui/src/app/components/document-list/document-list.component.spec.ts
index 0a8faa4d3..823fb6e6c 100644
--- a/src-ui/src/app/components/document-list/document-list.component.spec.ts
+++ b/src-ui/src/app/components/document-list/document-list.component.spec.ts
@@ -698,5 +698,31 @@ describe('DocumentListComponent', () => {
fixture.detectChanges()
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'o' }))
expect(detailSpy).toHaveBeenCalledWith(docs[1].id)
+
+ const lotsOfDocs: Document[] = Array.from({ length: 100 }, (_, i) => ({
+ id: i + 1,
+ title: `Doc${i + 1}`,
+ notes: [],
+ tags$: new Subject(),
+ content: `document content ${i + 1}`,
+ }))
+ jest
+ .spyOn(documentListService, 'documents', 'get')
+ .mockReturnValue(lotsOfDocs)
+ jest
+ .spyOn(documentService, 'listAllFilteredIds')
+ .mockReturnValue(of(lotsOfDocs.map((d) => d.id)))
+ jest.spyOn(documentListService, 'getLastPage').mockReturnValue(4)
+ fixture.detectChanges()
+
+ expect(component.list.currentPage).toEqual(1)
+ document.dispatchEvent(
+ new KeyboardEvent('keydown', { key: 'ArrowRight', ctrlKey: true })
+ )
+ expect(component.list.currentPage).toEqual(2)
+ document.dispatchEvent(
+ new KeyboardEvent('keydown', { key: 'ArrowLeft', ctrlKey: true })
+ )
+ expect(component.list.currentPage).toEqual(1)
})
})
diff --git a/src-ui/src/app/components/document-list/document-list.component.ts b/src-ui/src/app/components/document-list/document-list.component.ts
index 1c559da05..c21c78fc8 100644
--- a/src-ui/src/app/components/document-list/document-list.component.ts
+++ b/src-ui/src/app/components/document-list/document-list.component.ts
@@ -273,6 +273,30 @@ export class DocumentListComponent
}
}
})
+
+ this.hotKeyService
+ .addShortcut({
+ keys: 'control.arrowleft',
+ description: $localize`Previous page`,
+ })
+ .pipe(takeUntil(this.unsubscribeNotifier))
+ .subscribe(() => {
+ if (this.list.currentPage > 1) {
+ this.list.currentPage--
+ }
+ })
+
+ this.hotKeyService
+ .addShortcut({
+ keys: 'control.arrowright',
+ description: $localize`Next page`,
+ })
+ .pipe(takeUntil(this.unsubscribeNotifier))
+ .subscribe(() => {
+ if (this.list.currentPage < this.list.getLastPage()) {
+ this.list.currentPage++
+ }
+ })
}
ngOnDestroy() {