This file documents the revision history for Perl extension Maypole. For information about current developments and future releases, see: http://maypole.perl.org/?TheRoadmap 2.111 Sat 21 April 2007 Fixes : Fixed typo in edit form template Fixed extra html filter in link macro in factory templates Fixed typo in _do_update_or_create (bug 26495) fix to display_line macro in factory templates (bug 22920) fixed template path with array refs fixed redirect_request fixed db_colinfo.t test when no mysql 2.11 Mon 31 July 2006 SVN revision 519 Deprecated: Directly accessing the attributes of the request object, or the parameters in $r->params, or anything else, is DEPRECATED and likely to break in future releases. Be good, and use proper method calls. Maypole no longer uses Class::DBI::AsForm, instead Maypole::Model::CDBI::AsForm has replaced it. $config->{$table}{required_cols} is deprecated, please use $class->required_columns instead Incompatible API changes: Maypole - is_applicable() deprecated for is_model_applicable(). is_applicable is an alias for is_model_applicable now. Maypole::Constants - ERROR constant now 500, previously -1 (bug #18901) Maypole::Model - delete and search actions are now deprecated - use do_search and do_delete instead Maypole::View - table name rather than moniker is used to find templates API additions and enhancements: Maypole::Application: - -Init flag (wishlist 14123) - recognises Maypole::HTTPD and installs Maypole::HTTPD::Frontend as its frontend Maypole::Headers: add() alias to push() (wishlist 14142) Maypole: - get_session() method (no-op) - get_user() method (no-op) - get_session() is called during handler_guts() before authenticate() - new preprocess_path() method added and called by parse_path(), parse_path() will leave any properties set by preprocess_path() in place - start_request_hook() added - status() attribute added (though only used by start_request_hook() so far) - setup() split into setup(), setup_model(), and load_model_subclass() - added new path processing methods for ssl and default table/action - added make_path() - added make_uri() - improved exception handling - now uses File::MMagic::XS to guess mime type of output unless already set - new component method provides Maypole::Component functionality - new object method gets/sets first/only object in objects Maypole::Model - do_delete, do_search in place of delete/search actions Maypole::View::TT: - new report_error method - new embedded error report page in __DATA__ Templates: - Improved pager macro/include - Improved factory templates - added the status() attribute, although it's not used in many places yet - Changed factory edit/view to use object instead of objects Maypole::Model::CDBI - improved error messages in do_edit action - new required_columns mutator method - new column_required accessor method Bug fixes: Fix to cgi_maypole.t (bug 11346) Fix to TT error reporting (bug 13991) Template xhtml validation (bug 13975) Apache2 fixes in Apache::MVC (bug 13888) Fixed inheritance issues in Mp::Application - Mp::App now manipulates the caller's @ISA directly, and doesn't inject itself into the chain (bugs 12923 & 14120) Improved Template error reporting (14133) Maypole::Session::generate_unique_id() now returns the id (bug 14124) Moved ar accessor to Apache::MVC (bug 14014) Refactored core to support further development in 2.11 and onwards Fixed related_class() method (bug 14566) Added a cgi() attribute in Maypole::CGI Factory templates now less vulnerable to XSS (bug 16659) Reduced risk of XSS in factory templates (bug 16659) model search/delete methods in model and subclassing the cdbi mode (bug 16661) fixed problems with stringify_self and untaint missing ignore columns (bug 15678) fixed Maypole::Model::CDBI::Plain to JustWork(TM) with plain CDBI Classes (bug 16977) some silent death scenarios resolved Now initializes template_args, stash, parmas, objects and others to correct data type. (bug 15147) Documentation: Fix to documentation for CGI::Maypole (bug 7263) Simplified Net::Amazon example (bug 14073) Numerous major and minor updates to docs. Renamed Maypole::Manual::Request to Maypole::Manual::Cookbook Added Maypole::Manual::Install, with material removed from Maypole::Manual::About Added Maypole::Manual::Inheritance Added Maypole::Manual::Terminology - updated Maypole::Manual::View - updated Maypole::View:TT Examples of fancy forms and templates using new features Requirements: HTTP::Body now required CGI::Untaint >= 1.26 now required rather than >= 0 2.10 Tue 19 Jul 2005 Multiple Template Paths added ( http://rt.cpan.org/NoAuth/Bug.html?id=13447 ) Small fix to templates/factory/frontpage ( http://rt.cpan.org/NoAuth/Bug.html?id=11236 ) MasonX support in Maypole::Application ( https://rt.cpan.org/NoAuth/Bug.html?id=12383 ) Maypole::Model::CDBI::Plain / Maypole Config issue ( http://rt.cpan.org/NoAuth/Bug.html?id=11530 ) Repeat Submission detection support ( Bug #6500 ) Fix to setup_database in Maypole::Model::CDBI ( Bug #12384 ) Fix to plugin to allow Maypole::Plugin::Config::YAML to work Fix to Maypole::Model::CDBI order sub from list Improvement to primary display column using CDBI Improved efficiency of finding stringified columns using new classmetadata field Fixed BeerDB to untaint pub fields Additional Requirements : Digest::MD5 2.09 Mon Jan 25 22:00:00 2005 Fixes: - Fixed plugin inheritance set up by Maypole::Application, added tests Templates: - factory/addnew will only prefill values when there's a row creation error 2.08 Mon Jan 24 20:45:00 2005 - Added $r->config->template_extension() to set optional file extension for templates (Dave Howorth) Fixes: - Maypole::Application adds plugin classes to caller's @ISA (Marcus Ramberg) - FETCH_CODE_ATRIBUTES in M::M::Base should return an empty list if there are no attributes - M::M::CDBI will warn() about Class::DBI::FromCGI errors 2.07 Sun Jan 16 18:45:00 2005 (This version was not uploaded to CPAN) Internal changes: - Removed Maypole::Model->description. It didn't work as expected and clashed with 'description' columns in the database Fixes: - Model->process() shouldn't set $r->objects() to a list with a single, undefined element - Fixed overriding $r->template_args->{classmetadata} in M::V::Base (Thanks to Dave Howorth for spotting the mistake) - #9473: Maypole::Model::CDBI->related_class (Thanks David Baird) - #9434: M::M::CDBI->search generated "uninitialized value" warnings Templates: - The addnew template will attempt to prefill form fields with request parameters - edit template includes 'addnew' if there is no object to edit 2.06 Wed Dec 29 01:30:00 2004 Fixes: - Minor restructuring of the manual so search.cpan.org indexes it better - #9129: Skip t/apache_mvc.t if Apache::Request isn't installed 2.05 Fri Dec 24 03:20:00 2004 - Revised and updated documentation. Many thanks to Dave Howorth for his hard work and 120kb documentation patches. - Added support for request and response HTTP headers with $r->headers_in & $r->headers_out (Maypole::Headers) - Support for compound primary keys for Maypole::Model::CDBI classes - Template toolkit objects are configurable with M::Config->view_options - Templating performance should be improved when running Maypole with mod_perl since compiled templates remain in memory. CGI users can use TT2's COMPILE_DIR or COMPILE_EXT options with Maypole::Config->view_options to improve performance Internal changes: - Added a new override for the model: fetch_objects(). - 'classmetadata' template variables can now be overriden individually - New unit tests for Maypole, CGI::Maypole, Maypole::Headers, and others. More to come. Fixes: - Maypole::CLI is more tolerant of trailing slashes in the request/uri_base - fixed a bug in CGI::Maypole::parse_location() (Dave Howorth) - Also applied that fix to Apache::MVC (Marcus Ramberg) - some fixes for Maypole::Config, Maypole::Model::Base and Maypole::Model::CDBI::Plain (Dave Howorth) - Documented adding new accessors to Maypole::Config - Added Apache::RequestIO to Apache::MVC (michael#diaspora.gen.nz) - Applied patch to fix length of utf8 documents. - support compound primary keys in CDBI fetch_objects. - Check if has_a actually points to a Maypole::Model (Dave Howorth) - Make test suite work with DBD::SQLite2 - default search() action removes empty fields from search parameters - #6622 - Maypole::Application will create a separate Maypole::Config for each application (instead of the current workaround for multiple apps under mod_perl) - #7643 - improve M::V::Base's error() messages. prefix error with label, and carp() - #7651 - minor POD improvements in M::M::CDBI (Dave Howorth) - #7834 - minor POD update in M::M::CDBI (Kevin Connor) - #7917 - if do_edit fails for object creation, try again with the correct template (addnew) - #7930 - handle Class::DBI constraint failures in do_edit. Templates: - add support for compound primary keys in factory templates (Dagfinn Ilmari Mannsåker) - Only show buttons for public actions. (Dagfinn Ilmari Mannsåker) - Split the meat of the view template off to a view_item macro. - New login template - Other assorted css/template fixes 2.04 Tue Oct 27 14:00:00 2004 - fixed Apache::MVC version (Randal Schwartz) - fixed template_args (Dave Howorth) - new Maypole::Config documentation (Dave Howorth) - Maypole::Model::Base::process() no more steals you the first arg after fetching objects 2.03 Tue Oct 26 13:00:00 2004 - increased version number of Apache::MVC - fixed display_tables bug (Steve Simms) - fixed templates, now again XHTML compliant - documentation fix (Dave Howorth) - only set charset for text/* 2.02 Mon Oct 25 13:00:00 2004 - Fixed charset in http header. - replaced action links with forms in factory templates 2.01 Sun Oct 24 14:50:00 2004 - documentation fix to make t/03podcoverage happy 2.0 Fri Oct 22 20:00:00 2004 - added parse_args() (Simon Flack) - call additional_data() and authenticate() for plain templates - merged Apache2::MVC (mod_perl2 support) into Apache::MVC - added Maypole::Application universal front-end - config parameter handling for Maypole::Model::CDBI - $r->{query} is now deprecated, use $r->{params} for GET and POST - fixed multiple value handling (Simon Flack) - added exception handling (Simon Flack) - fixed documentation bugs - changed default documentencoding to utf8. Change with $r->config->{document_encoding} - removed Maypole::View::Mason as it's distributed separately on CPAN. - factory templates are now XHTML 1.1 compliant. - made the config hash into -> Maypole::Config - accessors for everything - win32 support - new documentation for Maypole.pm (Simon Flack) - moved doc/*.pod to lib/Maypole/Manual - added Maypole::Model::Base::is_public() to make it simple to overload :Exported behavior - added support for replacing use base qw/All My Modules/ with use Maypole::Application qw/Redirect AnotherPlugin/; note that this will only triggers with parameters to import, to preserve backwards compability. - fixed search ordering in Maypole::Model::CDBI and parameter handling in CGI::Maypole (Dave Slack) - sweet new factory templates (Danijel Milicevic) - zero search fix (Dave Slack) 1.7 Sat Jul 17 20:15:26 BST 2004 - Emergency release - we lost the "use Maypole::Constants" from CLI.pm somehow 1.6 Fri Jul 16 23:51:21 BST 2004 - Two very trivial fixes: - Put ::Plain in the MANIFEST, so it actually ships this time - Make CLI test == OK, not just true 1.5 Mon Jun 21 14:36:54 BST 2004 - CLI mode correctly uses Constants module - Template footers as well as headers (Markus Ramberg) - Fix problems on failed object create (Jesse Sheidlower) - Fix related() to deal with latest version of Class::DBI (Markus) - Add sample CSS to distribution - Maypole::Model::CDBI::Plain, for those who already have a CDBI set of classes set up - Friendlier errors when a template can't be found - Don't authenticate without a model class - #6569 Passing DBI options in setup() (Mickael Joanne) - #6571 User-defined ok_tables: patch - #6572 Makefile patch: require up-to-date CBDI::AsForm (Markus Ramberg) - #6573 Set empty params to '' instead of undef (Jody Belka) - #6617 Required cols patch in CDBI.pm (Jesse Sheidlower) 1.4 Fri Apr 16 18:11:41 BST 2004 - Much, much more documentation - CLI debugging mode - CGI frontend (CGI::Maypole) - Beginnings of a test suite - Maypole::Constants module to remove dependency on Apache - Refactoring of view classes to base/module-specific modules - HTML::Mason view class - Various small template bug fixes and enhancements 1.3 Fri Mar 26 19:16:33 GMT 2004 - Fix serious order/CDBI::Page interaction bug. - Die if model/view class can't be compiled. 1.2 Thu Mar 25 12:35:21 GMT 2004 - Ensure safety when dereferencing any ->objects - Support for the "frontpage" template - Maypole itself no longer uses ->{ar}, which is now completely refactored into the Apache::MVC class - The beginnings of the documentation framework - Support for paging and ordering in searches - Stringify column changed from magic "name" to customizable property - Move BeerDB to ex/ - Fix SQLite dependency 1.1 Wed Feb 25 10:29:25 GMT 2004 - Update CDBIL dependency - Don't stringify to "name" if there isn't one - Better support for authentication and template changes - Full set of templates - Allow passing of username and password to ->setup - display_columns method 1.0 Wed Feb 11 17:34:12 GMT 2004 - Renamed from Apache::MVC to Maypole. - Clearer separation of model and view classes from controller - Factoring out of Apache-specific code back into Apache::MVC 0.2 Thu Feb 5 18:03:33 GMT 2004 - This release adds paging of list results and ordering by column (ascending and descending) 0.01 Thu Jan 8 15:50:17 2004 - original version; created by h2xs 1.22 with options -AX -b 5.6.0 -n Apache::MVC