[main] Add paginated vocabulary search with 'Show previous/next results' controls in hierarchical browse #4508
+97
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
References
Description
Added paging state management to the vocabulary treeview service, updating after each query based on whether previous or next pages exist; this state is exposed to the component to conditionally render navigation buttons in the hierarchical vocabulary browse.
Instructions for Reviewers
List of changes in this PR:
currentPage
,totalPages
,showNextPageSubject
, andshowPreviousPageSubject
to thevocabulary-treeview.service
to manage and expose pagination state.searchByQueryAndPage(query, selectedItems, page)
to support page-specific vocabulary search requests. The existingsearchByQuery
method was updated to call this with page1
by default.searchByQueryAndPage
to extract pagination info from the search response and update theshowNextPageSubject
andshowPreviousPageSubject
based on whether more pages are available.showNextPage$
andshowPreviousPage$
in the component, derived fromshowNextPageSubject
, andshowPreviousPageSubject
, to reactively control the display of pagination buttons.loadNextPage
and `loadPreviousPage to trigger paging behavior.To test this PR:
label="label1"
throughlabel="label100"
and corresponding values like"value test 1"
to"value test 100"
./browse/srsc
).label
.Expected behavior after applying this PR:
First page:

Intermediate page:

Last page:

main
branch of code (unless it is a backport or is fixing an issue specific to an older branch).npm run lint
npm run check-circ-deps
)package.json
), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.