[Module]
Name=App::Office::Contacts
Changelog.Creator=Module::Metadata::Changes V 2.03
Changelog.Parser=Config::IniFiles V 2.66

[V 1.17]
Date=2011-06-15T08:15:00
Comments= <<EOT
- Patch Build.PL and Makefile.PL to reduce the version requirement of File::Copy from 2.18 to 2.14,
to make it easier for people to install without having to upgrade Perl to get the later version.
Thanx to Gabor Szabo for reporting this problem.
- No other changes.
EOT

[V 1.16]
Date=2010-11-16T15:47:00
Comments= <<EOT
- Switch from FindBin::Real to FindBin (which is in core).
- Replace /usr/bin/perl with /usr/bin/env perl.
- Replace common::sense with use strict and use warnings, to get uninit var warnings.
- Move lib/App-Office-Contacts/lib/App/Office/Contacts/.htoffice.contacts.conf to config/.
- Change default template path to /dev/shm/html/assets/templates/app/office/contacts.
- Change name of default template path from tmpl_path to template_path, as part of adopting
Text::Xslate.
- Add scripts/copy.config.pl to copy .htoffice.contacts.conf to ~/.perl/App-Office-Contacts/.
- Add missing pre-reqs to Build.PL and Makefile.PL.
- Make Build.PL and Makefile.PL run scripts/copy.config.pl.
EOT

[V 1.15]
Date=2010-09-22T10:00:00
Comments= <<EOT
- Replace sub script_name() with $self -> query -> url(-absolute => 1).
- Shift some code into a new module, App::Office::CMS::View::Search. This means a view
now hasa search.
- Chop subs generate_cookie(), generate_digest() and validate_post(). See V 1.09 below.
EOT

[V 1.14]
Date=2010-06-25T11:15:00
Comments=- Change all JSON::XS->new->encode(...) to JSON::XS->new->utf8->encode(...).

[V 1.13]
Date=2010-06-24T14:38:00
Comments= <<EOT
- Fix syntax error.
- Use 'select count(*) as count' rather than just 'select count(*)' to avoid
differences between Postgres and SQLite.
EOT

[V 1.12]
Date=2010-06-23T13:29:00
Comments= <<EOT
- Fix logic error in Create.pm.report_all_tables(). I was getting a list of
table names from a file in the distro, the same way I do when populating
tables at installation time. But, this file may not be available at run
time after installation.
- No longer ship scripts/schema.sh. I use dbigraph.pl from GraphViz::DBI,
modified to use GraphViz::DBI::General (which subclasses GraphViz::DBI).
EOT

[V 1.11]
Date=2010-06-03T17:23:00
Comments= <<EOT
- Fix typos arising after I changed the name of the module
from CGI::Office::* to App::Office::*. This patch was lost
when I replaced Debian testing with lenny on my laptop.
- Ship docs/html/contacts.faq.html, as previously documented.
EOT

[V 1.10]
Date=2010-05-19T11:11:00
Comments= <<EOT
- Update comments re starman usage in contacts.psgi.
- Chop mailing list stuff from support.
- Update version numbers in Build.PL and Makefile.PL.
- Ensure config code is only called once (App::Office::Contacts::Util::LogConfig).
EOT

[V 1.09]
Date=2010-04-20T08:38:00
Comments= <<EOT
- Comment out the processing which checks for CSRF, since I encountered
a case where it did not work.
EOT

[V 1.08]
Date=2010-04-16T08:52:00
Comments= <<EOT
- Warning: The organizations and people tables have a new column: upper_name.
This is due to a defect in SQLite, which does not allow function calls
when defining an index. Hence the index on people(upper(name) ) has to be
now written as people(upper_name). You can easily write a little program
to use alter table, and then populate the new column.
The search code uses the new column.
- Change SQLite attribute from unicode to sqlite_unicode.
- Change the default database driver from Postgres to SQLite,
to make installation easier (by not requiring DBD::Pg).
If using another database server, you'll need to edit the 2 lines
in .htoffice.contacts.conf which refer to SQLite.
- Fix Makefile.PL to use App::* not CGI::*.
My apologies for this carelessness.
- Rework cookies and POST validation, to allow Contacts, Donations and
Import::vCards to run in parallel.
EOT

[V 1.07]
Date=2010-04-07T08:51:00
Comments= <<EOT
- Update pre-reqs for Test::Pod to 1.41 to avoid Test::Pod's dithering
about a POD construct I used: L<text|scheme:...>, which makes a test fail.
See comments for V 1.40 and 1.41 at:
http://cpansearch.perl.org/src/DWHEELER/Test-Pod-1.42/Changes
- Update pre-reqs from Test::More V 0 to Test::Simple 0.94.
EOT

[V 1.06]
Date=2010-03-29T14:53:00
Comments= <<EOT
- Create indexes on organizations and people tables, using upper(name),
to speed up searching. The index names are:
- organizations: opganizations_upper_name
- people: people_upper_name.
- Add parent to pre-reqs in Build.PL and Makefile.PL.
EOT

[V 1.05]
Date=2010-03-02T09:28:00
Comments= <<EOT
- In cgiapp_prerun() protect against XSS and CSRF:
o Only accept CGI params if the request method is 'POST'.
o Ensure digest in session matches digest in cookie.
o http://www.freedom-to-tinker.com/blog/wzeller/popular-websites-vulnerable-cross-site-request-forgery-attacks
- Change 'use base' to 'use parent'.
- Remove form_action from config file. See sub script_name.
- Replace references to FCGI with Plack. This includes no longer
shipping FCGI-specific files nor patches to Apache's httpd.conf.
- Ship httpd/cgi-bin/office/contacts.psgi.
- Adopt Log::Dispatch::Configurator.
See App::Office::Contacts::Util::LogConfig.
- Replace Carp::croak with die, assuming calling code uses Try::Tiny.
- Stop using Time::Elapsed (at table create/populate time).
- Zap drop_and_create_all_tables() and run() from App::Office::Contacts::Util::Create.
- In drop.tables.pl and create.tables.pl, change the 'verbose+' option
definition to 'verbose', since the '+' doesn't make sense.
- Clean up what is real data and what is fake data.
- Rename data/email_addresses.txt => data/fake.email_addresses.txt.
- Rename data/email_people.txt => data/fake.email_people.txt.
- Rename data/people.txt => data/fake.people.txt.
- Rename data/phone_numbers.txt => data/fake.phone_numbers.txt.
- Rename data/phone_people.txt => data/fake.phone_people.txt.
- Rename data/organizations.txt => data/fake.organizations.txt.
- Add comments to .htoffice.contacts.conf, while simplifying the
discussion of the Javascript URL.
- Change the default URL of the FAQ.
- Use common::sense instead of strict and warnings.
- Add unicode to .htoffice.contacts.conf - used by SQLite - and add
corresponding code to BEGIN{} in App::Office::Contacts::Database,
in case anyone wants to use DBD::SQLite.
- Fix off-by-one error in report.js when indexing into
document.report_form.report_id.options[report - 1].text.
- Change some logging in Contacts.pm from info to debug.
EOT

[V 1.04]
Date=2010-02-21T12:54:14
Comments= <<EOT
- Remove text 'All rights reserved' (for Debian licensing).
- Remove POD heads 'Required Modules' and 'Changes'.
- Replace personal doc root with /var/www.
- Use namespace::autoclean with Moose.
EOT

[V 1.03]
Date=2010-02-05T17:27:00
Comments= <<EOT
- Remove personal use lib from CGI scripts.
- Use smarter check for calendar div in Contacts.build_head_init,
so cursor appears in search name box upon startup.
EOT

[V 1.02]
Date=2010-01-29T09:52:00
Comments= <<EOT
- Change namespace from CGI::Office::* to App::Office::* after discussion with Matt Trout.
- Add config item css_url.
- Tell Module::Build to install .htoffice.contacts.conf.
EOT

[V 1.01]
Date=2010-01-07T15:39:00
Comments=- Add MANIFEST and MYMETA.yml

[V 1.00]
Date=2009-12-31T10:48:00
Comments= <<EOT
- Rename from Local::Contacts.
- Remove Apache-specific code.
- Split into N controllers, using CGI::Application::Dispatch.
- Split into separate distros:
o App::Office::Contacts
o App::Office::Contacts::Donations
o App::Office::Contacts::Export::StickyLabels
o App::Office::Contacts::Import::vCards
o App::Office::Contacts::Sites
EOT

[V 0.99]
Date=2008-03-06T11:30:45
Comments=- Original version.
