Revision history for SQLite-Work
================================

0.0202 Mon 29 August 2005
-------------------------

  * (29 Aug 2005) manifest bug
  	Left out some files from the MANIFEST, oops

0.0201 Mon 29 August 2005
-------------------------

  * (29 Aug 2005) fix bug with editing
  	An oops moment; forgot to integrate the template stuff
  for make_edit_table in SQLite::Work::CGI.

0.02 Mon 29 August 2005
-----------------------

  * (25 Aug 2005) mail
  	Added SQLite::Work::Mail and sqlw_mail to send templated mail
  sourced from the database.  This does NOT use a Perl mail module,
  but a selection of a couple of external programs, because I wanted
  to be able to use mutt for the mail.

  * (25 Aug 2005) restructure
  	Moved out some common things (making selections, constructing
  "nice" column names) into separate methods.

  * (17 Aug 2005) new total option
  	Added a --total option to sqlreport; it prints out the
  total number of matching rows and exits.

  * (17 Aug 2005) tweak
  	fine-tuning template stuff

  * (17 Aug 2005) split out the template stuff into separate module

  * (16 Aug 2005) renamed the module

  * (16 Aug 2005) tweak for edit
  	Now only shows tables rather than views in edit.cgi

  * (16 Aug 2005) prev-next links for multi-page reports

  * (16 Aug 2005) some tweaks
  	- made the WHERE stuff use NULL for nulls
  	- better quoting for edit stuff

0.01 Tue 16 August 2005
-----------------------

  * (16 Aug 2005) actually documented stuff

  * (14 Aug 2005) fixed bug with sort-reversed

  * (14 Aug 2005) even more stuff
  	- month format
  	- nth format
  	- check if a page would produce no output in multi-page

  * (14 Aug 2005) more improvements
  	- groups option: enable a group of values to be clustered with
  a header, and be printed only when it is (but not as part of the header)
  	- headers (and groups) as files, similar to how the report_template
  and the row_template can be either a string or a file
  	- page: added a '_page' value which can be used in templates
  which is the current page number (useful for headers in multi-page reports)

  * (13 Aug 2005) tweaking index
  	Some improvements to the index-page for split reports.

  * (13 Aug 2005) input field vary
  	Now enable one to define the type of input field for editing
  (well, it enables textarea and text anyway).

  * (13 Aug 2005) alpha-split
  	Now can also split by a given column with just the first (few letters)
  of the value, instead of the whole value.

  * (13 Aug 2005) split by column
  	New method do_split_report, and new option 'split_col'
  to make multi-page reports split by the value of the given column.

  * (13 Aug 2005) added 'namedalpha' to convert_value

  * (13 Aug 2005) revamp of layout/style options
  	Got rid of 'bulk' and 'section_style' options, because they names
  were too confusing.  Replaced them with 'report_style' and 'layout',
  and added fine-tune params 'table_border' and 'truncate_colnames'.

  * (12 Aug 2005) multi-page reports
  	The --all_pages option to sqlreport generates all matching pages
  (if the limit is not zero and a real outfile is given)
  	The --title option enables one to give one's own title for the pages.

  * (12 Aug 2005) duh! added tests to MANIFEST

  * (12 Aug 2005) bix fixes and tests
  	Yes, some big huge tests!  (Well with a largish database)
  Also a few tweaks/fixes to a few things, like title formatting.
  Also added a Delete_Row button to the edit CGI (in addition
  to the original Delete-from-the-single-row-page button).

  * (12 Aug 2005) default format
  	Added a default_format, a format-defintion by table+column
  which is used as the format when using a generated row_template.

  * (11 Aug 2005) fieldval section_style
  	Added a 'fieldval' section style, which is similar to the 'none'
  style for the row_template-generated-in-the-absence-of-a-passed-in
  row_template, except that, rather than have just the values one per
  line, it has Field:Value (where "Field" is the column name).

  * (11 Aug 2005) nicecols tweak

  * (11 Aug 2005) tweaking the bulk stuff
  	Fixed a bug or so with the CGI, and made more difference
  between 'compact' and 'large'.

  * (11 Aug 2005) non-HTML reports with bulkiness
  	Added a 'none' section_style which gives no section formatting
  at all, and a default row_template of each value on a line alone.
  	Added a 'bulk' option which is basically how compact or verbose
  the given report will be. This replaces the 'verbose', 'hide_thead'
  and 'short_colnames' options; there are three levels of 'bulk':
  small, compact and large.  Large gives tables with full table headers,
  and the query and "m rows out of n" bits at the start and end of
  the report. The 'compact' option is the same, but it gives short
  column names.  The 'small' option gives table with no border,
  and no extra bits.
  	Therefore, one can make a non-HTML report with --bulk small
  and --section_style none plus replacing the --report_template
  so that it just contains "<!--sqlr_contents-->".

  * (11 Aug 2005) template formatting
  	Tried out Text::FillIn and Text::Template and found that
  rolling my own, very simpler, templating made for quicker processing.
  	Took a leaf out of other formatters; formatting directives
  are part of the column-value id.
  	Instead of using the full power of HTML::TextToHTML, this does
  extremely simple HTML formatting.  We shall see if it breaks, later.

  * (10 Aug 2005) more row-template stuff
  	Extended the conditional so that it can (a) check any col and
  (b) include more than one col-value.  This is probably even slower.
  	Also allowed that the row-template could be a file.

  * (10 Aug 2005) more row-template stuff
  	Made a make_row_template method.

  * (10 Aug 2005) get_total_matching
  	Extracted out the get-the-total stuff from do_report and made
  it a separate method (in anticipation of multi-page report generation)

  * (10 Aug 2005) templating with conditionals, part 1
  	Now the template stuff is more sophisticated (though not as
  sophisticated as Text::FillIn) as follows:
  	- {$colname} gives the value of that column in the current row
  	- {? stuff [$colname] more stuff} gives "stuff VALUE more stuff"
  if the column has a value VALUE
  	- {? stuff [$colname] more stuff!!otherstuff} gives as above
  if the column has a value, or "otherstuff" if it doesn't (useful for giving
  &nbsp; in table section_style).
  	Note that these are not recursive, and doesn't give escapes
  for the {} characters, so you just can't use them.  As I said, it's
  not that sophisticated.
  	This is probably going to be slower than before.

  * (10 Aug 2005) varied display, part 1
  	Added table/para/row "section_style" and simple row templates.
  The CGI stuff just uses the default row-template.

  * (8 Aug 2005) efficiency tweaks

  * (8 Aug 2005) removed Text::Template use
  	Removed the dependency on Text::Template; realized this
  didn't need something that high-powered.  Now this just does simple
  substitution.

  * (8 Aug 2005) more on the header stuff

  * (8 Aug 2005) sqlreport checking existance of some params

  * (8 Aug 2005) detect header fields from header templates

  * (8 Aug 2005) some fixes with update/add values

  * (7 Aug 2005) customizable headers
  	Rather than the headers being limited to just one field,
  now they can be customized with multiple fields and any other stuff
  you want, by providing a template for each header.
  	The downside is that you have to provide a template for
  each header, instead of headers being automatic.  But I figure that
  if you already know what you're sorting by, you already know what
  you want in your headers.  And it's a lot less clunky than the old
  GenRepAr way of doing headers.  One has just split it into two:
  first say what fields are in the header, then provide a separate
  header template.

  * (7 Aug 2005) initial checkin