Files
David Straub e00092c63a Add an advanced filter to the object lists (#1506)
* Add an advanced filter to the object lists

The filter panel of the object lists gets an "Advanced filter" button
that opens a condition builder. Conditions are Gramps rules from the
catalogue of /api/filters, picked from a searchable list grouped by
collapsible categories. Groups combine their conditions with "all",
"any" or "exactly one", can be negated and nested, and a single
condition can be negated as well.

Parameters get an input of their type when the backend describes it
(dates, tags, Gramps types, choices, numbers, checkboxes, and the
object selector for IDs), and a text field otherwise. The catalogue is
requested in the user's language, with a retry without it for backends
that don't accept the locale argument. Rules that refer to custom
filters are not offered.

The active facet filters open in the builder as conditions, and a
builder filter that the facets can show goes back to them. Any other
filter shows as one "Advanced filter" pill, and the facet sections
point to the builder while it is active. A GQL query applies on top of
either.

Selected filter chips, here and in the toggle buttons, use the primary
color for their check mark.

* Address comment

* Style tweak

* Fix issues found in review of the advanced filter

- Require a tag for tag parameters
- Set the object name of the repositories view
- Move the group options menu to the clicked group
- Keep the object selector working when its ID changes while loading
- Use a fixed menu position for the object selector in the dialog
- Avoid duplicate and stuck rule catalogue requests
- Reload Gramps types and tags whenever the dialog opens
- Mark required parameters
- Remove the unused regex field of conditions
- Use the Gramps string for Back

* Address review comment

* Ignore Escape in the group menu and focus the rule search
2026-10-17 19:09:55 +02:00
..