(Grant and Jeffrey, please scroll down for questions...)
Morgen and I chatted this morning about some funny behaviors we've
noticed on the Office Calendar. Bogus 'lorem ipsum' items keep
reappearing on the Office Calendar even when people delete them.
There are a couple of reasons why that's happening:
1. There's a now obsolete bug with dump files that was generating the
bogus lorem ipsum events. (Morgen, do I have this right?)
2. We're currently ignoring deletes and removes from shared
collections when there are local edits. We don't even register them
as 'pending changes.' In other words, if someone deletes or removes
an item you've edited, you'll never know they tried to delete it and
the item will reappear in their Chandler client as soon as they sync
again.
As a result:
User A subscribes to Office Calendar, sees lorem ipsum events and
deletes them. User B does an export and reload to migrate and re-
generates the lorem ipsum items and syncs. User A sees lorem ipsum
items on the calendar again.
How bad is this?
Well it's hard to tell right now because there are other bugs
obscuring the problem. Maybe this will turn into an edge case once
everyone's migrated to a late enough version of Chandler Desktop that
the export/reload bugs won't screw up the Office Calendar anymore.
However, having items you deleted constantly reappearing in shared
collections just because other sharees made edits with no way of
communicating that you want to delete/remove the item could get
annoying if it happened often.
Morgen currently has a fix to solve this problem for 'normal items'
as in non-recurring event items. If User A deletes/removes an item
from a shared collection and User B has made a local edit to that
item, then User B sees User A's deletion/removal as a pending change
on the item...at which point, User B can choose to either Apply or
Discard the deletion/removal.
However, getting this to work with recurring events may be a bunch
more work. Morgen thinks he can get it to work for cases where User A
deletes/removes an entire series from a shared collection, so it
might be worth doing this if we find this to be a common scenario.
The proposed solution is:
1. User A deletes or removes an entire event series from a share.
User B has local changes on one, some or all instances in that series.
2. User B would accept the deletion/removal for all instances in the
series that they have *not* made local changes to.
3. The instances in the series that User B made local changes to
would become 'singletons' or isolated, single events.
+ Q What if User B made a This and Future local change? Could we keep
all of those instances linked together in a recurring series?
4. Those remaining instances would display a 'Pending Changes'
warning informing User B that User A has deleted/removed the entire
series from the share.
When User B applies User A's deletion, User B's locally changed
instances will also get deleted.
Q However, when User B discards User A's deletion, does the entire
series get restored? or just the instances User B changed locally? (I
think the whole series should get restored...)
Grant and Jeffrey:
+ Can we do something similar if User A makes a This and Future
deletion? How would that work? What happens today with This and
Future deletions if there are local changes?
+ What about deletions of instances that result from changes to
Recurrence Rules? For example, User A turns a Daily event series to a
Weekly event series, thereby deleting a whole lot of instances, some
of which User B made local changes to. Can we keep User B's locally
changed instances around and mark them with the pending changes icon?
If User B discards User A's recurrence rule change, can we restore
the series to recur Daily?
Other stuff Morgen and I settled on:
+ User A's Chandler automagically turns a modified instance back into
an un-modified instance, thereby removing that modified instances
from the recurring series and User B has made local changes to that
modification, thereby keeping it a modification, User B's local
changes win and the modified instances is put back on the server.
(This works today.) Jeffrey, when does this happen?
+ User A deletes a single instance in a series. User B has local
changes to that instance. User A's deletion shows up as a pending
change in User B's Chandler.
Is that all?
Mimi
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "Design" mailing list
http://lists.osafoundation.org/mailman/listinfo/design