gristlabs_grist-core/app/common
Paul Fitzpatrick 6f02987d10 (core) allow undos to be partial, if access control prohibits some part of them
Summary:
This is a somewhat experimental change, that will implement permitted parts of an undo if not all parts are permitted.  This is in preparation for trigger columns, where it may become common for a change in a record resulting in a change to an automatic change to another that the user cannot edit directly.  How to undo such an action is somewhat unclear.  One option is to undo the permitted parts, and then the triggers can rerun.

The general case is a bit of a can of worms, and feels adjacent to merging/rebasing etc.

Oh: it would probably be important in general to communicate to the user that an undo was partial, but this diff doesn't do that.  It would need some new plumbing.

Test Plan: added test

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D2839
2021-06-10 18:26:11 -04:00
..
ACLPermissions.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
ACLRuleCollection.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
ActionBundle.ts (core) discount indirect changes for access control purposes 2021-05-12 11:26:21 -04:00
ActionDispatcher.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ActionGroup.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ActionRouter.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ActionSummary.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
ActiveDocAPI.ts (core) allow undos to be partial, if access control prohibits some part of them 2021-06-10 18:26:11 -04:00
ApiError.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
arrayToString.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
AsyncCreate.ts (core) Update UI for formula and column label/id in the right-side panel. 2021-03-17 01:35:56 -04:00
AsyncFlow.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
BaseAPI.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
BasketClientAPI.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
BigInt.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
BillingAPI.ts (core) Changes to Billing to better handle error scenarios. 2020-07-22 14:40:54 -04:00
BinaryIndexedTree.js (core) move client code to core 2020-10-02 13:24:21 -04:00
BrowserSettings.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ColumnFilterFunc.ts (core) Download as CSV button on sections 2021-05-27 15:48:12 +02:00
ColumnGetters.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
csvFormat.ts (core) Add our very own implementation of tokenfield (aka pillbox, tag list) 2021-05-03 17:16:24 -04:00
declarations.d.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
delay.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DisposableWithEvents.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DocActions.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
DocData.ts (core) implement cleaner row-level access control for outgoing messages 2020-11-30 16:28:33 -05:00
DocListAPI.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
DocSnapshot.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
emails.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
EncActionBundle.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ErrorWithCode.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
Features.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
FilterState.ts (core) Download as CSV button on sections 2021-05-27 15:48:12 +02:00
Formula.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
GranularAccessClause.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
GristServerAPI.ts (core) remove metrics 2020-09-29 18:57:56 -04:00
gristTypes.ts (core) allow undos to be partial, if access control prohibits some part of them 2021-06-10 18:26:11 -04:00
gristUrls.ts (core) Fixes persistence of the aclAsUser_ parameters across navigation 2021-05-19 09:51:38 +02:00
gutil.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
InactivityTimer.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
KeyedMutex.ts (core) fix sync to s3 when doc is marked as dirty but proves to be clean 2020-11-10 08:12:31 -05:00
KeyedOps.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
LoginSessionAPI.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
LoginState.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
marshal.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
MemBuffer.js (core) move home server into core 2020-07-21 20:39:10 -04:00
NumberFormat.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
orgNameUtils.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
parseDate.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
plugin.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
PluginInstance.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
Prefs.ts (core) Show a welcome card when a user opens an example for the first time. 2020-09-09 23:08:50 -04:00
RefCountMap.ts (core) Fix an insidious bug in RefCountMap, manifesting as JS errors some time after import. 2020-11-06 09:24:56 -05:00
resetOrg.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
roles.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
RowFilterFunc.ts (core) Download as CSV button on sections 2021-05-27 15:48:12 +02:00
schema.ts (core) Implement new representation of ACL rules. 2020-11-18 08:58:03 -05:00
sharing.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
SortFunc.ts (core) Use unicode-aware comparisons for user-visible strings. 2021-03-15 09:54:10 -04:00
StringUnion.ts (core) Implement updated DocMenu UI: list/card mode and sort mode. 2020-08-19 11:31:42 -04:00
TableData.ts (core) hide long sequences of unchanged rows in diffs 2020-11-19 18:19:54 -05:00
TabularDiff.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
tbind.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
TestState.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
timeFormat.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
tpromisified.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
tsconfig.json (core) more grist-core cleanup 2020-07-23 16:21:08 -04:00
tsvFormat.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
uploads.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
urlUtils.ts (core) remove metrics 2020-09-29 18:57:56 -04:00
UserAPI.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
UserConfig.ts (core) remove metrics 2020-09-29 18:57:56 -04:00
ValueFormatter.ts (core) make ValueFormatter.format honor its return type 2020-11-12 15:19:38 -05:00