-
Notifications
You must be signed in to change notification settings - Fork 384
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Project: filtering entities in the UI (first iteration) #8586
Comments
The naive "find the query string within the full entity path" matching semantics proved to be hellish when it comes to highlighting matches, so we further discussed the match semantics with Katya and settled on the following progression. We converged on this proposal because it strikes a balance between implementation complexity, usefulness, and intuitiveness (aka minimise user astonishment). I'll start with level 0 for now and build on that later on if/when time/alignment allows. Level 0: per-entity-part matchFor a match, at least one entity part must contain the entire query string. In that context, whitespace and Note: forbidding whitespace and
Level 1: space-separated keywordsWhitespace in the query string defines multiple keywords. Each of the keywords must be contained in at least one of the entity parts to match. Keywords otherwise retain the semantics of level 1. Note: as before, forbidding
Level 2: slashes define part boundariesWithin keyword, starting or ending slashes define boundary requirements, similar to regex's So, for each keyword:
|
Summary description
Implement the first iteration of a text-based entity path filtering for the streams, blueprint and add/remove entities trees. (The operative words being "first iteration".)
Background and grounding use-cases
The primary (and only means) of finding entities in (large) recordings currently consists of scrolling through the list. This is obviously cumbersome and annoying as soon as the list of entities grows. This is compounded by the streams tree not being tall in the UI by construction (a conundrum that proved tricky to resolve so far).
This project is thus about making it easy to find the needle(s) in the entity haystack, in a way that is local to the following areas:
Impact on Entity Path Filter
Although this project (and the general feature of filter-based searching in the UI) is technically independent of the entity path filter stuff (at least initially), it is related in the sense that both are about filtering the list of entities. For consistency, expanding the feature set on one side should typically be mirrored on the other side, lest users get confused. This is particularly true for any syntax introduced to match entities (glob, etc.).
In this spirit of keeping this (design) complexity in check, this project is narrowly scoped on this front.
Designs and plans
Figma designs
The primary paradigm of this first iteration is to introduce text field that are local to the list to be filtered.
Search widget
Search icon -> click -> search widget appears and "replaces" section title:
This applies to both streams and blueprint trees.
Note: for the blueprint tree, this implies moving the reset and + button to a
...
more menu, to leave room for the filter widget:Add/remove modal
Search widget is permanently displayed (no toggling behaviour):
Highlight
Query is highlighted in the displayed entity:
Note: highlight color in add/remove entity modal is slightly subdued because of the background thing we have there.
Tasks
Non-goals
These are all very useful/needed addition to the base filter feature, but are outside of the scope of this initial project.
TODO: open issues of all of these!
The text was updated successfully, but these errors were encountered: