gristlabs_grist-core/app/client/components
Alex Hall ecf2fdf71a (core) Fix summary table titles and linking when source table is hidden by ACL
Summary:
Two summary table widgets that share a source table and have compatible groupby columns can be filter linked. This diff fixes a bug where this linking is broken when the source table is hidden by access rules. The source table data isn't needed for the linking, but its metadata is, and that metadata is censored by GranularAccess. To deal with this:

- `LinkConfig._assertValid` allows blank `tableId`s specifically for linking two summary tables.
- `LinkingState.filterColValues` gets the `colId`s of groupby columns from the summary table columns rather than the source table.

A closely related problem is that the titles of summary tables are incomplete when the source table is hidden, e.g. they just say `[by A]` instead of `Table1 [by A]`. To fix this, the raw view sections of source tables are 'uncensored' in GranularAccess.

Initially I also planned to uncensor the tableId of the source table, which seemed like a better and more general fix for the blank tableId problem. But several parts of client code use blank tableIds to know that a table should be hidden, so they were left as is.

Test Plan: Added an nbrowser test for summary table linking, and a server test for uncensoring the raw view section in GranularAccess.

Reviewers: georgegevoian, paulfitz

Reviewed By: georgegevoian, paulfitz

Subscribers: paulfitz

Differential Revision: https://phab.getgrist.com/D3608
2022-09-01 19:14:47 +02:00
..
AceEditor.css (core) move client code to core 2020-10-02 13:24:21 -04:00
AceEditor.js (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
AceEditorCompletions.ts (core) Formula autocomplete improvements for references and lookups 2022-08-20 19:11:41 +02:00
ActionLog.css (core) move client code to core 2020-10-02 13:24:21 -04:00
ActionLog.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
Banner.ts (core) Add product for new personal plan 2022-07-26 11:33:23 -07:00
Base.js (core) move client code to core 2020-10-02 13:24:21 -04:00
BaseView2.ts (core) Copy column type and options when pasting into an empty column 2022-04-04 14:53:16 +02:00
BaseView.js (core) Showing a raw data section on a popup 2022-08-25 09:30:07 +02:00
CellPosition.ts (core) Draft cells 2021-05-25 21:14:49 +02:00
ChartView.css (core) move client code to core 2020-10-02 13:24:21 -04:00
ChartView.ts (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
ClientScope.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
Clipboard.css (core) move client code to core 2020-10-02 13:24:21 -04:00
Clipboard.js (core) Trim trailing whitespace when pasting plain text 2021-11-04 01:26:47 +02:00
CodeEditorPanel.css (core) apply access control to code view 2021-05-27 17:52:23 -04:00
CodeEditorPanel.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
ColumnFilters.css (core) Context menu for cards. 2021-06-29 15:29:56 +02:00
ColumnTransform.ts (core) Adding font options to the style picker 2022-04-07 20:35:03 +02:00
Comm.ts (core) Fix issue with 'UNEXPECTED ORDER OF CALLBACKS' in Client.ts. 2022-06-16 23:51:14 -04:00
commandList.js (core) Adding hide for multiple columns 2022-08-17 22:31:16 +02:00
commands.css (core) move client code to core 2020-10-02 13:24:21 -04:00
commands.js (core) Improve focus and keyboard shortcuts in modals. 2020-10-03 22:56:00 -04:00
CopySelection.ts (core) Copy column type and options when pasting into an empty column 2022-04-04 14:53:16 +02:00
Cursor.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
CursorMonitor.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
CustomView.css (core) Fix CustomView css to take full height of widget on all browsers including Safari 2020-10-06 13:18:50 -04:00
CustomView.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
DataTables.ts (core) Polish display of table row counts 2022-08-11 09:45:33 -07:00
DetailView.css (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
DetailView.js (core) Adding new command Duplicate rows 2022-04-20 17:29:48 +02:00
DocComm.ts (core) add an access token mechanism to help with attachments in custom widgets 2022-07-19 11:55:18 -04:00
DocConfigTab.js (core) move client code to core 2020-10-02 13:24:21 -04:00
DocumentUsage.ts (core) Polish display of table row counts 2022-08-11 09:45:33 -07:00
Drafts.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
duplicatePage.ts (core) Speed up and upgrade build. 2022-06-27 16:10:10 -04:00
EditorMonitor.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
EmbedForm.css (core) move client code to core 2020-10-02 13:24:21 -04:00
FieldConfigTab.css (core) move client code to core 2020-10-02 13:24:21 -04:00
FormulaTransform.ts (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
GridView.css (core) Disable overscroll in gridview 2022-06-13 11:28:33 -07:00
GridView.js (core) Adding hide for multiple columns 2022-08-17 22:31:16 +02:00
GristDoc.css (core) move client code to core 2020-10-02 13:24:21 -04:00
GristDoc.ts (core) Don't show doc/onboarding tour in embedded mode 2022-08-30 16:46:56 +02:00
GristWSConnection.ts (core) Fix issue with 'UNEXPECTED ORDER OF CALLBACKS' in Client.ts. 2022-06-16 23:51:14 -04:00
Importer.ts (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
Layout.css (core) Collapse inactive view sections on mobile screens. 2021-02-09 09:17:32 -05:00
Layout.js (core) Fixing bug with undoing page delation with a custom layout 2021-12-20 19:32:14 +01:00
LayoutEditor.css (core) move client code to core 2020-10-02 13:24:21 -04:00
LayoutEditor.js (core) move client code to core 2020-10-02 13:24:21 -04:00
LayoutPreview.css (core) move client code to core 2020-10-02 13:24:21 -04:00
LayoutPreview.js (core) move client code to core 2020-10-02 13:24:21 -04:00
LinkingState.ts (core) Fix summary table titles and linking when source table is hidden by ACL 2022-09-01 19:14:47 +02:00
Login.css (core) move client code to core 2020-10-02 13:24:21 -04:00
ParseOptions.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
PluginScreen.ts (core) Show proper message on empty Excel import, rather than a code error 2022-04-27 00:49:28 -04:00
Preferences.css (core) move client code to core 2020-10-02 13:24:21 -04:00
Printing.css (core) Improve printing of tables, fix printing of charts, add a browser test. 2020-10-12 16:04:18 -04:00
Printing.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
RawDataPage.ts (core) Showing a raw data section on a popup 2022-08-25 09:30:07 +02:00
RecordLayout.css (core) move client code to core 2020-10-02 13:24:21 -04:00
RecordLayout.js (core) Showing a raw data section on a popup 2022-08-25 09:30:07 +02:00
RecordLayoutEditor.js (core) move client code to core 2020-10-02 13:24:21 -04:00
RefSelect.ts (core) Reference columns weren't added to Raw Data Views 2022-07-07 17:07:13 +02:00
SearchBar.css (core) move client code to core 2020-10-02 13:24:21 -04:00
Selector.js (core) Fixing bug with first click on windows 2022-06-30 17:08:57 +02:00
TypeConversion.ts (core) Don't clear widget options when changing column type 2022-07-11 14:27:44 +02:00
TypeTransform.ts (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
UndoStack.ts (core) Change UndoStack._linkMap to store an array of action groups for each linkId 2022-01-20 19:00:01 +02:00
UnsavedChanges.ts (core) support ?embed=true and &style=light for a clean embed experience 2020-08-14 13:34:38 -04:00
ValidationPanel.css (core) move client code to core 2020-10-02 13:24:21 -04:00
ValidationPanel.js (core) move client code to core 2020-10-02 13:24:21 -04:00
viewCommon.css (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
viewCommon.js (core) Skip saving column resizes in read-only mode 2021-12-07 14:37:25 -08:00
ViewConfigTab.css (core) move client code to core 2020-10-02 13:24:21 -04:00
ViewConfigTab.js (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
ViewLayout.css (core) Raw renames 2022-04-27 22:21:55 +02:00
ViewLayout.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
ViewLinker.css (core) move client code to core 2020-10-02 13:24:21 -04:00
ViewPane.ts (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
WidgetFrame.ts (core) add an access token mechanism to help with attachments in custom widgets 2022-07-19 11:55:18 -04:00