wasabee-project / Wasabee-IITC

ENL DrawTools and Op Management
Apache License 2.0
30 stars 21 forks source link

Filter tasks sharing some properties and bulk setter #357

Closed le-jeu closed 1 year ago

le-jeu commented 2 years ago

Some feature requests have in common the need to color all links sharing a property, like the source portal or the assigned agent. I have some ideas for this:

  1. the #318 branch to select a subset of the links in the checklist and color them
  2. integrate buttons (for instance) in the link list (wrt a portal) to color all inbound or outbound links
  3. create a UI to give (client-side) a color to each agent and use this data to color implicitly the rendering
  4. rule base coloring (rendering won't use the color attribute for a link) (see https://github.com/wasabee-project/Wasabee-IITC/commit/9d9d1b672afb539e508454835545a6df30958c21 for pin color)

Properties:

Related: #318 #335 #350 #191

cloudkucooland commented 2 years ago

(1) is the "least surprising" - it is clear what the user wants and does it without realizing that the op data is now more than "just data" but also instructions to the display logic (2) same - probably the easiest to implement (3) moderately surprising - would require a change in all clients to display consistently (4) most surprising - "WHY ARE ALL MY LINKS BLUE!" ... "because you wrote a rule that set all the links to blue...."

le-jeu commented 2 years ago

Some more ideas that go more to a new dialog and filter feature with global effect on the UI

Properties:

Actions:

Filter feature: Given the use case, this can follow CNF pattern. A filter is a conjunction of disjunctions: for each property the task can have some values, and we want the tasks that fill all constraints. We can be more generic, and have an usual pattern (OR/AND) in UI like data-table-filter_2x_4x.png or over-engineering it like https://stackoverflow.com/q/35508800

Note that the filter backend can be generic while the UI is not. See https://github.com/le-jeu/ingress-intel-total-conversion/blob/5861c0611fe1f6264b2b1fdca16150d939d98d4c/core/code/filters.js as an backend idea (using DNF)