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 <div>s in render_as_table()).
        Revised the generated HTML. Rendering methods now generate complete HTML unless the 'no_head' option is in use.
        Added the 'doctype' option to the default config. Updated all sample TT templates.
        Updated render_as_form to use Javascript 'history.back()' for the 'Cancel' button in order to fix the Javascript validation issue in Safari.
        render_as_form now passes the [% form_submit %] variable to the template to utilise the custom 'Cancel' button.
        Fixed a bug in render_as_form() when updating columns using the ENUM data type in MySQL.
        Updated POD.
0.44    30/03/2009
        Removed useless <p> 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.