gristlabs_grist-core/app/common
Alex Hall 9d62e67369 (core) Fix display of formatted dates in reference columns
Summary:
Reference/referencelist columns displaying date/datetime columns didn't show the formatting of that column, formatting them as ISO instead. One weird effect of this was that opening the editor suddenly changed the format because the editor formatted the dates correctly. You can see this in the checkin doc as an example.

This was discussed in https://grist.slack.com/archives/C0234CPPXPA/p1636482208111800. Here's the main point:

> both use the visible column formatter's formatAny. the editor uses the value from the visible column, which for a date column is a raw timestamp number. the cell display uses the value from the display column which is of type Any so the value is wrapped in a list starting with 'd'. the former gets formatted according to the formatting options, but the latter just gets formatted as ISO.

Probably a good solution to the broader problem is to ensure that the display column has the same type and widget options as the visible column. That seems potentially messy, so I did something easier: fix `DateFormatter` to accept encoded date/datetime objects. It still receives the correct widget options from the visible column as before but can handle the values from the display column. This might also have other uses in the future.

Test Plan:
- Fixed several tests which previously expected the buggy behaviour.
- Converted ValueFormatter.js tests to typescript and cleaned up the existing code slightly.
- Added tests for DateFormatter and DateTimeFormatter to the ValueFormatter test suite, which only tested numbers before.

Reviewers: dsagal

Reviewed By: dsagal

Subscribers: dsagal

Differential Revision: https://phab.getgrist.com/D3190
2021-12-16 23:24:39 +02:00
..
ACLPermissions.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
ACLRuleCollection.ts (core) Use MetaTableData more 2021-12-07 17:09:58 +02:00
ActionBundle.ts (core) discount indirect changes for access control purposes 2021-05-12 11:26:21 -04:00
ActionDispatcher.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ActionGroup.ts (core) do not look at content of recent actions when loading documents 2021-09-29 11:27:02 -04:00
ActionRouter.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ActionSummary.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
ActiveDocAPI.ts (core) Adding Skip options when importing multiple tables. 2021-12-13 19:07:33 +01:00
ApiError.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
arrayToString.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
AsyncCreate.ts (core) add a python3 button 2021-09-16 10:06:04 -04:00
AsyncFlow.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
BaseAPI.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
BasketClientAPI.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
BigInt.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
BillingAPI.ts (core) Add some polish to the billing page, particularly for sign-up. 2021-11-04 14:23:53 -04:00
BinaryIndexedTree.js (core) move client code to core 2020-10-02 13:24:21 -04:00
BrowserSettings.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
ColumnFilterFunc.ts (core) Polish and enable Reference List widget 2021-08-12 11:51:21 -07:00
ColumnGetters.ts (core) Adding sort options for columns. 2021-11-03 15:31:39 +01:00
csvFormat.ts (core) Add our very own implementation of tokenfield (aka pillbox, tag list) 2021-05-03 17:16:24 -04:00
CustomWidget.ts (core) Exposing custom widgets on the UI 2021-12-01 18:21:06 +01:00
declarations.d.ts (core) Extending default locale list 2021-09-24 15:10:13 +02:00
delay.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DisposableWithEvents.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DocActions.ts (core) Add LogMethods helper and use it for more JSON data in logs. Reduce unhelpful logging. 2021-10-25 10:25:18 -04:00
DocData.ts (core) Initial webhooks implementation 2021-09-23 14:35:39 +02:00
DocListAPI.ts (core) do not look at content of recent actions when loading documents 2021-09-29 11:27:02 -04:00
DocSnapshot.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
DocumentSettings.ts (core) add a python3 button 2021-09-16 10:06:04 -04:00
emails.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
EncActionBundle.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ErrorWithCode.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
Features.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
FilterState.ts (core) Download as CSV button on sections 2021-05-27 15:48:12 +02:00
Formula.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
GranularAccessClause.ts (core) Use MetaTableData more 2021-12-07 17:09:58 +02:00
GristServerAPI.ts (core) Remove a bunch of dead code 2021-07-01 18:38:21 +02:00
gristTypes.ts (core) Use GristObjCode in CellValue 2021-10-11 14:11:32 +02:00
gristUrls.ts (core) Exposing custom widgets on the UI 2021-12-01 18:21:06 +01:00
gutil.ts (core) Extending default locale list 2021-09-24 15:10:13 +02:00
InactivityTimer.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
KeyedMutex.ts (core) fix sync to s3 when doc is marked as dirty but proves to be clean 2020-11-10 08:12:31 -05:00
KeyedOps.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
LocaleCodes.ts (core) Extending default locale list 2021-09-24 15:10:13 +02:00
Locales.ts (core) Extending default locale list 2021-09-24 15:10:13 +02:00
LoginSessionAPI.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
LoginState.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
marshal.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
MemBuffer.js (core) move home server into core 2020-07-21 20:39:10 -04:00
NumberFormat.ts (core) Adding fallback for currency symbol 2021-11-04 22:39:34 +01:00
NumberParse.ts (core) Generic number parsing functionality. 2021-10-19 23:19:13 +02:00
orgNameUtils.ts (core) Subdomain can start from a number 2021-09-01 18:16:57 +02:00
parseDate.ts (core) Change datepicker in DateEditor to use moment format, show AltText in DateEditor 2021-12-07 11:33:49 -05:00
plugin.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
PluginInstance.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
Prefs.ts (core) Enable auto triggering of Welcome Tour, and various improvements. 2021-07-30 14:17:54 -04:00
RefCountMap.ts (core) Fix an insidious bug in RefCountMap, manifesting as JS errors some time after import. 2020-11-06 09:24:56 -05:00
resetOrg.ts (core) move more tests to grist-core 2021-12-10 18:33:07 -05:00
roles.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
RowFilterFunc.ts (core) Download as CSV button on sections 2021-05-27 15:48:12 +02:00
schema.ts (core) Allow filtering hidden columns 2021-11-22 10:26:08 -08:00
ShareAnnotator.ts (core) annotate guests of other docs correctly in UserManager dialog 2021-12-09 12:57:52 -05:00
sharing.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
SortFunc.ts (core) Adding sort options for columns. 2021-11-03 15:31:39 +01:00
SortSpec.ts (core) Adding sort options for columns. 2021-11-03 15:31:39 +01:00
StringUnion.ts (core) Implement updated DocMenu UI: list/card mode and sort mode. 2020-08-19 11:31:42 -04:00
TableData.ts (core) Use MetaTableData more 2021-12-07 17:09:58 +02:00
TabularDiff.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
tbind.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
TestState.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
timeFormat.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
tpromisified.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
tsconfig.json (core) more grist-core cleanup 2020-07-23 16:21:08 -04:00
tsvFormat.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
UIRowId.ts (core) Support 'new' row in anchor links. 2021-09-24 09:01:10 -04:00
uploads.ts (core) Extending Google Drive integration scope 2021-10-01 10:47:12 +02:00
urlUtils.ts (core) remove metrics 2020-09-29 18:57:56 -04:00
UserAPI.ts (core) Exposing custom widgets on the UI 2021-12-01 18:21:06 +01:00
UserConfig.ts (core) Remove REPL code 2021-07-20 15:17:03 +02:00
ValueFormatter.ts (core) Fix display of formatted dates in reference columns 2021-12-16 23:24:39 +02:00
ValueParser.ts (core) Refactor more value parsing code into common 2021-12-09 21:05:27 +02:00