gristlabs_grist-core/app/client/models
Janet Vorobyeva 29f07a8a4f
Bidirectional Linking (#622)
Allows bidirectional / cyclic linking for same-record cursor links.
This should allow multiple sections to all synchronize their cursors,
such that clicking in any one of them will move all the others.

Works even if some sections in the cycle have rows filtered out (the 
filtered-out sections might desync their cursors, but the correct cursor
position will still propagate downstream, and they'll re-sync if clicking on
a row that is present in them)

Under the hood, each cursor has a _lastEditedAt counter, updated when
a user's action changes the cursor in a section, such that we can always
tell which section was touched most recently. This is used to resolve
conflicts stably when dealing with cycles or chains of cursor-links.

Updated selectBy and recursiveMoveToCursorPos to handle cycles

Updated tests for selectBy behavior

However, main bidirectional-linking tests are not in this commit, they'll come in a subsequent PR
2023-09-25 18:48:18 -04:00
..
entities Bidirectional Linking (#622) 2023-09-25 18:48:18 -04:00
AppModel.ts (core) Polish dark mode and remove beta tag 2023-09-21 13:14:48 -04:00
BaseRowModel.js (core) Update ACL resources/rules when tables/columns get renamed 2021-01-04 22:03:01 -05:00
ClientColumnGetters.ts (core) Filter rows based on linked widgets when exporting view 2023-07-26 21:49:52 +02:00
ColumnACIndexes.ts Rename text cleaning function to "normalizeText" 2022-08-17 19:11:52 +02:00
ColumnCache.ts (core) Show count of formula errors in the column config in the right-side panel. 2021-04-20 21:26:17 -04:00
ColumnFilter.ts (core) Fix date filter for DateTime columns. 2023-01-18 10:18:15 +01:00
ColumnFilterMenuModel.ts (core) Add behavioral and coaching call popups 2022-12-20 09:49:41 -05:00
ColumnToMap.ts (core) Multiple types in columns mapping 2023-09-13 14:41:31 +02:00
ConnectState.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
DataRowModel.ts (core) When a checkbox is clicked on a new record, set default values determined by linking 2022-11-10 14:34:40 -05:00
DataTableModel.js (core) move client code to core 2020-10-02 13:24:21 -04:00
DataTableModelWithDiff.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
DocData.ts (core) forward more kinds of edits to a virtual table 2023-06-26 12:05:34 -04:00
DocModel.ts (core) Cursor in custom widgets 2023-08-29 09:19:52 +02:00
DocPageModel.ts (core) updates from grist-core 2023-09-11 10:00:39 -04:00
errors.ts (core) Billing for formula assistant 2023-07-10 13:24:08 +02:00
features.ts (core) custom widget appear as build-in widget 2023-08-30 09:44:25 +02:00
gristConfigCache.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
gristUrlState.ts (core) Add support for auto-copying docs on signup 2023-09-06 15:12:08 -04:00
HomeModel.ts (core) Tweak navbar, breadcrumbs, and sign-in buttons 2023-07-26 22:26:55 -07:00
MetaRowModel.js (core) move client code to core 2020-10-02 13:24:21 -04:00
MetaTableModel.js (core) Raw renames 2022-04-27 22:21:55 +02:00
modelUtil.js (core) move client code to core 2020-10-02 13:24:21 -04:00
NotifyModel.ts (core) deleting queue from single webhook 2023-07-18 11:46:10 +02:00
QuerySet.ts (core) Cursor in custom widgets 2023-08-29 09:19:52 +02:00
rowset.ts (core) Cursor in custom widgets 2023-08-29 09:19:52 +02:00
rowuid.js (core) move client code to core 2020-10-02 13:24:21 -04:00
RuleOwner.ts (core) Improve highlighting of previewed formula 2023-07-20 14:34:22 -04:00
SearchModel.ts (core) Cursor in custom widgets 2023-08-29 09:19:52 +02:00
SectionFilter.ts (core) Cursor in custom widgets 2023-08-29 09:19:52 +02:00
Styles.ts Header colored (#581) 2023-08-07 11:01:35 -07:00
TableData.ts (core) Use MetaTableData more 2021-12-07 17:09:58 +02:00
TableModel.js (core) Change how formula columns can be converted to data. 2021-03-05 12:42:57 -05:00
TelemetryModel.ts (core) Add Support Grist page and nudge 2023-07-04 17:36:59 -04:00
TreeModel.ts (core) Revealing hidden pages with visible children. 2022-10-31 14:02:38 +01:00
UserManagerModel.ts (core) User language switcher 2023-01-26 09:47:14 +01:00
UserPrefs.ts (core) Improve dark mode 2023-04-12 01:58:48 -04:00
ViewFieldConfig.ts Header colored (#581) 2023-08-07 11:01:35 -07:00
VirtualTable.ts (core) Adds a UI panel for managing webhooks 2023-05-08 18:25:27 -04:00
WorkspaceInfo.ts (core) move client code to core 2020-10-02 13:24:21 -04:00