Revision history for SQLite-Work
================================
0.03 Sun 04 September 2005
--------------------------
* (4 Sep 2005) removed old import script
* (3 Sep 2005) distinct
Added the 'distinct' option, which adds the DISTINCT keyword
to the selection. This is active in the sqlreport script, but haven't
added it to the CGI selection form.
* (3 Sep 2005) LIKE to GLOB
Change LIKE to GLOB in the search stuff; this means that
wildcards are now '*' and '?' not '%' and '_'. Also now case-sensitive.
Also did a quick tweak of some import stuff.
* (31 Aug 2005) import script
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
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