0.40000 Tue Mar 6, 2012
**** There are many changes to rendering, many of them incompatible.
These changes *will* break existing form rendering.
You must check that your rendering works before upgrading. Making a copy
of the old code (the widget and rendering roles) may be helpful (or use
the compatibility libraries -- see below).
I always prefer to maintain backward compatibility if possible, but
a number of the improvements were not possible without breaking
compatibility, so I did a lot of changes at once.
Compatibility libraries are provided to help support rendering that relied
on the earlier libriaries at:
git://github.com/gshank/html-formhandler_pre-0.40_compat.git
README at: https://github.com/gshank/html-formhandler_pre-0.40_compat/blob/master/README
Add 'no_update' flag to allow skipping model_update.
Remove 'deflate_to' flag; provide new inflation/deflation methods.
see HTML::FormHandler::Manual::InflationDeflation
New 'build_id_method' to provide different builder method for field IDs.
'auto_fieldset' and 'no_auto_fieldset' no longer used. No automatic fieldsets.
Can be added with do_wrapper => 1 and a tag of wrapper_tag => 'fieldset'
Localize the value of the reset button.
Tests and fix for form 'validate_<field_name>' and 'default_<field_name>' method
for repeatables fields.
Change default radiogroup rendering to not use <br /> elements. Add back
with tag radio_br_after => 1
Switch to using coderef for deflate_method; custom fields with deflate sub
will need to be modified.
Add block rendering (HTML::FormHandler::Blocks)
Re-do code for default & validate method construction; now provides
'default_method' and 'validate_method' coderef setting
Remove 'init_value_*' from Field (deprecated for years).
Use Hash::Merge in merging update field info on creation
Fix bug in copying tags to fields by cloning field definitions
Switch to using name 'element_attr' in fields instead of 'html_attr'
Put wrapper class 'hfh-repinst' on Repeatable Instances unless they already have a wrapper class
Remove 'javascript' field attribute. Put into *_attr hashref.
Automatically put 'error' on element and wrapper.
Switch to having the 'class' as a separate attribute from the _attr collection.
Use 'element_class', 'wrapper_class' & 'label_class' arrayrefs
Switch to having widget names by default be camel case; provide convenience
methods for templates - uwidget, uwrapper, twidget, twrapper.
** this change will affect existing template systems, if they use the
$field->widget method to get the widget name. See example templates.
and conversion methods 'ucc_widget' and 'cc_widget' in HTML::FormHandler::Render::Util
Create t/share/templates/form/form_in_one.tt
Switch default rendering of checkbox to have label wrap input. Checkboxes are
complicated. See t/render/checkbox.t for various options.
Add 'build_update_subfields' to 'update_fields' processing to allow moving
more of rendering settings into a separate role
Change form 'html_attr' to 'form_element_attr', and use builder
Change interface of html_field_attributes to also return attr (instead of just in-place)
Remove 'label_no_colon', make labels without colon the default.
Add widget tag 'label_after'. Use "label_after => ': '" for old behavior
Add widget tag 'label_tag'. Default 'label'.
Widget_tags replaced with 'form_tags' in form and 'tags' in Field.
takes builder 'build_form_tags' instead of default
Repeatable elements get automatic 'div' wrapper
Remove attribute 'auto_fieldset'; wrapping form is no longer a default;
Add back with sub build_do_form_wrapper {1},
and form_tags => { wrapper_tag => 'fieldset' }
Remove automatic wrapping of compounds.
Enable wrapping with do_wrapper => 1 (there's also do_label => 1)
Put form wrapper around form tag instead of inside
wrapper_start and wrapper_end tags not used to skip wrapper; use do_wrapper => 0
The 'get_tag' method now returns '' instead of undef if tag doesn't exist.
0.36001 Tues Jan 24, 2012
Add two more widget tags: 'no_auto_fieldset' and 'no_compound_wrapper'
Remove automatic addition of 'class="label"' to labels; if you want that
behavior, add it in with form sub field_html_attributes.
Add 'SKIP' to t/config.t test for Template.
Update Captcha so it might actually work.
0.36000 Sun Jan 22, 2012
Switch to using 'process_attrs' function to process attributes in rendering;
*** There were lots of updates to rendering. You should verify your custom
rendering, to make sure that nothing has broken. The '_add_html_attributes'
method is no longer used.
Add shorthand method for setting defaults in fields
Add widget_tags 'label_no_colon' & 'wrapper_tag'
Update and reorganize TT templates
Add flags 'use_defaults_over_obj' & 'use_init_obj_over_item'
Add 'num_extra' to Repeatable
Update Turkish message file; add Float field
Add lazy to 'html' attribute in Display field
Add 'label_attr' and 'wrapper_attr' to Field
Add 'Array' trait to field_name_space and widget_name_space
Bug with selected/checked hash key in Multiple; switch to creating default
Bug with repeatable contains; not using full name for accessor.
Die if using HTML::FormHandler::Moose without HTML::FormHandler
Field::TextArea extends Field::Text to reuse its validations (min/max length)
Add is_html5 attribute to forms which causes forms to have the additional
HTML 5 attributes which can be used by HTML 5 capable clients for validation
0.35005 Sat Oct 8, 2011
Fix bug repeatable result not returned for num_when_empty
Fix bug repeatable required flag not propagated
Fix bug building nested compound fields
Allow html attributes on radio group elements
Undefined string warning in select rendering
Add Japanese message file
0.35004 Wed Oct 5, 2011
Fix bug setting multiple selects with init_object
Provide html_attr for form attributes
Use Moose type for field_name_space and widget_name_space
0.35003 Wed Sep 7, 2011
Fix bug constructing classes for Class::Load, revealed by Class::Load 0.10
0.35002 Mon Aug 8, 2011
Change to use Class::Load due to speed.
0.35001 Mon Jul 25, 2011
Undid setting processed flag when building result in BUILD. Breaks
existing apps. Re-thinking that part for now.
0.35000 Thu Jul 21, 2011
Add support for tabindex attribute.
Generic html attribute setting (html_attr)
Set 'processed' flag when building results in BUILD to fix problem
with garbage collected results.
*** it's possible that this may break code if field values were being
set outside of FormHandler, or params were set on new. Pass params
on process. Set fields inside FormHandler, or run clear first, then
set values. In general, it works best to update fields inside a
FormHandler class, in a method or method modifier.
Building results in 'new' happened originally because people expected
to be able to do $form->render after new, without process. But you're
better off always running 'process'.
Add flag 'no_preload' to skip building results in new (BUILD) if not needed
Add flag 'no_widgets' to skip applying widgets to fields if not needed
Fix for Date fields in compounds.
Types Printable & SingleWord use class messages
Add link to the bug tracker into the HELP section in the Pod.
Change how field_traits work: apply traits to field objects, add
new class method apply_traits (Stephen Thirlwall)
0.34001 Mon May 16, 2011
Fiz another memory cycle using Select field
Tweak code creating results for Field testing
0.34000 Mon May 16, 2011
Fixed memory cycles; 1 in HFH code, others by requiring Moose 2.0007
Localize value of a button
Allow limited use of has_many multiple select
Add SimpleInline & TableInline widgets to not wrap compound fields
0.33002 Tues Feb 22, 2011
Accidentally left off compatibility for 'required_message' attribute
messages => { required => '...' } is new style and worked
0.33001 Mon Feb 21, 2011
Remove unnecessary with of HFH::Validate::Actions
0.33000 Mon Feb 21, 2011
bug - empty_select check defined
Add button field, widget, template
Check html attributes for definedness not truth
Add ability to set field inactive on new & process
in addition to setting active
Move 'no_render_label' into Field
Use form's language_handle in fields
Improve PrimaryKey doc
Return empty hashref from $form->value instead of undef
Merge experimental Wizard into master
Render disabled select options
Repeatable contains rendering incorrectly, skipping empty elements
Add rendering of form_errors to widgets and Render::Simple
*** If you were using form_errors (there are none by default)
and were using HFH rendering, check for compatibility
Allow specifying full class for widget with '+'
Document removing wrapper div from Simple wrapper
Re-do how field messages are stored and accessed. Use messages => {...}
instead of various _message attributes
Add utilities in util to pull out class messages and check I18N
Update I18N messages files (those that were provided by translators)
Change render_filter Coderef setting because of leak;
*** Possible incompatibility: if you have a form render_filter,
change to function instead of method
Change _localize to a Coderef to allow easier changing.
*** If you have a custom _localize method, check for compatibility
0.32005 Wed Oct 20, 2010
Removed '//'; incompatible with earlier versions of Perl
0.32004 Wed Oct 20, 2010
Minor doc cleanup
Switch away from MooseX::Traits; memory leak because of non-cached
composed classes
0.32003 Sun Oct 3, 2010
Fix syntax for 'with', excludes => -excludes
Use labels in radio group widgets
Add 'is_active' and 'is_inactive' convenience methods in Field
Select options - check defined instead of truth
Misc minor doc and test improvements
Coderef allowed for messages in apply actions
Limit removing of numbers when constructing method names
Use html_filter when rendering labels
Allow undefining min_size and max_size in upload field
Return in render_filter if string is not defined
Change rendering of repeatable subfields
0.32002 Thu July 29, 2010
Update to handle newer Moose (error msg with Moose::Util::MetaRole API)
Swich to Dist::Zilla
Add customization of form tag attributes
Add test prereqs
0.32001 Fri June 25, 2010
Add prereqs for DateTime::Format::Strptime and Email::Valid
0.32000 Fri June 25, 2010
Accept arrayref messages in add_error
Add initial fieldset wrapper
Flag (localize_labels) in Select field for rendering; localize empty_select
Add posted flag for forms containing only fields with no params when unselected
Add 'update_fields' methods and 'update_field_list' for preference-type field updates
Fix incorrect error message in duration field
Use LANGUAGE_HANDLE instead of LANG in tests
Add 'input_class' for class attribute on input fields
Allow deflation in fif, flag 'deflate_to' => 'value'/'fif'
Fix bug with unselected Select field (move input_without_param & not_nullable into field)
Add resultset example to cookbook
Doc to look at input for multiple submit fields
Fix bug in _set_dependency; use 'has_some_value' to determine emptiness
Add form_errors for non-field errors
Remove deprecated 'min_length' attribute ('minlength' is supported)
Allow upload field to be passed a file handle
Pass values to Display field (for display-only db fields)
Change I18N to allow duck_type classes; add test for Data::Localize
Added 'peek' diagnostic function for viewing field & result trees
Fix bug with extra results in repeatable elements
Strip empty pks and empty elements from repeatable values (avoid DB errors)
Localize value of submit button
Make '+' unnecessary in front of field name space types
0.31003 Fri May 7, 2010
Change precedence of defaults over item/init_object; add 'default_over_obj' for
cases where that behavior is desired.
Fix errors in filtering HTML in rendering
Call deflation in InitResult::_result_from_obj
Split localization of labels into separate 'loc_label' method
Call loc_label where label is used in error messages
Enable empty strings for wrapper_start and wrapper_end
Set locale to en_us where needed in test
Fix widget_name_space use in fields
0.31002 Wed Apr 21, 2010
Remove unused HTML::Entities from Simple form widget
Move locale test file into xt because of env variable issues in test
0.31001 Tues Apr 20, 2010
Use full length version number
Updates to translated messages & messages in Validate::Actions
0.31 Fri Apr 16, 2010
Remove use of HTML::Entities for filtering. New render_filter coderef for filering.
Minor doc fixes for typos
Use _html_attributes in widgets (for disabled, readonly, javascript)
Localize default required field message
Add 'render_upload' to Render::Simple
Fix allowing array for field_name_space
Selected_option for select lists
Add example to cookbook and tests for setting a coderef for validation
Checkbox group use 'eq' instead of '=='
Fixes to tutorial to match Catalyst tutorial
Allow arrayref for 'has_field' (like Moose 'has')
Die on maketext errors
Move deflation from fif to get_value called by '_result_from_object'.
Possible incompatibility, except it was probably not working to start with...
0.30003 Sun Feb 21, 2010
Partial fix for lack of defaults for compound fields
Support for using model_fields roles (DBICFields)
Use 'eq' instead of '==' when constructing html for multiple selects
Remove deprecated 'auto' syntax
0.30002 Thu Feb 11, 2010
Don't convert widget names that contain uppercase
Better error messages for missing field classes
Field attribute 'input_param' to allow input names different than field names
Make field 'default' rw
Clean up doc on init_object
0.30001 Fri Feb 5, 2009
Remove unnecessary IO::All use causing dep problems
Changes to Turkish messages
Russian and Urkainian message files
Use HTML::FormHandlerX namespace for fields and widgets
Fix bug with defaults set to 0
0.30 Mon Feb 1, 2010
Improve Display Field, adding more ways to set html
Add initial pass at more automatic TT rendering
Change readonly, html attributes to 'rw'
Set widget in Reset field
Fix bugs and oddities in HFH::types
Fix bug allowing hashref to be passed to constructor
Improve doc on 'trim'
Add more doc on dynamic form creation
Allow 'options_<field_name>' attributes in form
Add Turkish message file
Add 'empty_select' to Select field
Fix bug displaying empty repeatable element if no values from object
Improvements in I18N factoring
0.29002 Wed Dec 16, 2009
Remove locale.t from dist until issues solved
0.29001 Tues Dec 15, 2009
Fix bug with passing widget_wrapper to fields
Fix bug with generated method names for form methods
0.29 Wed Dec 2, 2009
Add CheckboxGroup widget, add MooseX::Traits to Form & Field class
Fix bug where defaults were not being used with an initial object
Fix DateTime field to trap DateTime errors, pass hash in value
Use build_label for field labels
Remove use of Class::Load, instead use Class::MOP::load_class()
Add set_active and make switching fields to active simpler
Fix bug when options lists from db are empty
Add encode_entities to rendering widgets
Switch from init_value_<fieldname> to default_<fieldname>
Change upload field.
Improve setting of method defaults for set_default, set_validate, set_options
0.28
Switched to using native traits
Add Widget roles
Major refactor to support result classes
Reformatting source to more Perl standard
Fix bug generating CSS classes in Render::Simple (mazpe)
Fix POD example in ::Intro (mazpe)
0.27006 Mon Aug 17, 2009
Add ability to set params class and arguments
0.27005 Wed Aug 12, 2009
DateTime::Format::Strptime dep again
0.27004 Tues Aug 11, 2009
Date inherits from Text. Fix loading compound fields from related.
Call load_options for forms with no init_obj & params
0.27003 Sat Aug 2, 2009
Indexing failure missing version in Date
0.27002 Sat Aug 2, 2009
Fix missing dependency on DateTime::Format::Strptime
Doc tweaks
0.27001 Fri July 31, 2009
Doc fixes, fix Date field.
0.27 Sat July 25, 2009
Split HTML::FormHandler::Model::DBIC into separate distribution
Add 'inactive' flag. Cleanup Makefile.PL. 'size' split into 'size' and
'maxlength'. 'min_length' renamed to 'minlength'. Add Catalyst pod.
'html_name' used for field 'id'. Fix DateMDY field.
0.26 Tues June 23, 2009
Fix dependency test failures on UNIVERSAL::require and version
0.25 Sat June 20, 2009
Add dependency for DateTime::Format::SQLite
0.24 Sat June 20, 2009
Refactor validation processing for api consistency
Skip empty undef array elements. Update Password and PrimaryKey fields.
Fix bugs: calling validate_ method, recognizing errors in repeatable fields,
handling empty repeatable elements,
incorrect cloning in Repeatable, rendering fixes/updates.
0.23 Fri May 22, 2009
Refactor HTH to use only 'process'. Deprecate 'validate' and 'update'
Add field_list array, deprecate other usages.
Clean up documentation
Add Repeatable field to support has_many relationships
0.22 Fri May 1, 2009, 17:00
Removed development only test from distribution
Expanded apply documentation.
0.21 Thu Apr 30, 2009, 20:00
Removed podcoverage, added skip to generator.t test, added
'apply' sugar for adding actions, doc for compound field
0.20 Thu Apr 23, 2009, 17:00
Added apply constraints, transforms, checks. Refactored code for future
use of nested fields. Improvements to compound fields. Bug fix for
checkboxes. Added ability to redefine attributes of existing fields
with '+fieldname'.
0.19 Thu Mar 05, 2009, 17:00
Fix problem with empty values from form. Add Compound field.
0.18 Sun Feb 22 2009, 15:00
Add missing test prereq DateTime::Format::MySQL.
Add 'values' method to form. Add 'accessor' attribute
to field.
0.17 Thurs Feb 19 2009, 17:30
Refactor validate, adding validate_form method
0.16 Thurs Feb 19 2009, 17:00
Add ability to use arrayrefs for primary key
Clear 'fif' for non-db forms. Allow init_object for non-db forms.
0.15 Mon Feb 16 2009, 19:00
Fix inheritance of has_field. Add ability to use has_field
in roles. Some refactoring of 'clear'. If a field is not
in params, don't touch in db.
0.14 Fri Feb 06 2009, 18:00
Wrong version in META.yml. Fix fif for password fields.
0.13 Wed Feb 04 2009, 23:00
Fix validate to set params if hash
0.12 Wed Feb 04 2009, 18:00
Fix 'dump_fields'. Add more output for verbose. Change so
that 'validate' doesn't require a separate 'clear' for
persistent forms. The controller test will only execute
with an environment variable.
0.11 Mon Feb 02 2009, 17:00
Change to use BEGIN block in controllers for Catalyst 5.80.
0.10 Thu Jan 29 2009, 07:00
Remove unnecessary 'use' from Render::Simple to eliminate install
failures. Change handling of 'has_field'.
0.09 Sun Jan 25 2009, 17:00
Minor changes.
0.08 Sat Jan 24 2009, 11:00
Remove controller and role. Refactor to support persistent
forms. Remove update_from_form method. Add 'process', and
'update' methods. Update documentation to match. Update tutorial.
0.07 Thurs Jan 22 2009, 04:00
Add prereq of DateTime. Minor doc changes.
0.06 Wed Jan 21 2009, 04:00
Add prereq skip tests to controller test. Clean up Makefile.PL.
Convert test controller Book.pm to use chained. Support empty
rows.
0.05 Mon Jan 19 2009, 15:00
Add skip test to htmlarea test. Add action, http_method, & submit to form.
Add javascript to field. Create widget directory for templates.
0.04 Fri Jan 16 2009, 19:00
Move example to test directory. Change controller; add controller
test. Add use for HashRefInflator. Add more documentation.
0.03 Tues Jan 12 2009, 16:00
Pod fix, remove failing test from htmlarea
0.02 Tues Jan 12 2009, 03:00
Fixed pod formatting, naming of files
0.01 Mon Jan 12 2009, 17:00
Released on an unsuspecting world
Conversion of Form::Processor to Moose, including
renaming many attributes and methods and refactoring