From a384b929277bbc50721409d6abcdb6e60e48b40e Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 24 Sep 2021 00:13:36 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 333 +++++++++++++++++++++++++++- ayanova/src/api/locale.js | 47 +++- ayanova/src/views/home-schedule.vue | 25 +++ 3 files changed, 395 insertions(+), 10 deletions(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 26f0a7a9..ac79bf32 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -21,6 +21,321 @@ 3698 - hide unassigned tech slot (or case 3697 above would take care of that too) + + + + +iPad error: + + +Name: +Test testerson + +Company: +GZ TestCo Inc. + +Database Id: +Mr8K4dgpDir722i9HLKhCYZ6r4WAweM9N7CQG4L9594= + +Message: +AyaNova App +Version: 8.0.0-alpha.131 +User: Theresa Christiansen - Tech +12h: true +Override browser time zone: America/Vancouver +Override browser language code: en-CA +Currency code (ISO 4217): USD +Browser +platform: MacIntel +userAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Safari/605.1.15 +languages: [ "en-CA" ] +tz: America/Vancouver +oscpu: +maxTouchPoints: 5 +webdriver: false +vendor: Apple Computer, Inc. +availWidth: 768 +availHeight: 1024 +width: 768 +height: 1024 +devicePixelRatio: 2 +pixelDepth: 32 +Server +Server address: http://192.168.1.56:7575/api/v8.0/ +Version: AyaNova server 8.0.0-alpha.131 +Schema version: 1 +Server time: 2021-09-23 2:31 PM +Override browser time zone: Pacific Standard Time +License +Licensed to: GZ TestCo Inc. +Database ID: Mr8K4dgpDir722i9HLKhCYZ6r4WAweM9N7CQG4L9594= +License serial number: 1632408933 +License expiration date: 2021-10-23T14:55:33.7129704Z +Support and updates expiration date: 2021-10-23T14:55:33.7129704Z +Licensed options +Accounting +ServiceMode +ServiceTechs: 1000 +TrialMode + +CLIENT LOG +1592933475310|##### New version detected ##### cleared form settings cache ( -> 8.0.0-alpha.6) +1592933475463|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1595354141568|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1599088629760|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1599088633630|##### New version detected ##### cleared form settings cache (8.0.0-alpha.6 -> 8.0.0-alpha.10) +1599088633766|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1599088644529|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1599088644604|auth::processLogin -> User 1 logged in +1599088644604|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1599088713858|auth::processLogout -> User logged out +1624057130392|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1624057135269|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1624057135318|auth::processLogin -> User 1 logged in +1624057135319|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1624057271576|auth::processLogout -> User logged out +1624060747161|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1624060752120|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1624060754068|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1624060754122|auth::processLogin -> User 1 logged in +1624060754123|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1632426279289|auth::processLogout -> User logged out +1632426290692|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1632426290741|auth::processLogin -> User 10 logged in +1632426290741|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1632426302055|Vue error: +Error - Name:Error, Message:NaN is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored. +info: render +STACK: + Y@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:45:50695 +W@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:101988 +parseEvent@[native code] +map@[native code] +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31780 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:33478 +getScopedSlots@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:108311 +getScopedSlots@[native code] +render@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:126624 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:23866 +i@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:27910 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31524 +Kn@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:29731 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12775 +ue@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12166 +promiseReactionJob@[native code] +1632426302057|notify-error: Vue error: +Error - Name:Error, Message:NaN is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored. +info: render +STACK: + Y@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:45:50695 +W@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:101988 +parseEvent@[native code] +map@[native code] +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31780 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:33478 +getScopedSlots@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:108311 +getScopedSlots@[native code] +render@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:126624 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:23866 +i@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:27910 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31524 +Kn@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:29731 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12775 +ue@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12166 +promiseReactionJob@[native code] +1632426319813|App::Mounted - preset path presented: /home-schedule +1632426320393|Vue error: +Error - Name:Error, Message:NaN is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored. +info: render +STACK: + Y@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:45:50695 +W@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:101988 +parseEvent@[native code] +map@[native code] +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31780 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:33478 +getScopedSlots@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:108311 +getScopedSlots@[native code] +render@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:126624 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:23866 +i@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:27910 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31524 +Kn@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:29731 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12775 +ue@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12166 +promiseReactionJob@[native code] +1632426320394|notify-error: Vue error: +Error - Name:Error, Message:NaN is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored. +info: render +STACK: + Y@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:45:50695 +W@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:101988 +parseEvent@[native code] +map@[native code] +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31780 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:33478 +getScopedSlots@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:108311 +getScopedSlots@[native code] +render@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:126624 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:23866 +i@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:27910 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31524 +Kn@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:29731 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12775 +ue@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12166 +promiseReactionJob@[native code] +1632426333532|Vue error: +Error - Name:Error, Message:NaN is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored. +info: render +STACK: + Y@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:45:50695 +W@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:101988 +parseEvent@[native code] +map@[native code] +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31780 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:33478 +getScopedSlots@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:108311 +getScopedSlots@[native code] +render@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:126624 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:23866 +i@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:27910 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31524 +Kn@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:29731 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12775 +ue@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12166 +promiseReactionJob@[native code] +1632426333532|notify-error: Vue error: +Error - Name:Error, Message:NaN is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored. +info: render +STACK: + Y@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:45:50695 +W@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:101988 +parseEvent@[native code] +map@[native code] +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31780 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:33478 +getScopedSlots@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:108311 +getScopedSlots@[native code] +render@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:126624 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:23866 +i@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:27910 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31524 +Kn@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:29731 +http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12775 +ue@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12166 +promiseReactionJob@[native code] +1632432624067|App::Mounted - preset path presented: /about +1632432642216|App::Mounted - preset path presented: /about +1632432647725|auth::processLogout -> User logged out +1632432653007|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1632432660143|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1632432660193|auth::processLogin -> User 10 logged in +1632432660194|gzapi::APIUrl -> setting to: http://192.168.1.56:7575/api/v8.0/ +1632432668970|Vue error: +Error - Name:Error, Message:NaN is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored. +info: render +STACK: + Y@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:45:50695 +W@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:101988 +parseEvent@[native code] +map@[native code] +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31780 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:33478 +getScopedSlots@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:108311 +getScopedSlots@[native code] +render@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:126624 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:23866 +i@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:27910 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31524 +Kn@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:29731 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12775 +ue@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12166 +promiseReactionJob@[native code] +1632432668972|notify-error: Vue error: +Error - Name:Error, Message:NaN is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored. +info: render +STACK: + Y@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:45:50695 +W@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:101988 +parseEvent@[native code] +map@[native code] +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31780 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:33478 +getScopedSlots@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:108311 +getScopedSlots@[native code] +render@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:126624 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:23866 +i@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:27910 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31524 +Kn@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:29731 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12775 +ue@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12166 +promiseReactionJob@[native code] +1632432678709|Vue error: +Error - Name:Error, Message:NaN is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored. +info: render +STACK: + Y@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:45:50695 +W@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:101988 +parseEvent@[native code] +map@[native code] +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31780 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:33478 +getScopedSlots@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:108311 +getScopedSlots@[native code] +render@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:126624 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:23866 +i@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:27910 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31524 +Kn@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:29731 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12775 +ue@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12166 +promiseReactionJob@[native code] +1632432678710|notify-error: Vue error: +Error - Name:Error, Message:NaN is not a valid timestamp. It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored. +info: render +STACK: + Y@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:45:50695 +W@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:101988 +parseEvent@[native code] +map@[native code] +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31780 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:33478 +getScopedSlots@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:108311 +getScopedSlots@[native code] +render@http://192.168.1.56:7575/js/ay-common.05538e3e.js:1:126624 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:23866 +i@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:27910 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:30792 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:31524 +Kn@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:29731 +@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12775 +ue@http://192.168.1.56:7575/js/chunk-vendors.d24d09fe.js:7:12166 +promiseReactionJob@[native code] + + + + + //.......... Data Table filter, now impossible to remove a filter because save is blanked out, maybe needs a clear button that does it all? Delete should trigger save too I guess so maybe save should expose on change, not on presence of filter @@ -95,6 +410,22 @@ Coded by importance - 1 BUG BUG: attempt to delete a customer with a linked unit (so it can't be deleted) and get error properly but overlay stays on form whatever this is needs to be fixed everywhere +- 1 potential serious bug need to test to confirm it's ok: + Test input and display when forced time zone to alternate: + Good test time zones: + America/St_Johns - because it has a fractional hour difference + America/New_York + America/Los_Angeles + + In particular also, need to confirm DST boundary still works as expected even when in alternate time zone + Also confirm when not overriding time zone the DST boundary thing + +- 1 If the client has not overriden their browser time zone then there is really no need to go through the hoops to convert it + i.e. it should all just work without any conversion, wouldn't that be faster?? + +- 1 Reminder form dates don't have start before end rule applied?? +- 1 reminder list default template has stop before start left to right backwards + - 1 Help->About tech support should not show for a customer login -2 hyperlinks in memos sb clickable to open in new tab or window or whatever @@ -105,7 +436,7 @@ todo:2 notifications screen add delete all menu item that will just remove all t Maybe a checkbox and delete selected and select all?? That way can also be a dual useful feature also should delete *from* the client so that it deletes only what it has in view so user doesn't accidentally delete unseen yet to be delivered ones? todo: 2 About page should show license and other expiration dates in local format, right now it's a UTC iso string :( - + todo:2 need to track fetched keys vs used keys so can tell if fetched a key that I don't need or stopped using due to code change todo:2 PO (workorder already done) strip all *viz fields from object before sending over the wire from client to server diff --git a/ayanova/src/api/locale.js b/ayanova/src/api/locale.js index 95246c10..a70d87de 100644 --- a/ayanova/src/api/locale.js +++ b/ayanova/src/api/locale.js @@ -76,9 +76,9 @@ export default { return window.$gz.store.state.userOptions.hour12; }, - /////////////////////////////////////////// - // Turn a utc date into a vueitfy calendar - // schedule control compatible format + ///////////////////////////////////////////////////////////////////// + // Turn a utc ISO date from server into a vuetify calendar + // schedule control compatible (epoch) format // localized. // For ease of use in schedule the epoch (milliseconds) is the best format // "It must be a Date, number of seconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored."" @@ -94,12 +94,40 @@ export default { return null; } - return new Date( - //sv-SE is iso-8601 format so cleanest to parse accurately - new Date(value).toLocaleString("sv-SE", { - timeZone: timeZoneName - }) - ).getTime(); + //Not sure what all the parsing was about below, but + //if it comes from teh server in iso standard format and ends in '...z' for zulu / utc time + //then not sure what the parsing is needed for as this would output the same epoch value as that's independant of anything + //I'm thinking I meant to adjust to a new epoch value by offset so need to test this with a forced alternate time zone + return new Date(value).getTime(); + + // //convert to locale timezone and output in the closest thing to iso-8601 format + // let tmp = new Date(value).toLocaleString("sv-SE", { + // timeZone: timeZoneName + // }); + // tmp = tmp.replace(" ", "T"); + // let ret = new Date( + // tmp + // //sv-SE is iso-8601 format so cleanest to parse accurately + // //bugbug: potential bug here, sv-sE not working on iPad?? + // //this always seemed sketchy, how to replace with something + // //less flakey?? + // // new Date(value).toLocaleString("sv-SE", { + // // timeZone: timeZoneName + // // }) + // ).getTime(); + + // window.$gz.store.commit( + // "logItem", + // `utcDateToScheduleCompatibleFormatLocalized:${JSON.stringify({ + // value: value, + // timeZoneName: timeZoneName, + // tmp: tmp, + // ret: ret, + // newTest: newtest + // })}` + // ); + + // return ret; }, /////////////////////////////////////////////// // Convert a local schedule epoch timestamp @@ -294,6 +322,7 @@ export default { /////////////////////////////////////////////// // Convert a local time only string with date string // to UTC and output as ISO 8601 + // also converts to time zone specified if diff from browser // (used by time and date picker components) // localTimeDateStringToUTC8601String(value, timeZoneName) { diff --git a/ayanova/src/views/home-schedule.vue b/ayanova/src/views/home-schedule.vue index 7a6fc6aa..3eb09b97 100644 --- a/ayanova/src/views/home-schedule.vue +++ b/ayanova/src/views/home-schedule.vue @@ -421,6 +421,23 @@ TODO NEXT: +bugbug? If I set new york time zone in ayanova, then in schedule the appointments made previously in vancovuer time zone don't seem to move. + if I make a new appointment in the schedule by dragging like 6pm then open a reminder to fill it, it shows as 9pm + so the calendar is still in browser local time, not overridden + This works properly when I can make an appointment in sched set to newyork time at 3pm and then flip to vancovuer time and it's 12:00noon and vice versa + it should show in the sched at correct local time and create at correct local time. + Notes: date/time pickers don't have time zone settings, so whatever I did there I need to do here + For *DISPLAY* need to convert UTC to local iso8601 using locale.utcDateStringToLocal8601DateOnlyString + For return back to actual server value it emits using this code: + let ret = window.$gz.locale.localTimeDateStringToUTC8601String( + theDate + "T" + theTime, + vm.timeZoneName + ); + + So the issue is that the controls will *always* use / expect the time to be local to the browser ignoring the forced conversion + so we need to present the UTC time to the control as a local time that works for HERE but in fact is then converted by the difference of the forced time zone when saving + + If I'm in New York and I book for 4pm it should show 1pm to a user in Vancouver zone TESTING: Test here locally and check for layout issues while doing it on all devices @@ -920,6 +937,10 @@ export default { nativeEvent.stopPropagation(); }, async fetchEvents({ start, end }) { + window.$gz.store.commit( + "logItem", + `fetchEvents:${JSON.stringify({ start: start.date, end: end.date })}` + ); // console.log("FetchEvents:", { start: start.date, end: end.date }); try { window.$gz.form.deleteAllErrorBoxErrors(this); @@ -944,6 +965,10 @@ export default { this.formState.serverError = res.error; window.$gz.form.setErrorBoxErrors(this); } else { + // window.$gz.store.commit( + // "logItem", + // `fetchEvents::MAPPING, res.data is: ${JSON.stringify(res.data)}` + // ); this.events = res.data.map(x => { return { ...x,