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.
Jason_______________________________________________
Radiant mailing list
Post: [email protected]
Search: http://radiantcms.org/mailing-list/search/
Site: http://lists.radiantcms.org/mailman/listinfo/radiant