LP#1485374: Use client TZ in the database when supplied to the server
authorMike Rylander <mrylander@gmail.com>
Mon, 3 Aug 2015 17:27:56 +0000 (13:27 -0400)
committerJason Stephenson <jason@sigio.com>
Sun, 11 Sep 2016 14:12:25 +0000 (10:12 -0400)
commit6f5b854d963675102c0f4f4fa9258fe01004247d
tree5515acdff39de84563268d9b259ec2b33fb38461
parent8284edcdd3de5392b4265f3ee2e806dda761cdc1
LP#1485374: Use client TZ in the database when supplied to the server

In LP#1485371 we teach OpenSRF how to discover and pass the client timezone
to the server.  Now we can use that information to temporarily put the server
into that timezone, including database sessions, so that dates and times
are calculated and reported based on the timezone of the client.

To do that we:

 * Teach CStore and friends to use the client-supplied time zone
 * Teach Storage to use $ENV{TZ} for the db timezone inside transactions,
   and by default except for search-y methods
 * Teach the TPAC to set the client TZ at login

This requires javascript to be enabled in the TPAC, and investigates the
client timezone at patron login time.  No times are displayed in TPAC
interfaces before the patron logs in, so there is no point in detecting
the timezone before this point.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Conflicts:
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm

Signed-off-by: Jason Stephenson <jason@sigio.com>
Open-ILS/src/c-apps/oils_sql.c
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage.pm
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/storage.pm
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/metabib.pm
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
Open-ILS/src/templates/opac/parts/js.tt2
Open-ILS/src/templates/opac/parts/login/form.tt2