When many binders change the url, only the last change is applied. So when I change the property filter and then the pagination, only the parameters maxResults und firstResult are in the url, but nameFilter is not.
Analysis
In UrlQueryParametersFacetImpl.onComponentQueryParametersChanged the new QueryParameters are set in the url.
The current url is loaded using routeSupport.getActiveViewLocation(ui). It seems that it return url when the view was initially loaded.
Any changes made to the URL in the meantime are therefore lost.
Steps To Reproduce
Use the attached sample project to reproduce the issue:
Environment
Jmix version: 2.3.4
Bug Description
I have multiple binders in a UrlQueryParametersFacet.
When many binders change the url, only the last change is applied. So when I change the property filter and then the pagination, only the parameters maxResults und firstResult are in the url, but nameFilter is not.
Analysis
In
UrlQueryParametersFacetImpl.onComponentQueryParametersChanged
the newQueryParameters
are set in the url. The current url is loaded usingrouteSupport.getActiveViewLocation(ui)
. It seems that it return url when the view was initially loaded. Any changes made to the URL in the meantime are therefore lost.Steps To Reproduce
Use the attached sample project to reproduce the issue:
Current Behavior
After Paging the filter parameter in the url has disapeared.
Expected Behavior
All parameters should still be in the url the Url should be http://localhost:8080/customers?maxResults=50&firstResult=50&nameFilter=contains_1
Sample Project
query-param-demo.zip