7.x - Clear url parameters for entity search tabs
References
- Fixes #2729
- Fixes #2739
- PR for main: #2734
Description
Clears all url parameters when switching search tabs on entity pages to avoid using non-existent filters/sort/configurations/pages etc. on the new search tab. Clears url parameters and component properties when applying startsWith or value on browse-by pages, avoiding a conflict between the two described in #2739
Instructions for Reviewers
How to test entity pages:
- Visit an entity item page containing more than one search tab, with one search tab containing a filter or sort option not available on the other tab
- Select a value for that filter/sort option
- Click the other tab
- All parameters except the tab identifier should be cleared and search is still functional
- Perform the same test, but one tab containing more pages of results than the other, selecting the last page and clicking the other tab, you should end up on the first page of the new search tab
How to test browse-by pages:
- Visit a browse-by metadata page (e.g. subject)
- Select a value
- Search for a different value. It should clear the previous value and ONLY display the "startsWith" value you just entered, as well as any results matching it
- Selecting a value after a search should also clear the "startsWith" parameter, in order for only the clicked value to be visible
Checklist
This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!
- [x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & specs/tests), or I have provided reasons as to why that's not possible.
- [x] My PR passes ESLint validation using
yarn lint - [x] My PR doesn't introduce circular dependencies (verified via
yarn check-circ-deps) - [x] My PR includes TypeDoc comments for all new (or modified) public methods and classes. It also includes TypeDoc for large or complex private methods.
- [x] My PR passes all specs/tests and includes new/updated specs or tests based on the Code Testing Guide.
- [x] If my PR includes new libraries/dependencies (in
package.json), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation. - [x] If my PR includes new features or configurations, I've provided basic technical documentation in the PR itself.
- [x] If my PR fixes an issue ticket, I've linked them together.
Applied an additional fix for #2739, since it's related to the same issue of clearing url parameters.