Here are some proposals for lightweight conflict management in 0.7
Providing users with visual feedback
- "Flag" on items that have been newly added to a share/ edit or changed / have conflict(s)
- "Flag" is displayed in the mark-up bar of changed / conflicted items
- User can click on "Flag" to view edit/conflict details in the Activity Log
- In the Activity Log, user can click on "something" to take them back to the original item detail view
If you're editing a field that has been changed by the server
- Phase 1: Chandler over-writes the user's edits with the server's changes
- Phase 2: Can we intercept item change notifications coming from the server before they get displayed in the detail view? The user's edits win and a "conflict" Flag is raised on the item in the mark-up bar. Users can click on the Flag to see what got sucked down from the server.
- Phase 3: Display a modal dialog: The "notes" have been edited since you last synced. (Here are the edits). Do you still want to proceed with your edits? Okay Cancel. (Not sure if this is necessary.)
Server-side conflicts
- Last version to get synced wins
- Conflicting versions are both pulled down and "stored" in the Notifications/Activity log as Activity notifications.
- User pulling down conflicts can examine the log to see what happened, but there doesn't need to be a "compare versions" UI in 0.7
Activity Manager UI
Assumption: We have a "collection" in the "sidebar" or some "sandbox" area in the sidebar that is a unified Activity log.
What might quality as an Activity?
- User creates a new item
- User edits an item (1 log item per attribute changed? or per item editing session? How do we define item editing session?)
- Sharee creates new item
- Sharee edits item
- Conflict on an item
- Subscribe and Publish
- Pull down mail, Send mail
- Sync status for Email and Sharing (Do we have a single Activity item that summarizes the entire Sync session? And then individual Activity items for each individual edit?)
High-level categories of Chandler activities
- Sharing / Email / Personal activity
- New item / Edits / Conflicts / Reminders
- Activities for each collection OR each Collection/App area intersection (ie. What's changed on my OSAF calendar?)
Interaction ideas
- 1 collection that unifies all Activities into a single view. Activities can be sorted by the Categories listed above. (ie. Show me notices for "New items". Show me stuff that I did versus stuff the server did, etc..) OR
- Several collections that divide up the Activities into different Categories (ie. Sharing activities, Email activities, Local activities)
- Super status bar where Activity log messages scroll by. Click on the message in the status bar to go look at it in the Activity log. OR The Status bar expands itself to turn into the Activity manager (not in 0.7).
- Can we have a link to the item-in-question in the detail view of the Activity log item (ie. Lunch with David was moved from noon to 1PM...Click here to go to this event on your calendar.)
Open Issues:
- When are Activity items marked as read?
- How long do Activity items live in your repository?
- Can users manually delete Activity log items?