Per sprint planning, we wanted to track implementation of this in a separate issue from the design 1168. I think we have enough info to get started based on our discussion from today - I'm going to copy @lklyne 's conclusions here as a starting point for implementation:
Background
There's a couple of related ideas we can chain together to improve the row building and filtering experience. The overall goals are to simplify how rows are built and filtered, make filters more dynamic so they don't get stale as a mission model shifts, and add the ability for people to drill down and customize them if needed. We don't want to expose a lot of that complexity up front, but it should be easy to access.
Current issues
Some of the pain points with our approach to filtering that this design direction aims to address:
We don't support custom filters, making it tricky to build meaningful rows with multi-spacecraft missions #671
Filtering is generally tedious, settings are buried in the row details, and our multi select approach doesn't scale well to thousands of activities. #592
Because filtering is limited and tedious, it's easy to get a row that is focused on information specific to a task. With large plans, this means lots of information on the timeline that isn't relevant, creating clutter and visual noise.
Row building isn't set up for exploring the mission model. #634. We have a broad list of all activity types in the mission model, but these aren't tied to the process of creating row filters. This section can only be used to drag and drop or add an activity instance to the timeline, an uncommon workflow as instances are typically placed using procedural scheduling. Exploring resources is even more limited as the only section to view what's in the mission model is from the small popover ui in resources filtering.
Activity filters are static and don't leverage logical categories like subsystem or all. After selecting individual activity types, that list doesn't stay up to date as a mission model shifts. The current workaround is to use a text search and batch add for activities, which works well if a subsystem has a name included. https://jira.jpl.nasa.gov/browse/ECGDSITD-517 #973
"There's no capability to select all the AVS activities, short of clicking on each one-at-a-time. This is onerous but possible because all the AVS activities begin with the string "AVS".
The hierarchy and labeling of layers within row details doesn't match the system. We've made improvements to the timeline rendering so that activities and resources show up in a logical way: all activities pack or group together and don't overdraw. And there's a default stacking that supports most use cases: lines on top, activities in the middle, and x range charts on the bottom. The concept of layers may not even need to be surfaced when building a row.
Proposed solutions
1) New browse panel: a better way to browse activities and resources (heavily inspired by the workflow in raven)
Dedicated space to browse and filter activities and resources
Filter using text includes or subsystem tag
Quick actions to add results to a new or existing row. Preserve current action for adding an instance to timeline
Multi select to add single items from filtered results
Future considerations
similar workflow for external events
More logical grouping or hierarchy in list
This part is handled in PR #1417
2) Improved filters in row details
Filters from browse panel are carried over here. What's specified in text includes or subsystem tag shows a dynamic list of results that stay up to date with the mission model
List the activity types that match the filters for immediate feedback
For each resulting activity type, show filters based on the type's parameters. For each type, these filters can be chained together to build queries like Param: Spacecraft = A OR Param: Spacecraft = B.
Stretch / maybe not needed: When expert filters are displayed, show a list of the resulting instances for quick feedback on what the filters are doing. This could be more visible
Future considerations
save filters so they can be re-used
parameter filters on a group
3) Clear up hierarchy in row details
Two sections for activities and one for resources. (and in the future events)
Resources are changed between line and x-range in their settings
...this may need to be re-assessed after parts 1 and 2 above are implemented
Open questions + design
Settings panel for activities and resources. How do we integrate the current filters?
How do we handle layer naming?
Empty state for filters from row details / adding a new "layer" from here.
Details around boolean logic and populating parameter list
Dealing with enum / hierarchy parameters (not sure the name for this)
Per sprint planning, we wanted to track implementation of this in a separate issue from the design 1168. I think we have enough info to get started based on our discussion from today - I'm going to copy @lklyne 's conclusions here as a starting point for implementation:
Background
There's a couple of related ideas we can chain together to improve the row building and filtering experience. The overall goals are to simplify how rows are built and filtered, make filters more dynamic so they don't get stale as a mission model shifts, and add the ability for people to drill down and customize them if needed. We don't want to expose a lot of that complexity up front, but it should be easy to access.
Current issues
Some of the pain points with our approach to filtering that this design direction aims to address:
subsystem
orall
. After selecting individual activity types, that list doesn't stay up to date as a mission model shifts. The current workaround is to use a text search and batch add for activities, which works well if a subsystem has a name included. https://jira.jpl.nasa.gov/browse/ECGDSITD-517 #973Proposed solutions
1) New browse panel: a better way to browse activities and resources (heavily inspired by the workflow in raven)
text includes
orsubsystem tag
This part is handled in PR #1417
2) Improved filters in row details
text includes
orsubsystem tag
shows a dynamic list of results that stay up to date with the mission model3) Clear up hierarchy in row details
...this may need to be re-assessed after parts 1 and 2 above are implemented
Open questions + design
Prototype: https://www.figma.com/proto/gsWLcy9UuqSQVqbyHf4Lw6/AERIE-Filtering%2C-Activity-UX%2C-Timeline-Density?page-id=885%3A65354&node-id=1007-150579&viewport=35%2C-7458%2C0.55&t=Ia1AyYjoyOCSVWUg-1&scaling=min-zoom&content-scaling=fixed&starting-point-node-id=1007%3A64472&show-proto-sidebar=1
Design files: https://www.figma.com/board/PE4EJhU1GM7eEeJOyfdN3I/Aerie-Filters-and-Row-Building?node-id=0-1&t=9YbmVWV1sPhJOqlj-1 https://www.figma.com/design/gsWLcy9UuqSQVqbyHf4Lw6/AERIE-Filtering%2C-Activity-UX%2C-Timeline-Density?node-id=885-65354&t=5O7Q5GIEuaSAPokb-1