(core) freshen "view as user" behavior

Summary:
Now as the user an owner might choose to view their document as
is likely to not have access to rules, it is better to start
viewing on the default document page rather than /p/acl.

The "Access Rules" link is grayed out when in "view as" mode for
now (improvements are planned).

Test Plan: updated test

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D2743
This commit is contained in:
Paul Fitzpatrick
2021-03-02 16:11:37 -05:00
parent 937214d927
commit c37a04c578
5 changed files with 39 additions and 24 deletions

View File

@@ -13,6 +13,8 @@ const testId = makeTestId('test-tools-');
export function tools(owner: Disposable, gristDoc: GristDoc, leftPanelOpen: Observable<boolean>): Element {
const aclUIEnabled = Boolean(urlState().state.get().params?.aclUI);
const isOwner = gristDoc.docPageModel.currentDoc.get()?.access === 'owners';
const isOverridden = Boolean(gristDoc.docPageModel.userOverride.get());
const canUseAccessRules = isOwner && !isOverridden;
return cssTools(
cssTools.cls('-collapsed', (use) => !use(leftPanelOpen)),
cssSectionHeader("TOOLS"),
@@ -20,10 +22,10 @@ export function tools(owner: Disposable, gristDoc: GristDoc, leftPanelOpen: Obse
(aclUIEnabled ?
cssPageEntry(
cssPageEntry.cls('-selected', (use) => use(gristDoc.activeViewId) === 'acl'),
cssPageEntry.cls('-disabled', !isOwner),
(isOwner ? cssPageLink : cssPageDisabledLink)(cssPageIcon('EyeShow'),
cssPageEntry.cls('-disabled', !canUseAccessRules),
(canUseAccessRules ? cssPageLink : cssPageDisabledLink)(cssPageIcon('EyeShow'),
cssLinkText('Access Rules'),
isOwner ? urlState().setLinkUrl({docPage: 'acl'}) : null
canUseAccessRules ? urlState().setLinkUrl({docPage: 'acl'}) : null
),
testId('access-rules'),
) :