Skip to content
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

define the multi-product-dashboard-workbench (MPDW) architecture #176

Open
volodymyrss opened this issue Jun 20, 2022 · 2 comments
Open
Assignees
Milestone

Comments

@volodymyrss
Copy link
Member

volodymyrss commented Jun 20, 2022

Today, a UX was discussed with strong opinions of @andriineronov , @volodymyrss , @motame , @dsavchenko , @burnout87

The following factors were considered important:

  • single source of information about composition rules: i.e. there should be as little as possible science-specific frontend logic about the combinations. All should be in the backend(s)
  • user should be able to immediately convey what the user is doing, no extra steps. buttons to do what's needed should be seen immediately upon opening MPDW. there should be always 3 clear buttons: merge time, merge energy, merge space
  • sometimes, user has many (>2) different products in the MPDW, of different kinds (spectra, lightcurves). It should be clear what is being merged and when. With checkboxes or something like that. But users would not want to throw out the products entirely

The proposal as discussed satisfies these requirements as so:

  • once the product is added to MPDW:
    • a request is sent to dispatcher with the list of all products in MPDW with their parameters and a flag "return_combinations": true set.
    • Dispatcher returns always 3 combinations "merge spectra", "merge lightcurves", "merge images" are always available, but sometimes grey (if unavailable). The list of combinations might be expanded in the future with no change to the frontend.
    • frontend builds a form in the MPDW tab where the 3 (possibly some of them disabled) options are shown as buttons, possibly with some extra information about what will be merged. Each buttons has associated to it a particular list of parameters
  • when user hovers over the "merge XXX" button, all the product panels except for those which would be merged are faded, gray, deemphasised
  • when the user clicks "merge XXX", only the list of parameters associated to that particular option is sent to the dispatcher, with "return_combinations": false
  • if user wants to exclude some product from the merging, the user can "mask" the product with a button, turning it permanently gray: a UI alternative to checkboxes, more consistent with the rest of the functionality
@volodymyrss volodymyrss added this to the v22.10.0000 milestone Jun 20, 2022
@dsavchenko
Copy link
Member

I just realized that there is better to have two product types in the plugin. One to ask for the list of combinations, other for combining. It's cleaner than extra-parameter, I guess.

Also, as a suggestion, if there are checkboxes in the frontend instead of buttons:

  1. Hover over option - mask products temporarily
  2. Checked option - mask permanently (user can exclude more products after)

@volodymyrss
Copy link
Member Author

I just realized that there is better to have two product types in the plugin. One to ask for the list of combinations, other for combining. It's cleaner than extra-parameter, I guess.

Ok sure. The "disadvantage" then is they will share one of the "inputs" and hence some treatment for this input.

Also, as a suggestion, if there are checkboxes in the frontend instead of buttons:

1. Hover over option - mask products temporarily
2. Checked option - mask permanently (user can exclude more products after)

Ok, maybe as I option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants