On Sep 2, 2008, at 4:11 PM, Jim Gay wrote:

I'm assuming that it's a misstatement, but did you really mean to say that there are some versions of a page that are published, meaning more than one published version of the same page?

Yes, I did, but maybe I should have said there's only ever one active published version and one active draft version. Let me try to illustrate:
--+ #1 - 8:00  - Draft     <- initial version, only visible in dev
--+ #2 - 8:20 - Published <- made some changes to that initial version and published. Now live. --+ #3 - 10:00 - Draft <- made a new change, but wanted to look at it in dev without disturbing live version
--+ #4 - 10:01 - Draft     <- that wasn't quite right, so tweaking a bit
--+ #5 - 10:02 - Published <- yes, now it's good, so publish it
--+ #6 - 11:58 - Draft <- started adding a new paragraph, but had to go to lunch, so saved

So, the world sees the page live as it is at #5, but the editor looking at the dev site sees version #6. Another way of thinking about it: #1-4 are "past," #5 is "present," and #6 is "future."

I'm constantly making a change in the admin interface, saving the page, and then looking at the page to see the change, so if it's me, there would be about 20 draft versions between each published version. :-) Anticipating this, I want to make a checkbox to hide draft versions, so the above illustration would be simplified to

--+ #2 - 8:20  - Published
--+ #5 - 10:02 - Published

This is probably the way a site administrator would prefer to keep tabs on changes editors are making. It's important to save the intermediate (draft) versions, though, because you may make a good change, save, make a bad change, save, and then want to undo the bad one.

Take a look at the concurrent_draft extension. It allows you to schedule a draft of a page, snippet or layout for publication. http://github.com/avonderluft/radiant-concurrent_draft-extension/ tree/master

I looked at it the day it came out and had high hopes for it, but it only keeps a draft of the content. If you modify the title, slug, etc., the change is immediate. I want the entire page/snippet/layout to be draftable/versioned as a complete model, so I can add/delete page parts, change the slug, and so forth without messing up the published one. Plus, as I mentioned, scheduling the promotion of drafts isn't something I (or most people, I imagine) have a need for.

Perhaps two extensions might be more appropriate, one for drafts (the future) and one for versioning (the past), but I thought we could kill two birds with one stone by having the drafts be versions too, but versions that exist ahead of the live version.

I have no immediate need for holding onto old versions so I have no current plans to add that, but if it were unobtrusive and intuitive I'd certainly be interested.

Yes! Unobtrusive and intuitive — I'm thinking just a little page history link on the edit page down by where it says the publisher and timestamp. Maybe a history tab, too, that shows all changes on the site. Drafts would be like in concurrent_draft--it's so intuitive you almost don't know you're making a draft.

Sure. Are you planning for it to be open source? I'm sure there would be plenty of interest in the community.

Absolutely. Even if we paid someone to write it, it must be open source.

Good ideas about what to name this extension?

How about chronicle?

That's a good idea. I wish there was a way to capture the idea that it's history and drafts all in one. Thanks for all the feedback!

Oh, and two features I forgot to list in the first email:
* Deleting a page makes it go away in the pages tree and will give you a 404 on dev and live sites, but the version history is kept, so if the deletion was accidental, it can be undone * It should be compatible with page_attachments, so if you add/delete/ replace attachments on the draft, it doesn't affect the live version.

Radiant mailing list
Post:   Radiant@radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to