Assumptions and Rules for Resynchronizing Client-Side Delete Operations
In the assumptions and rules that follow for client-side delete operations, “undeleted” means that a deleted item has been restored by selecting > or clicking the corresponding toolbar button
. Additionally, an “enabled node” is a node that is not part of a hierarchy that has been deleted.
Assumptions
• Moving a node with a delete conflict icon
implies that it has been undeleted first, which means that it has been resolved.
• Undeleted nodes can be manipulated like regular enabled nodes.
• Choosing to resolve a parent resolves all children for delete conflicts. Choosing to resolve a child resolves the parent and its children.
• Nodes displaying conflict navigation icons
are not real conflicts. Consequently, clicking a node that displays this icon does not display a conflict item header or the editable item preview. Such a row cannot be undeleted.
• Clicking a node with a conflict navigation icon
does not resolve the real delete conflict in the deleted hierarchy.
Rules for Grayed Out Nodes
• You cannot move or copy grayed out nodes.
• You cannot use grayed out nodes to create a trace.
• You cannot move enabled nodes in between grayed out nodes.
• You cannot indent enabled nodes to be children of grayed out nodes.
• Grayed out nodes are ignored when moving enabled nodes above or below them. If an enabled node directly below one or more grayed out nodes is moved up, the enabled node is moved above the first enabled node above the grayed out nodes. The opposite is true if the enabled node is moved down.
• The editable item preview is not shown for grayed out nodes unless they have a real conflict.
Rules for Delete Conflicts
• Deleting a node that has changed on the server in some way results in a delete conflict icon
. An exception exists if the same node is deleted on the server.
• Any child nodes within a deleted parent that have changed on the server also have delete conflict icons
.
• Delete conflicts stay with the nodes on which they occur. Moving a node with a delete conflict keeps the conflict on it, even once it has been resolved. This is true even if the node gets moved out of the parent that was deleted, which caused the node to have the delete conflict in the first place.