Persist properties panel state across sessions
See original GitHub issueIs your feature request related to a problem? Please describe.
Currently, when you restart the Modeler, the layout state (e.g. groups are collapsed/expanded) got set to the initial state (e.g. all groups are collapsed). The only things we are currently persisting in the config.json
are the width
and the open
state of the properties container.
"layout": {
"propertiesPanel": {
"open": true,
"width": 250
}
}
With the new properties panel architecture, we are theoretically able to listen for more specific layout changes as well (cf. https://github.com/bpmn-io/properties-panel-persist-layout-example/pull/1).
Proposed solution
Assuming that I as a user switch between contexts in order to compare or copy/paste:
- Ensure that properties panel open state is persisted across diagrams.
- View is restored on a best effort basis; if a section opened does not exist, open it
- Scroll position is restored on a best effort basis (i.e. open sections)
- Store the layout state regarding groups
open
state in theconfig.json
and keep it across sessions. As an example, the next time I open the Modeler, the same groups should stay expanded.
Describe alternatives you’ve considered
- Instead of storing it globally, store it on a per-file / per-execution platform basis?
- This could be configurable via UI as well
- Not only the layout but also the ordering of groups could be something to be persisted
Additional context
Issue Analytics
- State:
- Created 2 years ago
- Comments:8 (8 by maintainers)
Top Results From Across the Web
Properties panel - Adobe Support
The state of the More Options button (…) is persistent across all sessions. Properties panel. No selection.
Read more >Session State and Callbacks — Panel v0.14.2
Accessing session state#. Whenever a Panel app is being served the panel.state object exposes some of the internal Bokeh server components to a...
Read more >Properties panel, Advanced tab
Property Name Property Value Default Format
Property Name filter Property Value Default filter Format...
Account Working Data Directories See details in linked topic See de...
Allow...
Read more >How To Share State Across React Components with Context
In this tutorial, you'll share state across multiple components using React context. React context is an interface for sharing information ...
Read more >20. Persistence - JavaScript Cookbook [Book] - O'Reilly
Whether it’s storing data between sessions or enabling access to ... the location.hash property to store state in the URL and return to...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
@christian-konrad @CatalinaMoisuc I propose that we pick this up as the next bigger topic in core editing. The proposed solution is to persist open sections across diagrams / potentially in the session; basically restore the
properties-panel@0.x
behavior. It has been been validated numerous times in a number of bug reports raised folks duplicating this bug.The current situation is a huge UX blunder for everyone using the modeler as a power tool.
Note from prio discussion with @christian-konrad today: we should consider both Modelers when drafting a solution for keeping the state. We want to be able to persist state also in the Web Modeler.