- 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).
Okay.
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 have explicitly saved the state on the server disconnection. So, on the reconnection of the server, the state should be restored.
But this logic is only applicable on server not on the databases. So, once you disconnect the database the state will not be restored.
Should I include databases also ?
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.