The following logs changes for the CPAN distribution Valiant 0.002017 2025 March 10 - minor changes to the way we call 'csrf_token' to support per form tokens when the underlying CSRF library supports that. 0.002016 2025 January 02 - FormBuilder: 'select' and 'collection_select' new option 'default_selected' which sets selected options only when the underlying model has no value for the selected field. - FormBuilder: the 'action' option now always overrides any discovered form action urls via view or controller introspection. 0.002015 2025 January 02 - Fixed goof in previous release 0.002014 2025 January 02 - Further improvements to JSONification 0.002013 2025 January 01 - fixed 'TO_JSON' method in Valiant::Errors to properly return a hashref. 0.002012 2024 December 12 - Updated github workflow to fix broken badges 0.002011 2024 December 7 - Closed potential security issue with deeply nested paramters in the DBIC glue code. This was a hack that could let someone create a child record if you were allowing find_by_unique rather than find by primary key. 0.002010 2024 December 7 - Resultset level error messages are smarter about making sure the message knows the set is plural so that the message is properly grammatical. - Improvements to the Date validator around time zone control and addition helpers for when you want constraints that are greater than or equal to or less than or equal to a date. 0.002009 2024 December 5 - Adding a blank record via _add in DBIC Validate no longer runs validation on th eempty record - Fixes to issues when you want to use formbuilder on attributes that don't actually exist in the model - New 'form_action_for' method on formbuilder to make it easier to create action button links off the main action - New 'emit_hidden_ids' method on formbuilder when the record ID fields new custom placement in the HTML - 'select' formbuilder method now properly localizes option labels - Default formbuilder model now properly localizes - Docs and test cases fixed as needed for above. 0.002008 2024 November 29 - Fixed issue where pager builder didn't find the correct view 0.002007 2024 November 26 - attempted fix for issue with changes to boolean module that broke the tests - new 'validate_only' method that lets you run validations only for a specific attribute or arrayref of attributes. Useful for AJAX stuff form field updates or when you want very fine tuned or custom control over validation. 0.002006 2024 October 27 - Fixed issue where legend_for tag didn't respect custom attributes - More control options over how errors are displayed in the formbuilder - Updated Formbuilder 'fields_for' to allow you to pass an actual object or collection of objects rather than just the name of the attribute. 0.002005 2024 October 1 - Added support for a model to declare its form fields. - documentation improvements - better control on allowing virtual methods on a model versus throwing an error when an attribute doesn't exist - dedication updates. 0.002004 2024 July 29 - Lots of updates to the example application (again). Most more testing of AJAXy bits to try to figure out weaknesses in the overall design as well as seeing how well this works with some other semi experimental code I'm working on like per request controllers, etc. - General documentation improvements and updates. - Catalyst::View::Valiant::HTMLBuilder is basically a 'do over'. If you were using this experimental and mostly undocumented code, your application will completely break when you install this. - New DBIC plugin: DBIx::Class::Valiant::Result::HTML::FormFields which provides a way to annotate a DBIC result class with form field information that is used by the FormBuilder to generate forms. This can make your templates neater and also keeps DB type information out of your templates. - Valiant::HTML::FormBuilder we create some additionl helpers to proxy some form options like method, enctype, etc. Support for data 'remote' for making it easier to use AJAX with forms. See the docs. Also improves some display and internationalization options. Support for inferrring collection info from a model (see DBIx::Class::Valiant::Result::HTML::FormFields). - Added Valiant::HTML::PagerBuilder which is an experimental way to build a pager for a list of items. This is experimental and minimally documented. You can look at the example application to see how it works. I will feel free to totally break this as needed to make it work better. - SafeString now has an escape_html helper - When using the 'form_for' helper you can now create the form and later render it. - Lots of little improvements to the internationalization code. Shouldn't break anything. - Updated cpanfile to use more modern CPAN modules and to remove some dependencies that are no longer needed. This could force install a newer version of some modules that you might not have wanted to upgrade. 0.002003 2023 October 04 - This is probably not a mandatory upgrade, it has lots of small tweaks, tests and doc updates but nothing major. - POC Pager HTML component. Totally undocumented or tested. - Updates to the example application to help test this better - Lots of minor tweaks and fixes to the way internationalization and model naming works. Added more test cases. 0.002002 2023 August 27 - Fixes to how Formhandler computes a default action for the form based on the passed model and information provided by the view or controller. - Updated example application to match. 0.002001 2023 August 11 - HTML Form helper sets tunneled method info as a data attribute. - The DBIC Resultset SetSize validator now distinguished between empty and blank correctly. This fix allows you to more properly exclude the validation in the correct condition. - Improvements to the example code - Incremented revision information to indicate I consider the code to be pretty stable and contains at least 80% of the features I intend for this code. I've been able to use it on commercial projects without issue. I do not intend to make breaking changes unless its absolutely necessary to fix major security issues or to move the code forward. 0.001026 2023 August 03 - Minor fixes to HTML Builder 0.001025 2023 August 02 - Make sure we don't insert or update a DBIC row that has been marked for delete 0.001024 2023 July 14 - fix goofs in previous release to get tests passing 0.001023 2023 July 12 - Adding documentation around the formbuilder theming function. - Changes the way nested validation errors are structured to make it easier to link errors to form elements or JSON paths. - Radio and checkbox collections have better default labeling and clarified translation lookup - Tons of HTML form generation bug fixes including improvements to how we handle complex form elements like the checkbox collection. - FormBuilder and many other parts of the HTML generation framework work properly in the absense of a model. also its easier to include bits of data from alternative models in a form. - lots of improvements to the example application include a start on showing how we can integrate javascript on the front end. 0.001022 2023 April 18 - Improved some error reporting and messaging - Catalyst View can now import methods from the controller and context - fixes to bugs in the view imported tags - mostly invisible changes to the way we create form builders to set the groundwork for bigger changes in the future 0.001021 2023 April 10 - Added missing distribution dependencies - minor tweaks to some naming and formating in the example application 0.001020 2023 April 9 - fixed issue with control logic when repeat had an empty set. - improved error messaging in the 'path' utility export helper - updated example application to improve controller consistency and make better use of view features. 0.001019 2023 April 8 - Fixed test cases that regressed in previous release - Fixed assorted bugs in Catalyst::View::Valiant - Lots of tweaks to the example / test application 0.001018 2023 April 6 - Totally reworked how the HTML generation code integrates with an underlying view. This shouldn't be a breaking change but makes it possible to integrate those modules with modern views like Xslate which provide autoescaping features for safety - Build new example view based on this for Catalyst. Changed all the example code to use these new features. - Lots of small documentation improvements and bug fixes, including issues that caused fails to install on some systems as reported by CPAN testers. - Lots of additional fixes and tweaks to the Catalyst example application. 0.001017 2022 December 6 - Lots of updates and additions to the example application. - Lots of updates to the totally undocumented tag builder ;) - Improvements to the DBIC value glue code, especially around adding and deleting related models. - Formbuilding bug fixes and documentation updates. - Happy 16th anniversary of my Wife and Son arriving in the US. It's been a crazy ride and a fun one! I hope the next 16 are as sweet. 0.001016 2022 September 11 - Distribution is no longer labled 'early access'. This means I've used it on enough projects to feel there are no massive bugs / gotchas and that I'm pretty committed to the current API. I will only break compatibility if needed to fix security problems or when there's no other way to move the code forward. - New ability to 'theme' Formbuilder by setting default html attributes for the various form elements. This feature is still evolving so if you use it please be sure to check notes when upgrading. - Improved Formbuilder documentation - clarified the use of the parent_builder option for some Formbuilder methods - Formbuilder callback method now includes the wrapped model. This could be a breaking change for you if you use method signatures. - New attribute on Formbuilder to track the parent builder if one exists. - Updates to the HTML Tagbuilder to improve looping and related logic. - lots of updates to the example application - In dedication to the living memory of 9/11. I will never forget the unity and strength of my fellow NYC citizens on that day. If you visit NYC and go to the Reflecting Pool, please consider not taking a selfie on those hallowed grounds out of respect for those who have experienced what you can never know. 0.001015 2022 August 3 - lots of cleanup and changes to the example Catalyst application as well as more testing of the DBIC wrapper for Valiant Validations. - New DBIC result method set_columns_recursively - Move the DBIC resultset validator for set size into its own module (SetSize) - Valiant::HTML::Form checks its model for a csrf_token - numerous non breaking bug fixes to Valiant::HTML::FormBuilder - 'read_attribute_for_html' allows a model to tell the formbuilder how to read attributes for display purposes. Useful for deflating or reformatting - enhancements to Valiant::HTML::Tagbuilder - new global option on formbuilder fields to set HTML attributes when the field has errors (error_attrs). 0.001014 2022 March 4 - More changes to fix issues with supporting Windows - Fixes to the continuous build system around Windows 0.001013 2022 March 3 - Minor changes to improve backward compatibility with older versions of Perl. - Changed debugging to help try to fix the Windows incompatibility issue. - Tweaks to the distribution meta data to try to surpress debugging / testing files from getting indexed. 0.001012 2022 February 27 - Added packages under Valiant::HTML for HTML form generation and templating. - Lots of changes and bugfixs to how nested models and collections work for the DBIC integration. Some changes such as we now automatically add the required validators when you mark relationships as 'accept_nested' might be breaking so you'll need to test and please be aware that stuff is still subject to change. Test cases added for these fixes / changes. Documentation also inproved. - New filter: Template. - Lots of tweaks to the example application - Updates to the DEDICATION - This release is specifically dedicated to the memory of our beloved dog Squeaker, who we lost suddenly to cancer in December of 2021. Squeaker, I wept as hard at your passing as I rejoiced to witness your birth. I promise to care for your brother Bear for as long as this world allows it. 0.001011 2021 November 03 - Improved documentation for DBIx::Class::Valiant - supported deletion of nested results in DBIx::Class::Valiant - lots of security related test cases for nested data and DBIx::Class::Valiant - Some code optimization for DBIx::Class::Valiant (sensing a theme?) - DBIx::Class::Valiant is getting pretty close to the point where I want to pull it into its own distribution. The core Valiant code is starting to look like its rather stable adn DBIx::Class::Valiant has enough basic docs and test cases that its starting to seem not scary. If you're using DBIx::Class::Valiant you should keep an eye out for this pending separation. 0.001010 2021 October 26 - New Validator: "Scalar". - lots of improvements to the example application - lots and lots of bugfixs to the DBIC glue code, mostly around nested validations 0.001009 2021 October 01 - A lot of little bugfixes to the DBIC glue code, expecially when using nested validations. If you are using nested DBIC validations its not impossible stuff is different (please report anything actually broken). - Updates to the example application, most to the form helpers which you are free to steal but expect them to continue to change until I have something CPAN worthy. 0.001008 2021 September 14 - More changes to the way the exporter works. Shouldn't break anything but this change will setup the code to be more compatible with Object::Pad, which is the sketch for Cor, the possible new Perl object system. This way we start the process of being Cor friendly. - Some documentation cleanup and additions around how internationalized works. Its still underdocumented (volunteers very welcomed). 0.001007 2021 September 06 - !!! Totally changed the way we aggregate validations and filters from subclasses and roles. All the same validations will run but the run order is likely different. THIS COULD BE A BREAKING CHANGE for you if you have code that is validation order dependent (could be in your test cases for example). I did warn you that validation order was subject to change :) On a positive note after working thru this with mst I think order is a lot more firmed up. I still consider it subject to change but I will now only change it if I need to in order to address critical design or secure or performance issues. - !!! Removed for now some experimental introspection code. It wasn't documented and if you used it your code is now broken. Contact me with your use case so I can plan a sane API for this. - Confirmation validator now skips when either the confirmation value or check value is not defined. This prevents showing a confirmation error when both values are not defined which I think is correct but its a minor breaking change. - Lots more test cases are DBIC nesting. - Normalized how translations key names are looked up and documented that. Its also not impossible I introduced a breaking change if you are using translation tags with lots of weird nesting. 0.001006 2021 April 19 - Possible fix for issue where windows doesn't find locale paths 0.001005 2021 April 18 - Declare column validations inside a column definition for DBIC - lots of tweaks and fixes to now nested validations for DBIC work - Start on having CCI for Windows and MacOS - Stubbed out a lot of the docs needed for Valiant::DBIC - improved the Catalyst example using DBIC with Valiant - Allowed one to set a context on a model before running the validation - enabled some debugging for test cases to help me fix the Windows issue. If anyone has access to Strawberry Perl on Windows and wants to help me make this work on Windows please give me a shout! 0.001004 2021 April 07 - Specify more exact dependency versions in cpanfile. - lots of updates to nested DBIC support and improved example application 0.001003 2021 March 04 - Allow one to disable auto validation on DBIC classes. This allows you to insert or update rows that are invalid. - Added some test cases for strict mode validations and allowed one a bit more control over strict mode messaging. 0.001002 2021 February 25 - quick followup that just fixes POD issues. 0.001001 2021 February 25 - This initial release is dedicated to my dog 'Tornado', who we lost to cancer on 18 August 2020. Please see 'DEDICATIONS' in the main POD for more.