Revision history for Maypole-FormBuilder 0.44 Mon 26 Sept, 2005 10:50 - Maypole::FormBuilder::Model - new param() method, just like CGI's - e.g. used in the new cacheable templates - do_edit() sets the 'form_failed_validation' template_arg - used in the cacheable templates - added 'view' button to edit form - Maypole::FormBuilder::View - ensures the 'form_failed_validation' template_arg is always exported - Maypole::Plugin::FormBuilder - documented how setup() clobbers every subclass's form_builder_defaults() if they were set up during compilation (i.e. if specified inside the package of the subclass, instead of after the setup() call in the driver). - Mason templates - much-improved cacheing algorithms - now checks if the template or the object has been updated, and if the form has validation errors, before looking in the cache - a couple of small cosmetic changes 0.431 Fri 23 Sept, 2005 23:10 - no code changes, require M-P-QT 0.421 in Build.PL 0.43 Fri 23 Sept, 2005 22:40 Class::DBI::FormBuilder 0.46 - has-many and many-many support has improved - Maypole::FormBuilder::Model - display_columns now includes has_many fields by default - all the *_fields() methods are empty by default, except edit_fields() - Maypole::Plugin::FormBuilder - _form_args() sets 'required' to the stringify_column(), unless it is already configured. This stops the default from being 'require all columns', which was a pain - Mason templates - added caching versions of the main editing templates. In an app with a large number of related tables, this speeds up the generation of the edit page by at least 4X. These templates are not used by default - see the edit_with_cache template for details. 0.42 Mon 19 Sept, 2005 11:40 - updated the TT templates (supplied by Ron McClain) 0.413 Sun 18 Sept, 2005 20:45 - fix a failure in pod test script 0.412 Tues 23 August, 2005 17:15 - added custom fields to process_extras in ADDTO and EDIT_ALL_HAS_A entries in the setup_from_mode dispatch table, so that they actually get included in the forms 0.411 Tues 23 August, 2005 12:00 - fixed search_form to set $r as the param object - reported by Dave Howorth - support TT's way of passing args that look like a hash, as a hashref - patch from Dave Howorth 0.41 Fri 19 August, 2005 15:50 - do_pager (and Mp::FB) now works even without sessions (Dave Howorth) - slight tweak to setup_form_mode() to ignore process_fields setting in the button modes 0.4 Sat 13 August, 2005 - new dependencies: Maypole::Plugin::LinkTools, Maypole::Plugin::Session, URI and URI::QueryParam, List::Util - Maypole::FormBuilder::Model - new methods: - several new *_columns() and *_fields() methods - hasa_columns() returns a list of columns that are in has_a relationships - field_names() - provides names (i.e. labels) for has_many accessors, just like Maypole::Model::Base::column_names() does for columns - edit_all_has_a() - Exported method - display_columns() returns the columns in the order they are specified in the database - various additions and modifications to setup_form_mode(), to support new templates, and to move code out of the templates and into the model, and to use the new *_columns and *_fields methods - do_pager() records the current page in the session - copied new version of order() from Maypole::Model::CDBI in version 2.10 - Maypole::Plugin::FormBuilder - added table_labels slot to config object, and populate it in setup() - ensure each class has its own private form_builder_defaults hashref (in setup()) - factored out _get_form_args() - removed no_textareas option from as_forms - it's hard-wired in render_form_as_row() now - forms now pass a unique ID in their action, to be used to prevent multiple submissions (_add_unique_id) - _form_args now allows MP::FB::Model::setup_form_mode() to change the CDBI/Maypole object the form is built from - templates - new templates - custom_css - loads a class-specific css file, if one exists - /beer/css/beer.css - example class-specific css file - addmany - edit_all_has_a - view_all_has_a - modifications to edit, header, addto, maypole.css, addnew, addmany, generally moving perl code out of the template and into setup_form_mode() - moved maypole.css back into the css subdirectory - if /css/maypole_local.css exists, it will be loaded - if /css/$table.css exists for the current model_class, it will be loaded e.g. /beer/css/beer.css in the factory templates 0.32 Tues 9 Aug 2005, 1:20 - pass the Maypole request object to CGI::FB, instead of the CGI or Apache request object, since Maypole has a suitable params() method - suggested by Dave Howarth - de-activated default PrettyPrint mode - you can get it now using CDBI::FB's post-processor architecture - Maypole::FormBuilder::Model - setup_form_mode() accepts a new mode_args argument, which is a hashref. The addto and addmany templates use this - refactored setup_form_mode() to use a dispatch table of coderefs - templates - edit - simplified generation and layout of has_many forms - addto - simplified, moved code into setup_form_mode() - addmany - supports adding multiple items in a has_many relationship - maypole.css - slight tweaks - list - slight tweaks 0.312 Wed 3 Aug 2005, 23:50 - swap the order of looking for ar or cgi in _form_args() (reported by Dave Howorth) - activated CDBI::FB's new pretty-print mode, for the next few releases. Then I'll switch it off again. This makes HTML::TreeBuilder a new dependency. I'll try and figure out how to make this optional from Maypole. 0.311 Tues 2 Aug 2005, 23:48 - included the new templates 0.31 Tues 2 Aug 2005, 23:40 - removed dependency on CDBI::Plugin::Type - CDBI::FB doesn't need it any more - Maypole::FormBuilder::Model - added search_columns(), search_fields(), edit_columns() and edit_fields() methods - templates - search - moved all configuration of the search form into setup_form_mode(), using the new SET_$foo() processor in CDBI::FB 0.41 - edit - uses edit_fields() instead of related() 0.302 Sun 31 July 2005, 18:55 - optionally pass $mode as a positional arg to as_form() 0.301 Sun 31 July 2005, 17:30 new TT view template from Ron McLain 0.3 Fri 22 July 2005, 23:00 - templates - split the autohandler into header, navbar, title and footer templates - added greying-out for ReadOnly and Disabled input classes - added edit_with_related template - override this with an empty edit_with_related to remove the edit_with_related form in the edit template - edit template - related fields are no longer rendered in the default edit form. Instead, they are displayed in a table following the form, with the new addto template - addto - a new template, used in the edit template, to add a has_many item - Maypole::FormBuilder::Model - removed related() from the default fields list in edit mode in setup_form_mode - see edit template above - added addto mode to setup_form_mode, with a corresponding addto Exported method - addto doesn't work with many_many relationships yet 0.28 Fri 22 July 2005, 00:50 - Maypole::FormBuilder::Model - added list_fields() method, which defaults to related(). Used in setup_form_mode() in the editlist mode to supply the fields list (list_columns + list_fields), so that both the form built for the client, and the form built by the server to handle a submission, use the same default field list - note: MP::QuickTable 0.31 tabulate() defaults to display_columns + related, but the list template sets fields to list_columns + list_fields, so that editlistview and listview show the same fields. - added some documentation to explain how server and client forms are co-ordinated by setup_form_mode. - templates - list - explicitly set the fields argument to tabulate() in .listview (list_columns + list_fields) 0.27 Thur 21 July 2005, 19:45 - templates - list - build a dummy form if no forms are available in editlistview - moved Mason templates to templates-mason/ - added TT templates (in templates-tt/) from Ron McClain 0.26 Wed 20 July 2005, 12:00 - templates - pager: re-organised layout of code, and added code from Ron McClain to correctly page search results - list: moved the pager to above the table of results, and now show page number even for a single page of results - Maypole::FormBuilder::Model - uncommented code in list() to return sorted results, now that the framework is in place to provide the required parameters 0.25 Wed 20 July 2005, 00:45 - Maypole::Plugin::FormBuilder - removed some dead code incl. as_form_with_related - Maypole::FormBuilder::Model - load Class::DBI::Plugin::Type, rather than expecting the caller to do so - templates - removed view_related - MP::P::QuickTable is smart enough to figure out has_many items in the view template - adjusted column naming in list template to include has_many fields - see MP::P::QuickTable for other changes to make listview and editlistview show the same data - see http://rt.cpan.org/Ticket/Display.html?id=13779 - added some notes in source of pager template, sent by Ron McClain, to get the pager to work for search results. There's still a couple of things broken at the moment though - see also http://rt.cpan.org/Ticket/Display.html?id=13781 - added Maypole::Plugin::QuickTable as a prereq 0.2433 Mon 18 July 2005, 21:00 - fixed maypole.css link in autohandler template 0.2432 Mon 18 July 2005, 12:55 - removed empty beer templates directory - moved maypole.css to factory/ subdir, and removed css/ subdir - upgraded CDBI::FB requirement to 0.3501 in Build.PL 0.2431 Sun 17 July 2005, 12:10 - require CDBI::FB 0.3452 (not 0.35, which doesn't exist) in Build.PL 0.243 Sat 16 July 2005, 22:45 - load use Class::DBI::Plugin::Type in MP::FB::Model 0.242 Mon 11 Jul 2005, 21:55 - fixed bug in MP::FB::Model::setup_database() - 0.241 Mon 11 Jul 2005, 21:45 - a couple of minor updates to docs 0.24 Fri 1 Jul 2005, 16:30 - got rid of MP::FB::Model::Base 0.23 Thur 30 Jun 2005, 11:00 - added Maypole::FormBuilder::Model::Plain 0.22 Tues 28 Jun 2005, 14:00 - added as_form_with_related() method to MP::P::FB to support the same method in CDBI::FB 0.212 Tues 28 Jun 2005, 12:30 - more POD fixes 0.211 Fri 24 June 2005, 14:30 - very minor POD fixes 0.21 Tues 14 Jun 2005, 11:50 - fixed searching by not setting the form mode to do_search in MP::Plugin::FB::do_search() (I don't get why that would break it though) - fixed bugs in list template when a search returns no objects (use $request->model_class instead of $object->[0]) - removed template var 'search' from list template - check $request->action eq 'do_search' instead - refactored search template to take advantage of new search_opt_cmp and search_opt_order_by options in CDBI::FB::search_form() - removed has_a fields from required lists in MP::Plugin::FB synopsis - CDBI::FB now adds them automatically 0.2 Sun 12 Jun 2005, 17:20 - fixed the editlist mode, so all the buttons now work (unsetting sticky forms was the key - otherwise, all the forms adopted the values in the submitted request) - added sessions to the demo app, to keep track of the list view mode - various modifications to methods in MP::FB::Model - added switchlistmode() exported method - MP::Plugin::FB: - removed HTML rendering mode from MP::Plugin::FB::as_forms() - added MP::Plugin::FB::render_form_as_row() - added MP::Plugin::FB::listviewmode() to return the list view mode from the session (or 'list' if no session is available) - templates: - removed the editlist template - it's all in the list template now - removed hacks from pager and addnew templates to support different list view modes 0.12 Sat 11 Jun 2005, 21:45 - Fixed a bug in Maypole::Plugin::FormBuilder::setup(). The vars() method in the view class was removing classmetadata from _all_ apps in the current interpreter that used the same view as the FB app. Bad for mod_perl. 0.11 Fri 10 Jun 2005, 11:55 - morning after the night before POD fixes - all modules load MP::FB and use its VERSION - moved do_delete() from MP::FB::Model::Base to MP::FB::Model 0.1 Thur 9 Jun 2005, 22:45 First version, released on an unsuspecting world.