Revision history for Rose-DBx-Object-Renderer 0.01 17/03/2008 First version, released on an unsuspecting world. 0.02 01/04/2008 Minor change to render_as_menu's HTML title. Updated POD. 0.03 04/04/2008 Updated POD. 0.04 01/05/2008 Updated the timestamp definition to properly display minutes. Refined the file upload method for preserving old files. Simplified the sample form template (form.tt). Fixed chained output in render_as_menu. Fixed date column's 'for_update' method. Allow CGI object to be passed to the rendering methods (Suggested by Stewart Heckenberg). Fixed a bug in render_as_form when inserting empty values using custom 'for_update' methods. Added the 'join_delimiter' parameter in $CONFIG for joining multiple values, such as foreign objects. Minor Enhancements. Updated POD. 0.05 02/05/2008 Added the 'unsortable' parameter to custom column definition in render_as_table. Fixed buttons in the sample form.tt (Reported by Stewart Heckenberg). Enhanced template settings in rendering methods. Updated POD. 0.06 06/05/2008 Added the 'no_pagination' parameter to render_as_table, updated the sample table template. Fixed POD. 0.07 27/05/2008 Deprecate the 'unsortable' parameter in custom column definition for render_as_table (introduced in 0.05). Custom columns are always unsortable. Disable 'file' field type for foreign object and foreign key fields in render_as_form (Suggested by Stewart Heckenberg) Simplified CSS. Updated POD. 0.08 10/06/2008 Fixed an issue when updating foreign objects. 0.09 11/06/2008 Removed the constraint for all primary key must be named 'id'. Updated POD. 0.10 11/06/2008 Fixed search box CSS in 'render_as_table'. 0.11 13/06/2008 Minor CSS Updates. 0.12 17/06/2008 Optimise load_database for persistent environments (Solution provided by Cees Hek). 0.13 25/06/2008 Fixed an issue when using the 'searchable' option with date or timestamp columns in render_as_table. 0.14 26/06/2008 Minor updates to the default CSS. 0.15 03/07/2008 Added the 'for_filter' option for column filtering in render_as_table and the 'for_create' option for formatting default values in render_as_form. Minor enhancements to the column definitions and the default table template. Updated POD. 0.16 18/07/2008 Removed obsolete js parameters in the global $CONFIG. Rewrote the logic for handling custom 'fields' option in render_as_form. Rewrote the logic for handling 'searchable' option in render_as_table. Rewrote render_as_chart to use the Google Chart API (removed the dependency on JSON::XS and Tie::Hash::Indexed). Minor code re-factoring. Updated POD. 0.17 20/07/2008 Improved data scaling and Y axis labelling in render_as_chart. Update the sample menu template (menu.tt). Simplified the global $CONFIG hash. Minor code re-factoring. Updated POD. 0.18 24/07/2008 Minor code re-factoring for the stringify_me object method. Updated POD. 0.19 24/07/2008 Updated render_as_form to allow the 'for_update' formatting method of an empty valued column to execute. 0.20 25/07/2008 Improve the 'searchable' option in render_as_table to handle foreign class columns with 'for_search' methods. 0.21 28/07/2008 Fixed a bug (introduced since 0.19) causing render_as_form to fail when inserting new objects with custom fields. Renamed the 'join_delimiter' in the global $CONFIG to 'delimiter' and moved it into the 'table' hash. 0.22 30/07/2008 Fixed a bug in render_as_form with custom fields having the 'required' field option set to 0. Fixed the regular expression for validating the 'money' column definition. Enhanced rendering 'static' form fields in render_as_form. Deprecated unused options in the global $CONFIG. Minor code re-factoring. 0.23 31/07/2008 Fixed a bug in render_as_table where column values are not shown and column sorting is disabled when a custom column label is defined. Fixed a bug in render_as_table with columns using the 'for_filter' formatting option. Minor code re-factoring. 0.24 04/08/2008 Enabled multiple keyword searches for 'searchable' columns in render_as_table. Added the 'keyword_delimiter' option to the global $CONFIG. Added support for matching RDBO column definitions. Deprecated the 'wait_message' option in the global $CONFIG and in rendering methods. Updated POD. 0.25 12/08/2008 Updated the 'date' and 'timestamp' column definitions. Deprecated the 'varchar' column definition. Updated POD. 0.26 13/08/2008 Added error handling code for the 'date' column definition. Update the column definition assignment logic. Updated POD. 0.27 15/08/2008 Clean up the unnecessary 'sortopts' option for column definitions in the global $CONFIG. Updated POD. 0.28 17/08/2008 Fixed an error in POD. 0.29 10/09/2008 Migrated to an OO layout - BREAKS COMPATIBILITY WITH OLDER VERSIONS. Replaced load_database() with new(), config(), and load(). Deprecated the global $CONFIG variable. Deprecated the 'show_id' parameter across rendering methods. Deprecated the 'no_pagination' parameter in render_as_table(). Renamed stringify_package_name() to stringify_class(). Changed the default 'stringify_delimiter' option to space. Moved the 'keep_old_file' in form options into the upload options and renamed to 'keep_old_files'. Moved the 'search_operator' in table options into the db options and renamed to 'like_operator'. Added the 'template_path', 'template_url', and 'html_head' options across rendering methods. Added the 'search_result_title' as a configurable option for render_as_table(). Passed the 'q' CGI param to template in render_as_table(), updated the sample 'table.tt' accordingly. Updated column definitions. Added Exporter tags. Removed the dependencies on File::Copy::Recursive. Code re-factoring. Updated POD. 0.30 15/09/2008 Fixed a bug in render_as_form where 'fields' option values are ignored if the value is 0. Updated POD. 0.31 16/09/2008 Fixed a primary key related issue that prevents objects being created, updated, or deleted properly. Rendering methods now use the manager class's object_class() method to resolve object class names. Updated POD. 0.32 17/09/2008 Use the Rose::DB::Object::Manager class to manage multiple foreign class objects in render_as_form() (Solution provided by John Siracusa). Updated POD. 0.33 17/09/2008 Updated the 'for_view' formatting methods for the 'media' and 'address' column definition. Removed the dependencies on Image::ExifTool. 0.34 28/09/2008 Removed the dependencies on Math::Round by tweaking the 'money' column definition. Use File::Copy to copy, move files when handling uploads. Updated POD. 0.35 30/09/2008 Updated POD. 0.36 04/10/2008 Fixed a bug in render_as_table() having inconsistent paginated results when sorted by a particular column due to the behaviour of LIMIT and OFFSET in PostgreSQL. 0.37 05/10/2008 Results from render_as_table() are now by default sorted by the primary key in order to prevent inconsistent paginated results in PostgreSQL. Updated the default pagination in render_as_table(), added the 'pages' table option to the default config, updated 'table.tt' accordingly. Minor update to the default CSS. Updated POD. 0.38 07/10/2008 Use table name in the default sort by clause in render_as_table() to prevent column name clashes. Fixed a problem when passing the default config hash to config(). 0.39 08/10/2008 Updated POD. 0.40 12/01/2009 Added the 'copy' option to render_as_form() for cloning objects (Suggested by Stewart Heckenberg). Updated render_as_table() and render_as_menu() to take advantage of this new option. Added form field validation for unique keys (updated load()). Added the 'template_data' option to all rendering methods. Added the 'unsortable' option to the 'columns' parameter in render_as_table(). Added the 'q' parameter to specify the search keyword in render_as_table(). Fixed a bug when sorting columns in render_as_table() due to clashing column names across multiple loaded tables. Fixed a bug in delete_with_file() where uploaded files are not removed due to incorrect folder path (Reported by Stewart Heckenberg). Use File::Spec to concatenate all folder and file paths. Updated load() to better handle foreign keys with custom column definitions. Updated config() and render_as_table() to eliminate the need for cloning variables. Updated the sample templates to use the 'no_head' option. Updated the sample 'form.tt' to use form field messages. Updated POD. 0.41 14/01/2009 Fixed a bug where non-unique columns inherits validation code from matching unique columns (Reported by Stewart Heckenberg). Updated the auto-generated unique key validation code to handle columns with 'for_filter' formatting methods. 0.42 11/02/2009 Fixed a bug where copying objects with unique keys in render_as_form(). Fixed the empty HTML title in render_as_menu(). Update stringify_me() to use 'for_view' methods when available. Minor code re-factoring. 0.43 30/03/2009 Added the 'delimiter' form option to the default config for handling columns with multiple values. Simplified the default CSS. Deprecated all built-in CSS classes except for: '.menu' (for render_as_menu()), and '.block' (for
tags around undefined 'descriptions' in rendering methods when no template is used. 0.45 06/04/2009 Fixed a bug (in 0.43+) where the Cancel button becomes useless when server-side validation is failed in render_as_form() (Reported by Stewart Heckenberg). The 'Cancel' button now sets the value of a special hidden field named '[form_id]_submit_cancel' to 1 in order to bypass the generated Javascript form validation function. 0.46 30/04/2009 Added support for handling keyword searches in render_as_table() on PostgreSQL non-character based data types. Fixed render_as_table() where '0' values are ignored in column filtering and keyword searches. 0.47 01/05/2009 Fixed a bug in 0.46's render_as_table() when performing keyword searching over foreign table columns on PostgreSQL non-character based data types. 0.48 11/05/2009 Fixed URL encoding issues in querystrings and file paths. 0.49 14/05/2009 Fixed a table alias issue that affects keyword searches in render_as_table() on PostgreSQL non-character based data types. Updated POD. 0.50 15/05/2009 Fixed a foreign class name resolution issue related to keyword searches in render_as_table() for non-PostgreSQL databases.