fix: preserve query and dashboard tag filters in URLs

Merged
PO
3d ago
+513-40

Synchronize selected tags with repeated tags query parameters and restore list state when opening shared links or navigating browser history.

Document shareable filters and cover URL restoration, multi-selection, search, sorting, pagination, and listener cleanup.

Fixes getredash/redash#3197

What type of PR is this?

  • Refactor
  • Feature
  • Bug Fix
  • New Query Runner (Data Source)
  • New Alert Destination
  • Other

Description

How is this tested?

  • Unit tests (pytest, jest)
  • E2E Tests (Playwright)
  • Manually
  • N/A

Related Tickets & Documents

Mobile & Desktop Screenshots/Recordings (if there are UI changes)

01-shared-dashboard-link.png
Opening a shared URL restores both selected tags and displays dashboards matching both.
https://redash.example.com/dashboards?tags=Finance&tags=Sales%20Reports
01-shared-dashboard-link
02-shared-query-link.png
Opening a query-list URL restores the Finance filter and highlights the selected tag.
https://redash.example.com/queries?tags=Finance
02-shared-query-link
03-search-with-tags.png
Searching for “Revenue” preserves the Finance filter and narrows the matching queries.
https://redash.example.com/queries?q=Revenue&tags=Finance
03-search-with-tags
04-clear-selection.png
Clearing the selected tags removes the URL filter and restores the full dashboard list.
https://redash.example.com/dashboards
04-clear-selection
05-special-characters.png
Tags containing spaces and punctuation, such as “R&D + QA, Europe,” survive URL encoding and restore correctly.
https://redash.example.com/dashboards?tags=R%26D%20%2B%20QA%2C%20Europe
05-special-characters