Emmanuel told me on IRC, that he also runs into some issues with refreshing the DIT.
So I checked the current behaviour: When browsing the DIT and expanding some entries, all the fetched attributes and parent-child relationships are cached in Studio. If the DIT gets updated somehow and one refreshes a particular entry in the LDAP browser, the following happens:
- Only the selected entry's attributes are reloaded
--> Attributes of children are not touched, they remain in the cache and when selecting such an entry after the refresh its old attributes are shown in the entry editor
- Only the immediate child entries are reloaded
--> Grandchild entries are not touched, they remain in the cache and remain visible in the LDAP browser tree
So I would suggest to purge all cached parent-child relationships and attributes on refresh, beginning from the refreshed entry, recursively down the whole tree
The open question is: Should all expanded branches below the refreshed entry also be reloaded? This could cause many additional search requests. The alternative (what I would prefer) is to collapse all branches below the entrys's immediate children. So if you have the tree below and refresh node 'b1', then only then immediate childen of 'b1' are refreshed and the 'c' nodes are collapsed