From: Galen Charlton <gmc@equinoxinitiative.org> Date: Mon, 6 May 2019 21:41:31 +0000 (-0400) Subject: LP#1831784: fix Angular's formatting of DOB field X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=91be2d61b99f52fd4186f7d7ab606b994b49c6db;p=contrib%2FConifer.git LP#1831784: fix Angular's formatting of DOB field Otherwise, depending on the local time zone, the date displayed could be off a day. The 'dob' columns are currently the the _only_ database/IDL fields that are truly dates, not timestamps, hence the hard-coded exception. However, an alternative approach would be to define a new 'date' field type in the IDL. To test ------- [1] Construct an eg-grid (say, on the Angular sandbox page) that retrieves patron records. For users in North America, the birth dates are likely off by a day. [2] Apply the patch and repeat step 1. This time, the birth dates should display as entered. Sponsored-by: MassLNC Sponsored-by: Georgia Public Library Service Sponsored-by: Indiana State Library Sponsored-by: CW MARS Sponsored-by: King County Library System Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> --- diff --git a/Open-ILS/src/eg2/src/app/core/format.service.ts b/Open-ILS/src/eg2/src/app/core/format.service.ts index b0e8072a53..63aeec66f0 100644 --- a/Open-ILS/src/eg2/src/app/core/format.service.ts +++ b/Open-ILS/src/eg2/src/app/core/format.service.ts @@ -116,7 +116,15 @@ export class FormatService { if (params.datePlusTime) { fmt = this.dateTimeFormat || 'short'; } - return this.datePipe.transform(date, fmt); + let tz; + if (params.idlField === 'dob') { + // special case: since dob is the only date column that the + // IDL thinks of as a timestamp, the date object comes over + // as a UTC value; apply the correct timezone rather than the + // local one + tz = 'UTC'; + } + return this.datePipe.transform(date, fmt, tz); case 'money': return this.currencyPipe.transform(value);