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
ActionGroup.ts
ActionRouter.ts
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
arrayToString.ts
AsyncCreate.ts
AsyncFlow.ts
BaseAPI.ts
BasketClientAPI.ts
BigInt.ts
BillingAPI.ts
BinaryIndexedTree.js
BrowserSettings.ts
ColumnFilterFunc.ts (core) Download as CSV button on sections 2021-05-27 15:48:12 +02:00
ColumnGetters.ts
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
delay.ts
DisposableWithEvents.ts
DocActions.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
DocData.ts
DocListAPI.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
DocSnapshot.ts
emails.ts
EncActionBundle.ts
ErrorWithCode.ts
Features.ts
FilterState.ts (core) Download as CSV button on sections 2021-05-27 15:48:12 +02:00
Formula.ts
GranularAccessClause.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
GristServerAPI.ts
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
KeyedMutex.ts
KeyedOps.ts
LoginSessionAPI.ts
LoginState.ts
marshal.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
MemBuffer.js
NumberFormat.ts
orgNameUtils.ts
parseDate.ts
plugin.ts
PluginInstance.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
Prefs.ts
RefCountMap.ts
resetOrg.ts
roles.ts
RowFilterFunc.ts (core) Download as CSV button on sections 2021-05-27 15:48:12 +02:00
schema.ts
sharing.ts
SortFunc.ts
StringUnion.ts
TableData.ts
TabularDiff.ts
tbind.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
TestState.ts
timeFormat.ts
tpromisified.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
tsconfig.json
tsvFormat.ts
uploads.ts
urlUtils.ts
UserAPI.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
UserConfig.ts
ValueFormatter.ts