Conflict dialog says the item was changed on the server when it was deleted
Categories
(Calendar :: Internal Components, defect)
Tracking
(Not tracked)
People
(Reporter: ndo84bw, Unassigned)
References
Details
Attachments
(1 file)
|
39.91 KB,
image/png
|
Details |
When an offline change meets an event the server has deleted in the meantime, the conflict dialog claims the item was changed on the server and offers to overwrite changes that do not exist. What it actually asks is whether to re-create the event.
Seen by hand against a local ICS calendar: change an event offline, delete it on the server, go back online and sync.
calCachedCalendar._doSynchronize calls promptOverwrite("modify", ...) for that case because there are only two modes. The dialog then picks item-modified-on-server plus modify-will-lose-data and labels the button "Submit my changes anyway". A third mode with its own two strings would fix it, at the price of new l10n.
Bug 2059370 covers the call side and is correct - "modify" is what _doSynchronize passes. The wrong part is that no mode exists for "gone from the server".
Noticed alongside, less certain and maybe not worth acting on: while the dialog is open, the calendar behind it already shows the server version, because the cache is wiped and refilled before the loop that prompts. Being asked to submit a change that has already vanished from the view reads oddly. Changing it would mean splitting asking from applying in _doSynchronize, a real restructure of a fragile function - likely more risk than the confusion is worth, so this half is a note, not a request.
The missing space after "on the server." is bug 2061642, visible here by coincidence.
Description
•