This file documents the revision history for Perl extension Gantry

3.49 Mon Apr 30 16:45:07 CDT 2007
    - add datetime_now db-agnostic wrapper to Gantry::Utils::DBIxClass
    - add post_body parsing to Plugins::SOAP::Doc
    - modify Gantry handler to work with the PageCache plugin
    - add Gantry::Plugins::PageCache
    - modify cache plugins
    - tie Gantry::Conf into Gantry cache. Specifying a cache plugin will
      enable caching for Gantry::Conf
    - add engine_cycle method to the Gantry object. 
    - add javascript helper for YUI popup calendaring
    - factor out login, logout routines in AuthCookie. AuthCookie now 
      provides login/logout methods that can be called at anytime from 
      anywhere in the app. (think registration form)
    - add add row level error messages to moxie form.tt
    - modify Gantry handler to store action
    - add js_root and js_rootp
	- add search cpan link to pod/doc viewing module
    - patch uninitialized warning in CGI engine 
    - replaced dojo with jquery javascript libraries for the Gantry samples. 
    - patch Gantry::Utils::DBConnHelper::MP20, the server starting test
      does not exist in mod_perl 2. Test was useless.
    - fixed file upload bug, the full extension for .tar.gz 
      was not being matched 
    - modified mod_perl2 test
    - fix link in doc
    - add patch from Stas for fix the permissions problem with Init.pm
    - fix gantry base_root bug -- base_root is now add just before template
      object creation.
    - add JSON to the requires list, JSON is not integrated into the
      CRUD do main method. 
    - added row level permissions by logged in user
    - added consume_post_body and get_post_body to engines, plugins can use
      this to preempt normal form parsing of the post body
    - changed soap plugins to use consume_post_body and get_post_body,
      making them engine agnostic

3.48 Wed Feb 21 13:52:00 CST 2007
    - add Gantry::Utils::Threeway
    - add save and add another to CRUD and AutoCRUD.  To get it from bigtop
      set 'save_and_add_another' to a true value in your form methods
      'extra_keys'.
    - fix crud so that if the form field is display then don't validate
    - add hints to form.tt
    - Revised tutorial to reflect current preferred practices.  This
      involved switching to DBIx::Class and discussing tentmaker.
    - Modify MP13 and MP20 engine to handle multiple entries for form
      parameters. Form parameters that contain multiple values will be 
      joined with nulls ( "\0" ). This is exactly how CGI.pm behaves.
    - changed sample_wrapper stylesheet example to use doc_rootp so it
      can work with stand alone server.
    - Added FormMunger util to massage form fields needed by form.tt.
    - Added no_cancel flag to form.tt, set it if you don't want the
      Cancel button.  In bigtop, set this as one of your form methods
      'extra_keys'.
    - Added onchange to form.tt.  Give it the name of a javascript function
      to trigger when a select list changes (type must be select).  You
      can set this in bigtop with the new html_form_onchange statement.

3.47 Mon Jan 22 09:11:06 CST 2007
    - Added Gantry::Plugins::Session
    - Added Ganty SOAP Support
    - AuthCookie will not redirect to a full url if the 'url' param is passed.
      i.e. <input type="hidden" name="url" value="http://www.here.com/" />
    - added test for AjaxFORM
    - Added auth_cookie_name and auth_cookie_domain as optional conf based
      accessors for AuthCookie plugin.
    - Added log_error method to CGI engine, so all engines have it.
    - Added AJAX form plugin.
    - Added Session plugin with pluggable caching storage mechanism.
      (thanks to Kevin Esteb for all the plugins in this release except SOAP)
    - Added SOAP plugin (mod_perl 2 only).
    - Changed how plugin namespaces work.  Use the new -PluginNamespace
      wherever you use -Engine, follow that with the plugins you want.

3.46 Wed Dec 20 12:18:43 CST 2006
    - Fixed uninitialized warnings in the TT template engine.
    - Fixed CRUD plugin's validator callback use in edit.
    - Added Gantry::Build to simplify Build.PLs that need to install
      web content.
    - Added Gantry::Plugins::AjaxCRUD, thanks to Kevin Esteb for
      submitting it.
    
3.45 Mon Dec 11 10:10:13 CST 2006
    - Arranged documenation
    - Fixed namespace issue with Gantry::Plugins::AuthCookie
   
3.44 Tue Dec  5 09:42:01 CST 2006
    - Added Gantry::Utils::FormErrors to manifest.
   
3.43 Tue Dec  5 09:09:00 CST 2006
    - moved uri, location, path_info, method above the init callback
    - Param cleaning for CRUD and AutoCRUD no longer makes 0 ints null.
      But it does make blank ints null.
    - DBIx::Class autocrud helper now uses transactions so you don't need
      to set AutoCommit => 1 to use it.
    - added Gantry::Plugins::AuthCookie ( cookie based auth ). Supports
      DBIx::Class user models and Apache htpasswd files.
    - added Template::Plugin::GantryAuthCookie for decrypting auth cookies
      from Apache::Templates.
    - added plugin functionality to various phases of the request. Currently
      you can register the plugin and its callback at the init, pre_init, 
      post_init, pre_process and post_process phase. 
      See Gantry::Plugins::AuthCookie for an example.
    - Gantry::Plugins::CRUD has a new callback: validator in case you
      don't want or can't use Data::FormValidator.

3.42 Thu Oct 19 10:05:57 CDT 2006
    - Added Samples.
    - Missing and Invalid fields on form.tt now have their labels in the
      error message instead of their names.
    - Gantry.pm's set_auth_model now requires the model for you.
    - CRUD add, edit, and delete methods now allow their invokers to set
      $self->stash->view->title to override default window and table titles.
    - Added support for generic errors on form.tt (not just missing or
      invalid).
    - Added field type 'display' to form.tt for fields which should be
      displayed, but not in an input element.
    - Added content key to form.tt's fields hashes.  This helps when you have
      a Question #. Text label for input elements, but don't want all that
      text reported in errors.
    - Added file upload.

3.41 Wed Oct  4 14:58:22 CDT 2006
    - Corrected response header handling in CGI engine.
    - Corrected Gantry::Conf so it won't be tested if it can't be used.
    - Added main.tt to the MANIFEST.  Bigtop uses it for defaul pages.
    - Tried again to make prompts visible during CPAN shell install.

3.40 Fri Sep 22 08:14:15 CDT 2006
    - Restored and expanded warning avoidance from Gantry.pm accessors.
      If you ask for a path, you no longer get undef.  At least you get ''.

3.39 Thu Sep 21 14:20:17 CDT 2006
    - switched plugin, engine loading from string eval to require
    - added cookie support to the cgi engine.
    - bug fix to default form.tt - form didn't always select the correct
      default/previous value in the select lists.
    - improved Gantry::Conf so gantry.d includes work and instances
      can conf directly in the gantry.conf or gantry.d instance block.
    - added Net::Server support to stand alone server (it's slow)
    - suppressed some annoying undefined value warnings.

3.38 Wed Aug 16 16:26:03 CDT 2006
    - Gantry supports DBIx::Class
    - added tests for auth handlers and models using SQLite
    - added style to auth pages
    - add extra testing features to the standalone server.

3.36 Thu Aug 10 09:25:12 CDT 2006
    - Took another crack at DBIx::Class

3.35 Never installed
    - Corrected DBIx::Class interactions

3.34 Tue Aug  8 13:27:57 CDT 2006
    - Added a default Gantry::Init for use during testing.

3.33 Tue Aug  8 10:39:14 CDT 2006
    - Modify Build.PL to write the Gantry::Init file during the install.
      This module contains the install options that can be referenced later.
    - Added action (cancel or submit) and user action (add, edit, or delete)
      to the end of the parameter list for the redirect callback in CRUD.
    - Added create method to Gantry::Utils::DBIxClass, calling it (instead
      of the one provided by DBIx::Class::ResultSet) returns a row with a
      valid id, even when the id is generated by a sequence within postgres.

3.32 Mon Jul 17 13:49:33 CDT 2006
	- added Perlbal client ip fix
    - Removed ident from essential column list for auth_users table.
      This makes the model classes compatible with prior auth schemes which
      did not have that column.
    - Changed the Apache basic auth scheme slightly to accomodate apps which
      rely on the Class::DBI.  Users now append either Regular or CDBI
      to all module names used for auth (except Access which never
      used auth databases).
    - Added stringify, and an overload to call it, for the DBIxClass Util
      module.  Without it, form.tt can't show selected items foreign keys
      point to.

3.31 Jun  2 14:46:36 CDT 2006 
	- Doc updates to Gantry.pm, Tutorial and FAQ
    - Added support for DBIx::Class.  (AutoCRUD still only works for ORMs
      with Class::DBI's API.)
    - Converted Gantry::Control::C::* auth modules to use Gantry native models.
    - Cleaned up (that is reduced) the prerequist list in Build.PL.
    - Cleaned up Web Directory questions during ./Build install.
    - Corrected problem with Gantry::Conf parameter fishing in the CGI engine.

3.30 Wed May 10 13:01:44 CDT 2006
    - Corrected bug in CGI engine which made the constructor demand a valid
      hash as an argment.  Now an empty one is supplied by default, making
      it work as the QuickStart doc says it should.  Thanks to Краси Беров
      for pointing this out.

3.29
    - Restored access to dircopy from File::Copy::Recursive to
      custom install code.

3.27-8 Tue Apr 18 15:29:15 CDT 2006 - Tue Apr 18 15:45:32 CDT 2006
    - Made failure due to absence of File::Copy::Recursive gentler.

3.26 Mon Apr 17 14:25:48 CDT 2006
	- Updates to custom error page

3.25 Fri Apr  7 12:53:20 CDT 2006
	- Added Test

3.24 Thu Apr  6 15:12:12 CDT 2006
	- Rearranged/Added more tests
	
3.23 Thu Apr  6 08:44:44 CDT 2006
	- Fixes to the db connection methods
	
3.22 Thu Mar 30 12:41:36 CST 200
	- Added test method to the Gantry server to be used for
	  to run a test on a Gantry application
	
3.21 Wed Mar 29 12:41:36 CST 200
	- Updates to documentation
3.20
	- Added a stand alone web server, Gantry::Server
	- Updates to documentation.
3.19
	- Modified Build.PL. Now copies all files in the root folder.
    - Updated the Gantry::Conf api so you can get location level
      config.
    - Corrected the mechanism for using Gantry::Conf so mulitple
      instances in the same server can really have different conf.

3.18
 	- Documentation updates
3.17
	- tied Gantry::Conf to the framework
    - added initial Gantry::Conf code and stubs for the future 
    - Updated constraint handling in AutoCRUD and CRUD to use the
      current Data::FormValidator constraint_methods key.
    - Updated Gantry::Conf to use ConfigureVia Method insteadn of
      ConfigureViaMethod which allows for multiple ConfigureVia statements
      in the same instance block and easier dispatching.

3.16
	- added PODViewer 
    - CGI Engine fix, casting error to wrong method
	- fixed prompt problem when installing within CPAN shell

3.15 Thu Feb 16 09:22:03 CST 2006
	- add paging.ttc ( paging for the results.tt )
    - added cgi parameter parsing code
	- Added lots of Docs modules
    - Refactored handler and init so that all conf fishing and other
      engine specific code is actually in the engines not Gantry.pm

3.14 Wed Feb  1 08:09:54 CST 2006
	- modified engines
	- added CGI::Simple object to all
	- improved cgi error messages
    - restored connection info scheme having found the bug (mod_perl
      helpers were still caching the conn_info data, so everyone was
      going to the first database hit)
    - renamed Gantry::Utils::ModelHelper to Gantry::Utils::DBConnHelper
      to better reflect what it helps with (renamed all it subclasses too)
    - added Gantry::Utils::Model as a Class::DBI replacement
    - added Gantry::Utils::ModelHelper to provide db_Main and other
      useful methods as mixins to Gantry::Utils::Model::* modules.
    Note that no production app uses Gantry::Utils::Model yet.
    - removed accessors in Gantry.pm for dbconn, dbuser, and dbpass

3.13 Fri Jan 20 13:27:21 CST 2006
    - Added script auth connection handling to db_Main in AuthCDBI util.
    - Added doc stubs in modules.

3.12 Thu Jan 19 10:44:31 CST 2006
    - Added retreive_all_for_main_listing to Gantry::Utils::AuthCDBI
      which we needed to do since we separated Malcolm's auth models
      from the regular ones.

3.09 - 3.11
	- AuthCDBI, CBDI testing

3.08
  	- Add Access auth module ( Gantry::Control::C::Access )
      provides IP authentication for mod_perl.
	- updates to pod
	- updates to Template Default
    - Changed connection info scheme for regular and cgi scripts
      in Gantry::Utils::CDBI.  This required moving connection info
      fishing from init_cgi in Gantry.pm to Gantry::Engine::CGI->new
    - Expanded the connection info scheme change to all engine types
      by introducting Gantry::Utils::ModelHelper as a (mostly) abstract
      base class from which a new module for each engine inherits
    - Expanded connection info scheme to the auth db connecitons.
      CGI may not be working correctly under the new scheme.

3.07 Mon Dec 26 12:19:05 CST 2005
 	- Add CGI Engine. ( Gantry::Engine::CGI );
	  Gantry apps can now run under CGI (including Fast-CGI)

3.06 Tue Dec 20 12:47:47 CST 2005
    - Revised Build.PL so that it complains more quietly if
      File::Recursive::Copy is not installed.
    - Revised use test section for mod_perl 1.9x so it checks for
      Apache::Request before trying to use the engine, yielding a cleaner
      error message.
	- Change auth front-end modules to use $self->location for redirect_to_main
	  instead of $self->apps_rootp . '/blah'
	  
3.05 Thu Dec 15 12:08:42 CST 2005
	- template toolkit object is now unique per location block.
	- converted front-end auth modules to use Gantry CRUD
	- added editor_init.ttc ( default tinymce editor componet )
	- modified form.tt to handle the editor_init.ttc componet

3.04 Fri Dec  9 17:04:05 CST 2005
    - Corrected template error which gave very small widths to text input
      fields by default (hint: TT uses size as a pseudo-method)

3.03 Fri Dec  9 14:04:05 CST 2005
    - Minor template revisions

3.02 Wed Dec  7 16:07:36 CST 2005
    - Removed required asterisks from checkbox fields

3.01 Tue Dec  6 13:31:16 CST 2005
    - Improved various templates (made form tables wider by default)
    - Added optional javascript based html editor to form.tt

3.0  Thu Dec  1 13:49:28 CST 2005
    - Corrected templates so their html is more standards compliant.
    - Increased version to indicate that we are using this third generation
      of our framework in production for multiple apps.

0.26 Wed Nov 16 16:30:39 CST 2005
    - Changed Gantry::user_row to return nothing when it can't find a user.

0.25 Wed Nov 16 11:46:53 CST 2005
    - Added Gantry::Plugins::CRUD for more control.
    - Corrected relocate so you have more control of where it takes you
      from successful AutoCRUD actions.
    - Corrected error which had boolean select lists always showing
      their default values instead of showing those only when the
      database didn't have a value.

0.24 Thu Nov  3 11:21:28 CST 2005
	- Fixed Gantry::Utils::CDBI module to work with mp1 and 2.
	- Modified Build.PL

0.23 Mon Oct 24 15:46:09 CDT 2005
	- Add a Class::DBI base module to Gantry.
	  fixes the problem regarging the clashing database handles.
	- added the log_error method
	
0.22 Mon Oct 17 20:12:30 EDT 2005
	- Switch accessors to methods calls.
	
0.21 Wed Aug 24 11:00:41 CDT 2005
	- Name change to Gantry

0.20 	Mon Aug  8 11:30:08 CDT 2005
	- Added Gantry::Conrol to framework (Authen, Authz, PageBased)
	- Added generic templates for mvc processing

0.18	Sat Jun 11 21:08:58 CDT 2005
	- Add plugin ablility to frame work
	- Added compatability for mod_perl 1, 1.99, 2.0
	- Add Template::Toolkit support

0.17 	Sat Jun 11 21:08:58 CDT 2005
	- Branched from KrKit version 0.16 ( www.krkit.org )
