Mercurial > libervia-web
diff libervia/server/pages.py @ 1410:80683be8d341
pages: keep `search` query when using pagination
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 22 Apr 2021 18:23:47 +0200 |
parents | 3dff555fe691 |
children | 2c3bdba880bb |
line wrap: on
line diff
--- a/libervia/server/pages.py Thu Apr 22 18:22:49 2021 +0200 +++ b/libervia/server/pages.py Thu Apr 22 18:23:47 2021 +0200 @@ -970,6 +970,7 @@ @param pubsub_data(dict): pubsub metadata """ template_data = request.template_data + extra = {} try: rsm = pubsub_data["rsm"] last_id = rsm["last"] @@ -977,17 +978,23 @@ # no pagination available return + # if we have a search query, we must keep it + search = self.getPostedData(request, 'search', raise_on_missing=False) + if search is not None: + extra['search'] = search.strip() + if rsm.get("index", 1) > 0: # We only show previous button if it's not the first page already. # If we have no index, we default to display the button anyway # as we can't know if we are on the first page or not. first_id = rsm["first"] - template_data['previous_page_url'] = self.getParamURL(request, - before=first_id) + template_data['previous_page_url'] = self.getParamURL( + request, before=first_id, **extra) if not pubsub_data["complete"]: # we also show the page next button if complete is None because we # can't know where we are in the feed in this case. - template_data['next_page_url'] = self.getParamURL(request, after=last_id) + template_data['next_page_url'] = self.getParamURL( + request, after=last_id, **extra) ## Cache handling ##