Skip to content

Content Versions, including history and draft #291

@CrispinF

Description

@CrispinF

In SimpleContent we already have the ability to make a whole page a draft. But we don’t have the ability to make an edited version of that page a draft while the existing version remains live. And we don’t have the ability to review previous versions, and restore them.
And I think these requirements can be combined into one (in contrast with mojoPortal's approach where these were two separate things that could become confusing for editors). So "Content Versioning" would deliver management of past versions and a future draft version.
This would apply to content pages. Blog posts would only need the "history" part of this as draft content can already be handled adequately.
My initial ideas on this would be:

History:

I think another tab: Content | Settings | History
History tab lists of previous versions with date/time and editor, with ability to “Restore to editor” or “Compare to current” (plus delete and delete all).
I’d suggest the “Compare” might perhaps open the page in a full browser window rather than a modal, with difference highlighting. (The modal approach means layout is rarely faithful and so comparison is not easy – anyone doing this kind of work can manage browser tabs and windows). This might be achieved by opening a page with URL param identifying the version to open, with this only working for users in an editing role. But the modal approach would be ok too.

Draft content:

Regarding drafting once a page is already published, I’ve thought through a few ways and one nice simple implementation might be…

On creating a new page…

Hide the “Is Published” check box and “Publication Date” in this context and instead have these controls:
[Save Draft] [Publish Now] [Publish Later:] […date/time picker…] [Delete]
[Developer Tools]
“Save Draft” sets “Is Published” to False on the Page.
“Publish Now” sets “Is Published” to True on the Page and sets “Publication Date” to now.
“Publish Later” sets “Is Published” to True on the Page and sets “Publication Date” to specified date/time. If none specified, do as “Save Draft”.

On editing an existing page…

always edit the draft if one exists. Depending on how this is all stored, this could always be the most recent in the history. Don’t give the ability to edit a previous (published) version (it made things too confusing in mojo - editors can achieve that by restoring the published version into the editor).
Show the “Is Published” check box and “Publication Date” in this context, but call them “Page Is Published” and “Page Publication Date”.
Provide same set of buttons/controls:
[Save Draft] [Publish Now] [Publish Later:] […date/time picker…] [Delete]
(this allows a changeover in content to be scheduled).

There could well be some loopholes here!

I feel Content Versioning would be enabled globally. I cannot imagine why it would not be useful across the board, and it doesn't make the publishing workflow any harder. So perhaps just always there in SimpleContent - no need even to switch it on. The only reason not to would be the extra storage needed for the superseded versions, but that shouldn't be an issue these days, and there could be an Administrative capability to clean out history (All, or older than a specified period (e.g. 1 month, 6 months, 1 year).

Also useful in the Administration area would be a view of all Content History (descending date order by default, filterable by Editor or page), permitting View (but not restore).

Note this does not provide any differentiation in roles for editing and publishing – we think that’s rarely needed and makes things more complex, but a potential future enhancement.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions