gristlabs_grist-core/app/client/widgets
Dmitry S f024aaaf5d (core) Fix some bugs with ChoiceList in summary tables, and evaluation of lookups.
Summary:
Addresses several issues:
- Error 'Cannot modify summary group-by column' when changing Text ->
  ChoiceList in the presence of summary tables.
- Error 'ModifyColumn in unexpected position' when changing ChoiceList -> Text
  in the presence of summary tables.
- Double-evaluation of trigger formulas in some cases.

Fixes include:
- Fixed verification that summary group-by columns match the underlying ones,
  and added comments to explain.
- Avoid updating non-metadata lookups after each doc-action (early lookups
  generated extra actions to populate summary tables, causing the 'ModifyColumn
  in unexpected position' bug)
- When updating formulas, do update lookups first.
- Made a client-side tweak to avoid a JS error in case of some undos.

Solution to reduce lookups is based on https://phab.getgrist.com/D3069?vs=on&id=12445,
and tests for double-evaluation of trigger formulas are taken from there.

Add a new test case to protect against bugs caused by incorrect order of
evaluating #lookup columns.

Enhanced ChoiceList browser test to check a conversion scenario in the presence
of summary tables, previously triggering bugs.

Test Plan: Various tests added or enhanced.

Reviewers: alexmojaki

Reviewed By: alexmojaki

Subscribers: jarek

Differential Revision: https://phab.getgrist.com/D3184
2021-12-15 09:51:18 -05:00
..
AbstractWidget.js (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
AttachmentsEditor.ts (core) Use MetaTableData more 2021-12-07 17:09:58 +02:00
AttachmentsWidget.css (core) Revamp attachment editor + preview UI, and support more types, including PDFs. 2020-11-19 21:30:09 -05:00
AttachmentsWidget.ts (core) Use MetaTableData more 2021-12-07 17:09:58 +02:00
BaseEditor.js (core) Change how formula columns can be converted to data. 2021-03-05 12:42:57 -05:00
CheckBox.css (core) Making cells colors effective also in Card and Card List views 2021-02-09 15:08:44 +01:00
CheckBox.js (core) Add new color select to the app 2021-03-02 16:41:37 +01:00
CheckBoxEditor.js (core) Readonly editors 2021-06-17 19:12:16 +02:00
ChoiceEditor.js (core) Fixing bug on a fresh Choice and ChoiceList column 2021-07-21 15:44:10 +02:00
ChoiceListCell.ts (core) Barely working reference lists in frontend 2021-07-23 18:41:44 +02:00
ChoiceListEditor.ts (core) Fixing bug on a fresh Choice and ChoiceList column 2021-07-21 15:44:10 +02:00
ChoiceListEntry.ts (core) Parsing pasted ChoiceLists 2021-11-20 19:00:36 +02:00
ChoiceTextBox.ts (core) Fix some bugs with ChoiceList in summary tables, and evaluation of lookups. 2021-12-15 09:51:18 -05:00
ChoiceToken.ts (core) Enhance autocomplete and choice colors 2021-07-16 09:10:51 -07:00
CurrencyPicker.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
DateEditor.js (core) Change datepicker in DateEditor to use moment format, show AltText in DateEditor 2021-12-07 11:33:49 -05:00
DateTextBox.js (core) Formatting date time editor 2021-07-13 09:22:39 +02:00
DateTimeEditor.css (core) move client code to core 2020-10-02 13:24:21 -04:00
DateTimeEditor.js (core) Change datepicker in DateEditor to use moment format, show AltText in DateEditor 2021-12-07 11:33:49 -05:00
DateTimeTextBox.js (core) Replace time zone selector with one based on the newer autocomplete. 2021-07-23 08:02:05 -04:00
DiffBox.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
EditorButtons.ts (core) Add support for editing on mobile. 2021-02-03 23:10:51 -05:00
EditorPlacement.ts (core) Add support for editing on mobile. 2021-02-03 23:10:51 -05:00
EditorTooltip.ts (core) Add a button and a tooltip to Access Rules page item, in View-As mode. 2021-03-08 16:08:21 -05:00
ErrorDom.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
FieldBuilder.css (core) move client code to core 2020-10-02 13:24:21 -04:00
FieldBuilder.ts (core) JS error on creator panel and formula editor. 2021-11-30 14:28:22 +01:00
FieldEditor.ts (core) JS error on creator panel and formula editor. 2021-11-30 14:28:22 +01:00
FormulaEditor.ts (core) Adding traceback to trigger formulas 2021-09-27 17:12:39 +02:00
HyperLinkEditor.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
HyperLinkTextBox.ts (core) Showing links in text cells 2021-10-13 23:22:03 +02:00
NewAbstractWidget.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
NewBaseEditor.ts (core) Readonly editors 2021-06-17 19:12:16 +02:00
NTextBox.ts (core) Showing links in text cells 2021-10-13 23:22:03 +02:00
NTextEditor.ts (core) Refactor more value parsing code into common 2021-12-09 21:05:27 +02:00
NumericTextBox.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
Reference.css (core) move client code to core 2020-10-02 13:24:21 -04:00
Reference.ts (core) Polish and enable Reference List widget 2021-08-12 11:51:21 -07:00
ReferenceEditor.ts (core) Value parsing for refs, parsing data entry for numbers 2021-11-01 19:31:52 +02:00
ReferenceList.ts (core) Polish and enable Reference List widget 2021-08-12 11:51:21 -07:00
ReferenceListEditor.ts (core) Value parsing for refs, parsing data entry for numbers 2021-11-01 19:31:52 +02:00
Spinner.css (core) move client code to core 2020-10-02 13:24:21 -04:00
Spinner.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
Switch.css (core) Making cells colors effective also in Card and Card List views 2021-02-09 15:08:44 +01:00
Switch.js (core) Add new color select to the app 2021-03-02 16:41:37 +01:00
TextBox.css (core) Readonly editors 2021-06-17 19:12:16 +02:00
TextEditor.css (core) Set min-height for cells, including in Card view, to make them look consistent. 2021-11-19 17:23:03 -05:00
TextEditor.js (core) Readonly editors 2021-06-17 19:12:16 +02:00
TZAutocomplete.ts (core) Replace time zone selector with one based on the newer autocomplete. 2021-07-23 08:02:05 -04:00
UserType.js (core) Polish and enable Reference List widget 2021-08-12 11:51:21 -07:00
UserTypeImpl.js (core) Barely working reference lists in frontend 2021-07-23 18:41:44 +02:00