diff --git a/ayanova/src/api/gzapi.js b/ayanova/src/api/gzapi.js index 7f270ee9..f1ee4f2d 100644 --- a/ayanova/src/api/gzapi.js +++ b/ayanova/src/api/gzapi.js @@ -673,7 +673,7 @@ export default { UserName: window.$gz.store.state.userName, Authorization: "Bearer " + window.$gz.store.state.apiToken, //api token for using api methods as current user viewing report DownloadToken: window.$gz.store.state.downloadToken, - TimeZoneName: window.$gz.locale.getBrowserTimeZoneName(), + TimeZoneName: window.$gz.locale.getResolvedTimeZoneName(), LanguageName: window.$gz.locale.getBrowserLanguages(), Hour12: window.$gz.locale.getHour12(), CurrencyName: window.$gz.locale.getCurrencyName(), diff --git a/ayanova/src/api/initialize.js b/ayanova/src/api/initialize.js index ce2ee74d..68b3faee 100644 --- a/ayanova/src/api/initialize.js +++ b/ayanova/src/api/initialize.js @@ -771,7 +771,7 @@ async function getUserOptions() { l.timeZoneOverride = res.data.timeZoneOverride || - window.$gz.locale.getBrowserTimeZoneName() || + window.$gz.locale.getResolvedTimeZoneName() || "America/New_York"; //No browser setting for this so meh diff --git a/ayanova/src/api/locale.js b/ayanova/src/api/locale.js index f33730dd..125cc6a4 100644 --- a/ayanova/src/api/locale.js +++ b/ayanova/src/api/locale.js @@ -1,5 +1,8 @@ /* ZZeslint-disable */ //Browser Locale conversion utilities + +import { faYinYang } from "@fortawesome/free-solid-svg-icons"; + //dates,numbers currency etc export default { //////////////////////////////////////////////////////// @@ -25,8 +28,13 @@ export default { // Get users default time zone //https://www.iana.org/time-zones //https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - getBrowserTimeZoneName() { - return Intl.DateTimeFormat().resolvedOptions().timeZone; + getResolvedTimeZoneName() { + let ov = window.$gz.store.state.userOptions.timeZoneOverride; + if (!window.$gz.util.stringIsNullOrEmpty(ov)) { + return window.$gz.store.state.userOptions.timeZoneOverride; + } else { + return Intl.DateTimeFormat().resolvedOptions().timeZone; + } }, ////////////////////////////////////////////////// // Get the user's chosen currency name @@ -55,7 +63,7 @@ export default { return ""; } if (!timeZoneName) { - timeZoneName = this.getBrowserTimeZoneName(); + timeZoneName = this.getResolvedTimeZoneName(); } if (!languageName) { languageName = this.getBrowserLanguages(); @@ -88,7 +96,7 @@ export default { return ""; } if (!timeZoneName) { - timeZoneName = this.getBrowserTimeZoneName(); + timeZoneName = this.getResolvedTimeZoneName(); } if (!languageName) { languageName = this.getBrowserLanguages(); @@ -115,7 +123,7 @@ export default { return ""; } if (!timeZoneName) { - timeZoneName = this.getBrowserTimeZoneName(); + timeZoneName = this.getResolvedTimeZoneName(); } if (!languageName) { languageName = this.getBrowserLanguages(); @@ -153,7 +161,7 @@ export default { //also fr-CA does as well as possibly en-CA //https://stackoverflow.com/a/58633686/8939 if (!timeZoneName) { - timeZoneName = this.getBrowserTimeZoneName(); + timeZoneName = this.getResolvedTimeZoneName(); } return new Date(value).toLocaleTimeString("sv-SE", { timeZone: timeZoneName @@ -168,7 +176,7 @@ export default { localTimeDateStringToUTC8601String(value, timeZoneName) { //https://moment.github.io/luxon/docs/manual/zones.html#creating-datetimes-in-a-zone if (!timeZoneName) { - timeZoneName = this.getBrowserTimeZoneName(); + timeZoneName = this.getResolvedTimeZoneName(); } //parse in the time in the currently used timezone return window.$gz.DateTime.fromISO(value, { @@ -194,11 +202,31 @@ export default { // clientLocalZoneTimeStamp(timeZoneName) { if (!timeZoneName) { - timeZoneName = this.getBrowserTimeZoneName(); + timeZoneName = this.getResolvedTimeZoneName(); } - return window.$gz.DateTime.local() - .setZone(timeZoneName) - .toString(); + // let ret = window.$gz.DateTime.local() + // .setZone(timeZoneName, { keepLocalTime: true }) + // .toString(); + + let l = new Date(); + + //DateTime.fromISO("2017-05-15T09:10:23", { zone: "Europe/Paris" }); + let ret = window.$gz.DateTime.fromObject({ + zone: timeZoneName, + year: l.getFullYear(), + month: l.getMonth() + 1, + day: l.getDate(), + hour: l.getHours(), + minute: l.getMinutes(), + second: l.getSeconds(), + millisecond: l.getMilliseconds() + }); + + console.log("clientLocalZoneTimeStamp", { + zoneName: timeZoneName, + ret: ret + }); + return ret; }, /////////////////////////////////////////////// // Get default start date time in api format @@ -233,7 +261,7 @@ export default { //also fr-CA does as well as possibly en-CA //https://stackoverflow.com/a/58633686/8939 if (!timeZoneName) { - timeZoneName = this.getBrowserTimeZoneName(); + timeZoneName = this.getResolvedTimeZoneName(); } return new Date(value).toLocaleDateString("sv-SE", { timeZone: timeZoneName diff --git a/ayanova/src/components/attachment-control.vue b/ayanova/src/components/attachment-control.vue index db138592..36e534b2 100644 --- a/ayanova/src/components/attachment-control.vue +++ b/ayanova/src/components/attachment-control.vue @@ -274,7 +274,7 @@ export default { data = []; } - let timeZoneName = window.$gz.locale.getBrowserTimeZoneName(); + let timeZoneName = window.$gz.locale.getResolvedTimeZoneName(); let languageName = window.$gz.locale.getBrowserLanguages(); let hour12 = window.$gz.store.state.userOptions.hour12; let ret = []; diff --git a/ayanova/src/components/data-table.vue b/ayanova/src/components/data-table.vue index 29ca5018..8677bb4d 100644 --- a/ayanova/src/components/data-table.vue +++ b/ayanova/src/components/data-table.vue @@ -815,7 +815,7 @@ function buildRecords(listData, columndefinitions, ridColumnOpenable) { } //cache display format stuff - let timeZoneName = window.$gz.locale.getBrowserTimeZoneName(); + let timeZoneName = window.$gz.locale.getResolvedTimeZoneName(); let languageName = window.$gz.locale.getBrowserLanguages(); let hour12 = window.$gz.store.state.userOptions.hour12; let currencyName = window.$gz.store.state.userOptions.currencyName; diff --git a/ayanova/src/components/date-control.vue b/ayanova/src/components/date-control.vue index b2a21737..04129d9f 100644 --- a/ayanova/src/components/date-control.vue +++ b/ayanova/src/components/date-control.vue @@ -57,7 +57,7 @@ export default { data: () => ({ dlgdate: false, //cache display format stuff - timeZoneName: window.$gz.locale.getBrowserTimeZoneName(), + timeZoneName: window.$gz.locale.getResolvedTimeZoneName(), languageName: window.$gz.locale.getBrowserLanguages(), defaultLocale: window.$gz.locale.getBrowserFirstLanguage().split("-", 1)[0] }), diff --git a/ayanova/src/components/date-native-control.vue b/ayanova/src/components/date-native-control.vue index 892d6d31..794909cf 100644 --- a/ayanova/src/components/date-native-control.vue +++ b/ayanova/src/components/date-native-control.vue @@ -28,7 +28,7 @@ export default { data() { return { - timeZoneName: window.$gz.locale.getBrowserTimeZoneName() + timeZoneName: window.$gz.locale.getResolvedTimeZoneName() }; }, props: { diff --git a/ayanova/src/components/date-time-control.vue b/ayanova/src/components/date-time-control.vue index c431cfab..eaf66ab0 100644 --- a/ayanova/src/components/date-time-control.vue +++ b/ayanova/src/components/date-time-control.vue @@ -95,7 +95,7 @@ export default { dlgdate: false, dlgtime: false, //cache display format stuff - timeZoneName: window.$gz.locale.getBrowserTimeZoneName(), + timeZoneName: window.$gz.locale.getResolvedTimeZoneName(), languageName: window.$gz.locale.getBrowserLanguages(), hour12: window.$gz.locale.getHour12(), defaultLocale: window.$gz.locale.getBrowserFirstLanguage().split("-", 1)[0] diff --git a/ayanova/src/components/date-time-native-control.vue b/ayanova/src/components/date-time-native-control.vue index 0a25433f..9cbe6f7b 100644 --- a/ayanova/src/components/date-time-native-control.vue +++ b/ayanova/src/components/date-time-native-control.vue @@ -42,7 +42,7 @@ export default { data() { return { - timeZoneName: window.$gz.locale.getBrowserTimeZoneName() + timeZoneName: window.$gz.locale.getResolvedTimeZoneName() }; }, diff --git a/ayanova/src/components/extensions-control.vue b/ayanova/src/components/extensions-control.vue index 06c3b97e..fd94bb9a 100644 --- a/ayanova/src/components/extensions-control.vue +++ b/ayanova/src/components/extensions-control.vue @@ -64,7 +64,7 @@ export default { headers: [], errorObj: [], //cache display format stuff - timeZoneName: window.$gz.locale.getBrowserTimeZoneName(), + timeZoneName: window.$gz.locale.getResolvedTimeZoneName(), languageName: window.$gz.locale.getBrowserLanguages(), hour12: window.$gz.locale.getHour12() }), diff --git a/ayanova/src/components/time-control.vue b/ayanova/src/components/time-control.vue index ae66a405..8f015a19 100644 --- a/ayanova/src/components/time-control.vue +++ b/ayanova/src/components/time-control.vue @@ -62,7 +62,7 @@ export default { data: () => ({ dlgtime: false, //cache display format stuff - timeZoneName: window.$gz.locale.getBrowserTimeZoneName(), + timeZoneName: window.$gz.locale.getResolvedTimeZoneName(), languageName: window.$gz.locale.getBrowserLanguages(), hour12: window.$gz.locale.getHour12(), defaultLocale: window.$gz.locale.getBrowserFirstLanguage().split("-", 1)[0] diff --git a/ayanova/src/components/time-native-control.vue b/ayanova/src/components/time-native-control.vue index 1bbee48f..471be09f 100644 --- a/ayanova/src/components/time-native-control.vue +++ b/ayanova/src/components/time-native-control.vue @@ -30,7 +30,7 @@ export default { data() { return { - timeZoneName: window.$gz.locale.getBrowserTimeZoneName() + timeZoneName: window.$gz.locale.getResolvedTimeZoneName() }; }, diff --git a/ayanova/src/views/adm-user.vue b/ayanova/src/views/adm-user.vue index 62bab7bd..8a835e76 100644 --- a/ayanova/src/views/adm-user.vue +++ b/ayanova/src/views/adm-user.vue @@ -351,7 +351,7 @@ {{ $ay.t("TimeZone") }}: - {{ locale().getBrowserTimeZoneName() }} + {{ locale().getResolvedTimeZoneName() }} diff --git a/ayanova/src/views/ay-history.vue b/ayanova/src/views/ay-history.vue index 284daf6d..2c2b3cdf 100644 --- a/ayanova/src/views/ay-history.vue +++ b/ayanova/src/views/ay-history.vue @@ -292,7 +292,7 @@ export default { vm.name = res.data.name; let temp = res.data.events; let currentEventCount = vm.obj.length; - let timeZoneName = window.$gz.locale.getBrowserTimeZoneName(); + let timeZoneName = window.$gz.locale.getResolvedTimeZoneName(); let languageName = window.$gz.locale.getBrowserLanguages(); let hour12 = window.$gz.store.state.userOptions.hour12; for (let i = 0; i < temp.length; i++) { diff --git a/ayanova/src/views/ay-report-edit.vue b/ayanova/src/views/ay-report-edit.vue index bd86dbac..6f1b7583 100644 --- a/ayanova/src/views/ay-report-edit.vue +++ b/ayanova/src/views/ay-report-edit.vue @@ -914,7 +914,7 @@ Handlebars.registerHelper('loud', function (aString) { // { // UserName: vm.$store.state.userName, // Authorization: "Bearer " + window.$gz.store.state.apiToken, //api token for using api methods as current user viewing report - // TimeZoneName: window.$gz.locale.getBrowserTimeZoneName(), + // TimeZoneName: window.$gz.locale.getResolvedTimeZoneName(), // LanguageName: window.$gz.locale.getBrowserLanguages(), // Hour12: window.$gz.locale.getHour12(), // CurrencyName: window.$gz.locale.getCurrencyName(), diff --git a/ayanova/src/views/cust-customer.vue b/ayanova/src/views/cust-customer.vue index 29718c1e..14031b76 100644 --- a/ayanova/src/views/cust-customer.vue +++ b/ayanova/src/views/cust-customer.vue @@ -875,7 +875,7 @@ export default { headers: [], selected: [], availableRoles: [], - timeZoneName: window.$gz.locale.getBrowserTimeZoneName(), + timeZoneName: window.$gz.locale.getResolvedTimeZoneName(), languageName: window.$gz.locale.getBrowserLanguages(), hour12: window.$gz.locale.getHour12() }; diff --git a/ayanova/src/views/cust-head-office.vue b/ayanova/src/views/cust-head-office.vue index 34190594..84d83013 100644 --- a/ayanova/src/views/cust-head-office.vue +++ b/ayanova/src/views/cust-head-office.vue @@ -779,7 +779,7 @@ export default { headers: [], selected: [], availableRoles: [], - timeZoneName: window.$gz.locale.getBrowserTimeZoneName(), + timeZoneName: window.$gz.locale.getResolvedTimeZoneName(), languageName: window.$gz.locale.getBrowserLanguages(), hour12: window.$gz.locale.getHour12() }; diff --git a/ayanova/src/views/cust-user.vue b/ayanova/src/views/cust-user.vue index 492932bb..b4f60221 100644 --- a/ayanova/src/views/cust-user.vue +++ b/ayanova/src/views/cust-user.vue @@ -341,7 +341,7 @@