public
Description: Provides history, diffs, and dev-only drafts to Radiant CMS
Homepage:
Clone URL: git://github.com/jgarber/radiant-chronicle-extension.git
name age message
file .gitmodules Mon Apr 06 14:14:09 -0700 2009 Added cucumber, features to test integration [jgarber]
file LICENSE Tue Mar 24 07:25:46 -0700 2009 Initial commit. [jgarber]
file README Fri May 22 05:28:39 -0700 2009 Add submodule commands to installation instruct... [jgarber]
file Rakefile Tue Apr 07 10:34:02 -0700 2009 Default rake task: spec and features [jgarber]
file TODO Wed Apr 15 14:56:49 -0700 2009 Refactored the timeline helper and added the "t... [jgarber]
directory app/ Wed May 27 09:04:47 -0700 2009 Layouts views, beginning some more model mods. [seancribbs]
file chronicle_extension.rb Loading commit data...
directory db/ Tue May 26 14:47:46 -0700 2009 Tweaking views and helpers. [seancribbs]
directory features/ Tue May 26 15:02:51 -0700 2009 Fix features and version show screen. [seancribbs]
directory lib/
directory public/ Fri May 15 11:31:21 -0700 2009 Improve diffing, appearance of page parts in ve... [jgarber]
directory spec/
directory vendor/ Mon Apr 06 14:14:09 -0700 2009 Added cucumber, features to test integration [jgarber]
README
= Chronicle

In an enterprise production environment, it's critical that content editors,
designers, and developers be able to edit pages and preview their changes
without affecting the live version and that site administrators be able to see
who changed what and roll back if necessary.

This extension adds versioning to pages and uses a page's status to determine
its visibility. The most recent published or hidden version is visible in live
mode and the most recent version, a.k.a. the "current version," is visible in
dev mode regardless of its status. Thus, you can work on a draft in dev mode,
preview exactly how it will look, and then make it live when you are ready by
changing its status to published.

== An example

Look at the revision history of the home page of example.com:

...22  23  24  25
---*---*---*---@
           ^   ^
   Published   Draft
  (live mode)  (dev mode)

If you went to example.com/ you would see version 24. If you went to
dev.example.com/ you would see version 25.

Many people overlook the dev mode feature of Radiant. If you don't know about
it, see http://wiki.radiantcms.org/How_To_Setup_Dev_Mode. You can also set a
live.host configuration option if you don't access Radiant admin at the live
host.

Some terminology used in the specs:
* The "current version" is the highest-numbered version, a.k.a. the "current
  dev" version.
* The "current live" version is the most recent Published or Hidden page.
* A page "is a draft" when its status is set to Draft.
* A page "has a draft" when its current version is a draft.
* When a page's current version is Published, the page "does not have a 
  draft".

== Features:

* Simple graph showing the change history
* Check a box to view the page in a new window/tab after saving
* TODO Roll back to a previous version by creating a new one based on it
* See what changed in a given version
* TODO Integration with the Dashboard extension so you can see what has
       changed recently and what pages have unpublished changes (drafts ahead
       of published versions)
* TODO Lines in the change graph showing ancestry when a page is rolled back
* TODO Versioning for snippets and layouts as well
* TODO Versioning including page attachments
* Should be compatible with (and version the extra page attributes of) most
  extensions!

Someday/maybe:
* Git interface

== Installation
 
(from the radiant application root)
  
  git clone git://github.com/jgarber/radiant-chronicle-extension.git vendor/extensions/chronicle
  git submodule init
  git submodule update
  rake RAILS_ENV=production db:migrate:extensions
  rake RAILS_ENV=production radiant:update
  
== Acknowledgements

Written by Jason Garber for Eastern Mennonite University
Thanks to Anton Astashov and Brenton Cheng for the PageVersioning extension,
which provided some inspiration for Chronicle