Versioning allows keeping track of older published versions of content pages and display pages but even more importantly, to have the possibility to work on a new version and keep it as a draft until it's fully finalized.
This is particularly important in the case of Content Pages, since they support inline editing and they have auto-save, which means that end users can see changes to a published page even before the page owner has finished all the changes.
The general strategy for versioning is that only published versions are kept in the history. While an item is in draft state, the draft is updated and only when it is finished and is published it is considered a final version. Any edit after that will need to create a new version in draft state.
Each of these elements should allow the user to view the history of versions and perform the following operations:
- Restore an older version
- Delete an older version
- See differences between version