Refactoring: New layout, design and data storage features
Closed this issue · 2 comments
rubenthoms commented
Based on the discussion between @anders-kiaer, @HansKallekleiv, @jorgenherje and me, here is a short summary of the results:
Short term changes
- Icon used for collapsing expanded views should be changed to
- Switch from
bootstrap's
modal view toMaterialUI's
draggable dialog (https://mui.com/components/dialogs/#draggable-dialog) - Implement a wrapper around each view in a plugin in order to provide an expand mechanism
Medium term changes
- Make settings related to a particular view available via a gear icon button in the view's wrapper options
- Consider replacing expand/collapse wrapper with
Accordion
, eds also have one - Move plugin settings to a drawer that can be pinned (like the main menu)
- With a settings menu that has ownership to view layout, we can limit the current loading indicator to only relevant view (using e.g. functionality from https://dash.plotly.com/loading-states), and remove the global app loading indicator (https://github.com/equinor/webviz-config-equinor/blob/15f159132920314c48223421ad66a8bb80eca85a/webviz_config_equinor/assets/equinor_theme.css#L103-L131).
Long term changes
- Use URL to share the exact same view with all set parameters (ask Dash/Plotly to implement a URL sharing feature)
- Make it possible to implement a plugin group, i.e. one plugin with the same data but with different views that share the data - the views can either be accessible as subpages in the menu or as tabs in the plugin
- Should tabs only be used when settings are shared between different views and subpages if only data but no settings are shared?
- Store view settings in browser's client-side storage (e.g. menu's pinned state or expand/collapse state of settings' groups) https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage
jorgenherje commented
Good summary! Only one question: should the last bulletpoint Move plugin settings to a drawer that can be pinned (like the main menu)
be a short term or medium term task instead?
rubenthoms commented
Closing this since most of the tasks have been completed in #599 and equinor/webviz-core-components#201. Moved the remaining tasks to #600 and #601.