Domiii / Domiii/dbux

Feature: Thread Selection

Open
#435 0 comments 1 reaction 1 assignee Claimed by @MiccWan View on GitHub
a-lot-of-work async blocked enhancement
Dominant language
JavaScript
Stars
171
Forks
13
PR merge metrics
No merged PRs in 30d

Description

* [ ] allow "unselecting" threads (i.e. select "all other" threads)
* NOTE: especially useful for the "unassigned node thread (group)"

## Future Work

* [ ] add new fork + join trace decorations?
* [ ] when thread selection is active, replace filtered nodes with `Hidden` nodes
* [ ] when clicking such `hidden` node (to unhide), use modal to ask user whether they want to disable the filter
* [ ] if yes, just disable filter -> will remove `hidden` nodes
* [ ] if no, just reveal `hidden` nodes
* Changes to dbux-code:
* [ ] `Navigations`, `TraceExecution`, `ObjectTraces` only shows traces that match the current filter
* [ ] Only **decorate** traces of the current filter
* Add `QueryInterface` API:
* [ ] The `QueryInterface` implements all methods that are used in dbux-code for showing data to the user
* [ ] The default implementation just calls the `DataProvider.util` methods directly
* Those methods include all the methods used for `Navigation`, `TraceExecutions`, `ObjectTraces` etc.
* Warning: This will require a lot of work, since many of those methods will call other methods to do the main work.
* [ ] Different implementations of this interface (such as the `ThreadSelectionQueryInterface`) will then run the default result through some transformation or filter
* [x] While a filter is active, show some obvious "Disable Filter" button somewhere in plain sight, maybe similar to commonly used "filter" icons ![image](https://user-images.githubusercontent.com/282899/103140362-a3f1f200-4720-11eb-813b-e357ce26e251.png)
* [(big workload)] Optimization: Add indexes for filters and re-write all methods to use those indexes instead, to optimize everything.

# Done
* [x] Allow user to select thread in AsyncGraph
* Add `ThreadSelection` in dbux-data
* [x] interface similar to `TraceSelection`

* [x] add a button to select/deselect a thread (at top of column?)
* [x] only show currently selected thread
* [x] also render all forks and joins from and to the thread on the sides (but only render the first node of each, not the entire sub-tree or thread)
* [x] make column header `sticky` (css)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.