- The current tree state as well as the previous will be stored in the sqlite database.
- The time interval to store the tree state is configurable via preferences and the default is 30 secs.
-1 can be used to stop the tree saving functionality,
- Jasmine test cases are included.
Thanks,
Khushboo
This is looking good, however there are a couple of cases where I think it's not quite working as I would expect:
1) As soon as the user opens pgAdmin, the tree state should be restored.
As per our initial discussion, we have decided that once the user connects / expands the server, then we will restore that server state.
"If the user has switched network that may cause a whole bunch of connection failures after some period of time. Perhaps we should only restore when opening a particular server."
Yeah, I remember that now. I guess it just seems less than ideal - but I'm not sure how we could open everything by default without risking connection failures. Let's stick with the original plan (ie. what you've implemented).
2) If a database or server is disconnected, I would expect it's state to be stored. When it is explicitly re-connected by the user, the state should be restored.
This is already implemented and working. Am I missing any particular scenario?
I tried disconnecting a server and database, and when I re-opened it, the state wasn't restored. Do we explicitly save the state on disconnect, or was it that I needed to wait up to 30 seconds (or should have waited 30 seconds before disconnecting)?
I think that covers the different cases I'm imagining.
I wrote that to try to convince myself I hadn't forgotten anything - I think I had though. When the state is restored on any given branch of the tree, the previously selected node should be re-selected. That doesn't seem to be happening at the moment.