Adi Fairbank > CGI-Widget-DBI-Search-0.27 > Changes


Annotate this POD


Open  0
View/Report Bugs
Source   Latest Release: CGI-Widget-DBI-Search-0.30


Changes - CGI::Widget::DBI::Search change logfile


all changes without author attribution are by Adi Fairbank

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

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

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

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)

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

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

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

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

0.12 - Jan 31, 2008

Improvements to documentation

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

0.10 - May 12, 2004

initial public release

syntax highlighting: