From 40f8c826a3348d9ad4c56ff90eac390543a7d3e6 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 9 Sep 2020 17:32:53 +0000 Subject: [PATCH] --- server/AyaNova/resource/rpt/ay-report.js | 48 ++++++++++++++++++++---- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/server/AyaNova/resource/rpt/ay-report.js b/server/AyaNova/resource/rpt/ay-report.js index ff58252b..e64d6133 100644 --- a/server/AyaNova/resource/rpt/ay-report.js +++ b/server/AyaNova/resource/rpt/ay-report.js @@ -38,8 +38,13 @@ function ayRegisterHelpers() { return utcDateToShortTimeLocalized(timestamp); }); - //ayDecimal - //ayCurrency + Handlebars.registerHelper("ayDecimal", function (value) { + return decimalLocalized(value); + }); + + Handlebars.registerHelper("ayCurrency", function (value) { + return currencyLocalized(value); + }); Handlebars.registerHelper("ayMarkdown", function (astring) { return marked(astring, { breaks: true }); @@ -89,8 +94,8 @@ function utcDateToShortDateAndTimeLocalized(value) { return "not valid"; } - return parsedDate.toLocaleString(AYMETA.ayClientMetaData.LanguageName, { - timeZone: AYMETA.ayClientMetaData.TimeZoneName, + return parsedDate.toLocaleString(AYMETA.ayClientMetaData.LanguageName || "en-US", { + timeZone: AYMETA.ayClientMetaData.TimeZoneName || "America/Winnipeg", dateStyle: "short", timeStyle: "short", hour12: AYMETA.ayClientMetaData.Hour12 @@ -113,8 +118,8 @@ function utcDateToShortDateLocalized(value) { return "not valid"; } - return parsedDate.toLocaleDateString(AYMETA.ayClientMetaData.LanguageName, { - timeZone: AYMETA.ayClientMetaData.TimeZoneName, + return parsedDate.toLocaleDateString(AYMETA.ayClientMetaData.LanguageName || "en-US", { + timeZone: AYMETA.ayClientMetaData.TimeZoneName || "America/Winnipeg", dateStyle: "short" }); } @@ -135,13 +140,40 @@ function utcDateToShortTimeLocalized(value) { return "not valid"; } - return parsedDate.toLocaleTimeString(AYMETA.ayClientMetaData.LanguageName, { - timeZone: AYMETA.ayClientMetaData.TimeZoneName, + return parsedDate.toLocaleTimeString(AYMETA.ayClientMetaData.LanguageName || "en-US", { + timeZone: AYMETA.ayClientMetaData.TimeZoneName || "America/Winnipeg", timeStyle: "short", hour12: AYMETA.ayClientMetaData.Hour12 }); } +/////////////////////////////////////////// +// CURRENCY LOCALIZATION +// +// +function currencyLocalized(value) { + if (!value) { + return ""; + } + return new Intl.NumberFormat( + AYMETA.ayClientMetaData.LanguageName || "en-US", + { style: 'currency', currency: AYMETA.ayClientMetaData.CurrencyName || "USD" } + ).format(value) +} + +/////////////////////////////////////////// +// DECIMAL LOCALIZATION +// +// +function decimalLocalized(value) { + if (!value) { + return ""; + } + return new Intl.NumberFormat( + AYMETA.ayClientMetaData.LanguageName || "en-US" + ).format(value) +} + ////////////////////////////////// // cache to hold translations keys //