gristlabs_grist-core/app/client/ui
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
..
AccountPage.ts (core) Migrate to SRP and add change password dialog 2022-03-16 21:35:06 -07:00
AccountWidget.ts (core) Add basic activation page to grist-ee 2022-08-23 10:30:52 -07:00
AddNewButton.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
ApiKey.ts (core) Add basic activation page to grist-ee 2022-08-23 10:30:52 -07:00
App.css (core) Cleanup removing some old unused files, fixing logo.css, and removing #grist-app. 2020-10-09 17:04:09 -04:00
App.ts (core) Fix issue with 'UNEXPECTED ORDER OF CALLBACKS' in Client.ts. 2022-06-16 23:51:14 -04:00
AppHeader.ts (core) Add basic activation page to grist-ee 2022-08-23 10:30:52 -07:00
AppUI.ts (core) Populate doc title, description and thumbnail in app.html 2022-07-27 13:57:59 -07:00
BottomBar.ts (core) Making side bars a bit more usable for narrow screen 2021-01-19 15:22:01 +01:00
buttons.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
CellContextMenu.ts (core) Adding new command Duplicate rows 2022-04-20 17:29:48 +02:00
CodeHighlight.ts (core) Update UI for formula and column label/id in the right-side panel. 2021-03-17 01:35:56 -04:00
ColumnFilterMenu.ts (core) Fix error when filtering empty choice and choice list columns 2022-07-17 23:35:27 -07:00
contextMenu.ts (core) Show default context menu on link 2022-02-18 10:09:36 +01:00
cssInput.ts (core) Speed up and upgrade build. 2022-06-27 16:10:10 -04:00
CustomSectionConfig.ts add a description property to column mapping for custom widgets (#255) 2022-08-26 08:25:34 -04:00
CustomThemes.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
DocHistory.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
DocMenu.ts (core) Polish upgrade button 2022-08-03 08:29:36 -07:00
DocMenuCss.ts (core) Polish upgrade button 2022-08-03 08:29:36 -07:00
DocTour.ts (core) Use auto popup placement for DocTour on mobile 2021-12-16 16:06:15 +02:00
DocumentSettings.ts (core) add gvisor-based sandboxing to core 2022-03-24 17:04:49 -04:00
errorPages.ts (core) Add page titles to login and error pages 2022-06-12 20:31:09 -07:00
ExampleCard.ts (core) Polish UI/UX of onboarding popups 2021-07-30 15:44:18 +02:00
ExampleInfo.ts (core) Redesign examples and templates UI 2021-07-28 12:29:03 -07:00
FieldConfig.ts (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
FieldMenus.ts (core) Initial data tables page 2022-02-10 12:46:19 +02:00
FileDialog.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
FilterBar.ts (core) Allows range filter for Date, DateTime columns 2022-06-23 13:02:37 +02:00
forms.ts (core) In Welcome questionnaire, add 'School' option, ask to enter company or school 2020-11-02 14:05:31 -05:00
googleAuth.ts (core) Extending Google Drive integration scope 2021-10-01 10:47:12 +02:00
GridOptions.ts (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
GridViewMenus.ts (core) Adding hide for multiple columns 2022-08-17 22:31:16 +02:00
HomeImports.ts (core) Adding import from google drive to the home screen 2021-08-05 20:46:11 +02:00
HomeIntro.ts (core) Editing text for viewers on empty site 2022-08-09 22:24:54 +02:00
HomeLeftPane.ts (core) Polish upgrade button 2022-08-03 08:29:36 -07:00
inputs.ts (core) Add basic activation page to grist-ee 2022-08-23 10:30:52 -07:00
LeftPanelCommon.ts (core) Show Grist video tour after welcome questions 2022-06-16 21:54:17 -07:00
MakeCopyMenu.ts (core) Speed up and upgrade build. 2022-06-27 16:10:10 -04:00
MenuToggle.ts (core) Context menu for cards. 2021-06-29 15:29:56 +02:00
modals.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
mouseDrag.ts (core) Add our very own implementation of tokenfield (aka pillbox, tag list) 2021-05-03 17:16:24 -04:00
MultiSelector.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
NotifyUI.ts (core) Add product for new personal plan 2022-07-26 11:33:23 -07:00
OnBoardingPopups.ts (core) Fix bugs when both welcomeTour and docTour are available 2022-03-22 16:51:05 -04:00
OpenUserManager.ts (core) Update design of empty docs home page, and add a "Manage Team" button. 2022-06-03 12:58:57 -04:00
OpenVideoTour.ts (core) Show Grist video tour after welcome questions 2022-06-16 21:54:17 -07:00
PagePanels.ts (core) Fix prevent auto-expansion when user is resizing browser window 2022-09-01 12:19:09 +02:00
Pages.ts (core) Update text in the delete-page dialog 2022-08-31 11:01:40 -04:00
PageWidgetPicker.ts fix(ui): add default cursor over disabled items 2022-08-24 09:47:47 +02:00
PinnedDocs.ts (core) Show Grist video tour after welcome questions 2022-06-16 21:54:17 -07:00
ProductUpgradesStub.ts (core) Removing NEW_DEAL flag 2022-08-09 17:29:28 +02:00
resizeHandle.ts Initial config with a few files that build on client and server side. 2020-05-20 00:50:46 -04:00
RightPanel.ts (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
RightPanelStyles.ts add a description property to column mapping for custom widgets (#255) 2022-08-26 08:25:34 -04:00
RowContextMenu.ts (core) Adding new command Duplicate rows 2022-04-20 17:29:48 +02:00
selectBy.ts (core) Fix summary table titles and linking when source table is hidden by ACL 2022-09-01 19:14:47 +02:00
sendToDrive.ts (core) Extending Google Drive integration scope 2021-10-01 10:47:12 +02:00
setupPage.ts (core) Broadcast doc usage updates to clients 2022-06-06 09:55:34 -07:00
shadowScroll.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
ShareMenu.ts (core) Polish Access Details 2022-05-19 09:45:26 -07:00
SiteSwitcher.ts (core) Product update popups and hosted stripe integration 2022-06-08 21:10:49 +02:00
TemplateDocs.ts (core) Redesign examples and templates UI 2021-07-28 12:29:03 -07:00
Tools.ts (core) Show summary tables on Raw Data page 2022-07-06 09:41:48 -07:00
tooltips.ts (core) Broadcast doc usage updates to clients 2022-06-06 09:55:34 -07:00
TopBar.ts (core) Update design of empty docs home page, and add a "Manage Team" button. 2022-06-03 12:58:57 -04:00
TopBarCss.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
transientInput.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
transitions.ts (core) Speed up and upgrade build. 2022-06-27 16:10:10 -04:00
TreeViewComponent.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
TreeViewComponentCss.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
TriggerFormulas.ts (core) Implementing row conditional formatting 2022-08-09 20:11:36 +02:00
UserImage.ts (core) Polish Access Details 2022-05-19 09:45:26 -07:00
UserItem.ts (core) annotate shares listed in UserManager for documents 2021-10-25 14:29:19 -04:00
UserManager.ts (core) Update design of empty docs home page, and add a "Manage Team" button. 2022-06-03 12:58:57 -04:00
ViewLayoutMenu.ts (core) Add 'Show raw data' widget menu option 2022-08-02 20:01:44 +02:00
viewport.ts (core) Make mobile the default mode. 2021-02-25 11:31:43 -05:00
ViewSectionMenu.ts (core) Initial data tables page 2022-02-10 12:46:19 +02:00
VisibleFieldsConfig.ts (core) Fix some bugs with repositioning rows. 2022-06-07 16:55:45 -04:00
WelcomePage.ts (core) Add basic activation page to grist-ee 2022-08-23 10:30:52 -07:00
WelcomeQuestions.ts (core) Show Grist video tour after welcome questions 2022-06-16 21:54:17 -07:00
welcomeTour.ts (core) Fix bugs when both welcomeTour and docTour are available 2022-03-22 16:51:05 -04:00
WidgetTitle.ts (core) Prevent raw table names from overflowing 2022-07-19 08:25:31 -07:00
widgetTypes.ts (core) move client code to core 2020-10-02 13:24:21 -04:00