(core) Remove the aclUI=1 flag and add 'BETA' tag to the Access Rules page name.

Summary:
- Remove support for aclUI=1 URL parameter, making it the default.
- Add 'BETA' tag to the Access Rules link in side panel.
- Remove all mentions of aclUI=1 in tests.

Test Plan: Updated tests should pass

Reviewers: paulfitz

Reviewed By: paulfitz

Differential Revision: https://phab.getgrist.com/D2766
This commit is contained in:
Dmitry S 2021-03-25 15:17:25 -04:00
parent 9d1bc5a518
commit 8c2bea0f73
5 changed files with 33 additions and 35 deletions

View File

@ -105,8 +105,8 @@ export const cssPageEntry = styled('div', `
}
&-disabled, &-disabled:hover, &-disabled.weasel-popup-open {
background-color: initial;
color: ${colors.mediumGrey};
--icon-color: ${colors.mediumGrey};
color: ${colors.darkGrey};
--icon-color: ${colors.darkGrey};
}
.${cssTools.className}-collapsed > & {
margin-right: 0;

View File

@ -8,13 +8,13 @@ import { hoverTooltip, tooltipCloseButton } from 'app/client/ui/tooltips';
import { colors } from 'app/client/ui2018/cssVars';
import { icon } from 'app/client/ui2018/icons';
import { cssLink } from 'app/client/ui2018/links';
import { menuAnnotate } from 'app/client/ui2018/menus';
import { userOverrideParams } from 'app/common/gristUrls';
import { Disposable, dom, makeTestId, Observable, observable, styled } from "grainjs";
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 canViewAccessRules = observable(false);
@ -28,22 +28,22 @@ export function tools(owner: Disposable, gristDoc: GristDoc, leftPanelOpen: Obse
cssTools.cls('-collapsed', (use) => !use(leftPanelOpen)),
cssSectionHeader("TOOLS"),
(aclUIEnabled ?
cssPageEntry(
cssPageEntry.cls('-selected', (use) => use(gristDoc.activeViewId) === 'acl'),
cssPageEntry.cls('-disabled', (use) => !use(canViewAccessRules)),
dom.domComputed(canViewAccessRules, (_canViewAccessRules) => {
return cssPageLink(
cssPageIcon('EyeShow'),
cssLinkText('Access Rules'),
cssLinkText('Access Rules',
menuAnnotate('Beta', cssBetaTag.cls(''))
),
_canViewAccessRules ? urlState().setLinkUrl({docPage: 'acl'}) : null,
isOverridden ? addRevertViewAsUI() : null,
);
}),
testId('access-rules'),
) :
null
),
cssPageEntry(
cssPageLink(cssPageIcon('Log'), cssLinkText('Document History'), testId('log'),
dom.on('click', () => gristDoc.showTool('docHistory')))
@ -159,3 +159,9 @@ const cssRevertViewAsButton = styled(cssExampleCardOpener, `
background-color: ${colors.slate};
}
`);
const cssBetaTag = styled('div', `
.${cssPageEntry.className}-disabled & {
opacity: 0.4;
}
`);

View File

@ -55,8 +55,6 @@ async function getModel(options: IUserManagerOptions): Promise<UserManagerModelI
export function showUserManagerModal(userApi: UserAPI, options: IUserManagerOptions) {
const modelObs: Observable<UserManagerModel|null> = observable(null);
const aclUIEnabled = Boolean(urlState().state.get().params?.aclUI);
async function onConfirm(ctl: IModalControl) {
const model = modelObs.get();
if (model) {
@ -107,7 +105,6 @@ export function showUserManagerModal(userApi: UserAPI, options: IUserManagerOpti
dom.on('click', () => ctl.close()),
testId('um-cancel')
),
(aclUIEnabled ?
cssAccessLink({href: urlState().makeUrl({docPage: 'acl'})},
dom.text(use => (use(modelObs) && use(use(modelObs)!.isAnythingChanged)) ? 'Save & ' : ''),
'Open Access Rules',
@ -115,7 +112,6 @@ export function showUserManagerModal(userApi: UserAPI, options: IUserManagerOpti
ev.preventDefault();
return onConfirm(ctl).then(() => urlState().pushUrl({docPage: 'acl'}));
}),
) : null
),
testId('um-buttons'),
)

View File

@ -255,8 +255,8 @@ export function menuItemCmd(cmd: Command, label: string, ...args: DomElementArg[
);
}
export function menuAnnotate(text: string) {
return cssAnnotateMenuItem('Beta');
export function menuAnnotate(text: string, ...args: DomElementArg[]) {
return cssAnnotateMenuItem(text, ...args);
}
export const menuDivider = styled(weasel.cssMenuDivider, `

View File

@ -65,7 +65,6 @@ export interface IGristUrlState {
embed?: boolean;
style?: InterfaceStyle;
compare?: string;
aclUI?: boolean;
linkParameters?: Record<string, string>; // Parameters to pass as 'user.Link' in granular ACLs.
// Encoded in URL as query params with extra '_' suffix.
};
@ -265,9 +264,6 @@ export function decodeUrl(gristConfig: Partial<GristLoadConfig>, location: Locat
if (sp.has('compare')) {
state.params!.compare = sp.get('compare')!;
}
if (sp.has('aclUI')) {
state.params!.aclUI = isAffirmative(sp.get('aclUI'));
}
for (const [k, v] of sp.entries()) {
if (k.endsWith('_')) {
if (!state.params!.linkParameters) { state.params!.linkParameters = {}; }