mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
4b54c7d99b
Summary: The problem manifested while filtering by a column, closing the filter would change the set of rows visible on the table. This would happen only for rare table. What caused that problem was that the filter being edited was wrongly applyed also to another column, so depending on the content of the column, it would entail unexpected behaviour. The cause of that wrong association, was a mistakingly comparing the id of two different type of thing: column and view field. The problem would manifest if in the same section there were a view fields with same row id as the column being filtered. What made that confusion possible is the `.fieldOrColumn: ViewFieldRec|ColumnRec` property of the FileInfo object, which could hold either a view fields or a column record and was initialized with view fields or columns if view fields was not found (ie: hidden column). Solution was to make sure FieldInfo is initialized with ColumnRec alwasy (even for hidden column). I'm not sure what is the reason why FilterInfo needed to support both column record and view field record in the past, but it looks like this is not needed anymore. As a followup commit I think it would be worth the effort to refactor FileInfo to accept only ColumnRec. Test Plan: Includes new regression test Reviewers: georgegevoian Reviewed By: georgegevoian Differential Revision: https://phab.getgrist.com/D3463 |
||
---|---|---|
.. | ||
entities | ||
AppModel.ts | ||
BaseRowModel.js | ||
BillingModel.ts | ||
ClientColumnGetters.ts | ||
ColumnACIndexes.ts | ||
ColumnCache.ts | ||
ColumnFilter.ts | ||
ColumnFilterMenuModel.ts | ||
ColumnToMap.ts | ||
ConnectState.ts | ||
DataRowModel.ts | ||
DataTableModel.js | ||
DataTableModelWithDiff.ts | ||
DocData.ts | ||
DocModel.ts | ||
DocPageModel.ts | ||
errors.ts | ||
gristConfigCache.ts | ||
gristUrlState.ts | ||
HomeModel.ts | ||
MetaRowModel.js | ||
MetaTableModel.js | ||
modelUtil.js | ||
NotifyModel.ts | ||
QuerySet.ts | ||
rowset.ts | ||
rowuid.js | ||
SearchModel.ts | ||
SectionFilter.ts | ||
Styles.ts | ||
TableData.ts | ||
TableModel.js | ||
TreeModel.ts | ||
UserManagerModel.ts | ||
UserPrefs.ts | ||
WorkspaceInfo.ts |