Working on Mosaic made me to take another look into Martin's forgotten drafting framework plone.app.drafts. Think it as a lightweight working copy support. The framework itself seems ready and still working, but it was missing usable Dexterity integration (and I haven't tested its Archetypes integration), which I managed to worked on for a little.
Use case:
- start add or editing a content
- distraction
- accidentally close the tab (or browser crashes)
- just repen the add or edit form to continue
Mosaic will probably need drafting to allow creation of so called persistent tiles (uploading attachment and images) on add and edit views, so that they are only finally persisted (or discarded) during save or cancel. Also building layouts with Mosaic Editor may take some time and there's danger of losing a lot of work.
Does this sound interesting? Anyone interest in joining to polish it? I'm working at https://github.com/plone/plone.app.drafts/pull/1
Currently drafting is tied to a browser cookie, so that whenever a browser with a correct drafting cookie returns to the form, the form will show the draft instead of the live content. Drafts are saved centrally within a new portal tool called "portal_drafts" with UI for deleting abandoned drafts. Drafts saved per user, which should reduce change for conflict errors when multiple users are drafting simultenously.
Server side drafting may sound outdated (when compared to modern frontend localstorage based solutions), but finishing plone.app.drafts feels like a low hanging fruit compared to alternatives.