=head1 NAME
Changes - CGI::Widget::DBI::Search change logfile
=head1 CHANGES
all changes without author attribution are by Adi Fairbank
=over 3
=item 0.27 - Mar 14, 2013
Performance improvements by eliminating unnecessary calls to HTML-generation methods
Append oddRow or evenRow to class attribute of <tr/> elements in Display::Table class appropriately,
so alternating row style can be set in CSS stylesheet
Use proper <thead/>, <tbody/> elements in Display::Table class
Add new option -column_titles for setting the anchor tag title attribute in
-display_mode => 'table'; if not set, also now default the title to "Sort by: <col display name>"
Add new CSS skinning option -css_table_header_row_class, and rename
options -css_table_{unsortable_,}header_class to -css_table_{unsortable_,}header_cell_class
Add new options -extra_{grid,{table,_header}}_cell_attributes which support CODE or HASH ref,
and can be used to set customized, record-specific HTML attributes in the rendered table
=item 0.26 - Jun 27, 2010
Improve and add documentation, including undocumented -form_extra_vars option
Minor API refactoring:
- remove support for string version of -href_extra_vars and add new option -href_extra_vars_qs
for the (query) string version of them
- move extra_vars_for_uri() and extra_vars_for_form() methods from AbstractDisplay class into
core Search class, so it can be more easily called by external classes
- refactor display code in Display::Table class to give finer-grained overriding control; new
methods: display_row(), display_field()
Add PREREQ_PM for DBD::mysql in Makefile.PL, so hopefully cpantesters will stop complaining
=item 0.25 - Oct 26, 2009
Prevent SQL error when sortby param passed with a column not currently in select results
Add append_where_clause() and append_bind_params() methods to make the addition of
new expressions to the where clause cleaner
Fix bug and add test for missing support for -form_extra_vars in Table display
Change method syntax for logging methods: Base->log_error() and Base->warn()
Add CSS skinning options: -css_grid_class, -css_grid_cell_class, -css_table_class,
-css_table_row_class, -css_table_cell_class, -css_table_header_class, -css_table_unsortable_header_class
Add -column_align option for specifying html column alignment in table display mode
Add new optional feature (for performance when querying several tables using a join)
which allow a two-step search:
- first, perform search and store results in a temporary table, based on columns
listed in -sql_search_columns
- second, join the temporary table (which only contains -max_results_per_page rows)
to the rest of the join tables listed in -sql_join_for_dataset to retrieve the
data necessary to display the full dataset to the user
=item 0.24 - Jan 15, 2009
New method sql_column_with_tbl_alias_for_alias() which will find the column name
along with (appended to) SQL table alias, given its column alias or column name.
Improve performance of retrieval of search results from database when no
-fetchrow_closure not specified (I think), by simply calling DBI::fetchrow_hashref()
instead of custom method; remove no longer used method default_fetchrow_closure(),
since it worked exactly like DBI's fetchrow_hashref().
Add new -dry_run option to just generate the SQL that would be executed, but
not actually execute it.
New config option -form_extra_vars which behaves exactly like -href_extra_vars,
but creates hidden form fields instead of appending to links, and only in grid
display mode, for use in http POST requests
UI-only changes:
- remove -display_table_padding option, since it can be implemented better using CSS
- add class attributes to all relevant table and td html elements in search
result set for both grid and table display modes
Fix bug in AbstractDisplay when generating sort_reverse query string value
which caused search results to alternate sort direction every page; also
fix a bug in the display of the sort direction arrow in Display::Table
Add new -sortable_columns configuration option to specify only those columns
which user will be allowed to sort by
Optimize getting total query size when using -show_total_numresults with
MySQL FOUND_ROWS() function
API change: -where_clause no longer should contain 'WHERE', but a backwards
compatible change has been added so it is still supported if it does
Add paging links to grid display in -browse_mode
Fix obscure bug in Search->get_num_results() method which showed incorrect
total number of search results in special cases such as when -opt_precols_sql
equals 'DISTINCT', a common use of that
UI improvements to default grid display layout: add 1px border around cells,
and prefix each record value with its header column and a colon (:)
Better error logging: show SQL attempted if statement failed to execute
URI escape key/values in -href_extra_vars option when passed as hashref
Add -browse_mode option for use by CGI::Widget::DBI::Browse, to hide sorting
and paging features during tree navigation
In Grid display class: add popup menu on upper right to allow re-sorting
the dataset; and add page navigation links to top and bottom
Changes to base class constructor to allow passing an object of package
CGI::Widget::DBI::.* to be re-blessed as a Search widget (used by Browse)
=item 0.23 - Apr 24, 2008
Minor fixes to support use with Apache::DBI
Refactor unit testing classes for simplicity, and to support subclassing by
upcoming DBI Browse widget
Update license to Affero General Public License v3
=item 0.22 - Apr 17, 2008
API change: -columndata_closures is now only expected to return a table cell
contents, not the table cell itself (html <td/> element)
New abstract base class for display classes CGI::Widget::DBI::Search::AbstractDisplay
Add new display class CGI::Widget::DBI::Search::Display::Grid, plus unit tests
Refactor several methods in CGI::Widget::DBI::Search::Display::Table for
simplicity and to develop a better display API
Get rid of several warnings emitted by CGI::Widget::DBI::Search::Display::Table
Add unit tests for CGI::Widget::DBI::Search::Display::Table
Add prerequisite perl modules CGI and DBI in Makefile.PL, to make cpan testers happier
=item 0.21 - Apr 11, 2008
Abstract all display code into separate class CGI::Widget::DBI::Search::Display::Table
Add prerequisite perl module Test::Unit in Makefile.PL, to make cpan testers happy
=item 0.20 - Apr 9, 2008
Add a few basic unit tests, written in Test::Unit
Add default list of ORDER BY columns with -default_orderby_columns setting
Add navigation links to nearby pages in search set, customizable with
-page_range_nav_limit setting
Refactoring to clean up and reduce amount of code:
new method make_nav_uri
remove bloated, obsolete method generate_nav_links
=item 0.12 - Jan 31, 2008
Improvements to documentation
=item 0.11 - not released
Made the default -fetchrow_closure an explicit method default_fetchrow_closure()
so it can be used by subclasses.
Config option -href_extra_vars now supports HASHREF syntax.
Better documentation: eg. defaults for config options.
Refactored some code into smaller methods for better readability/maintainability.
Support reverse sorting if user clicks on current sortby column.
Bugfix: show Prev/Next links even if -show_total_numresults config option not set
=item 0.10 - May 12, 2004
initial public release
=back
=cut