(core) Enhancements to the Public Access UI.

Summary:
- Show a 'Copy Link' button in UserManager.
- Add icons for Copy (to copy link), and also for Video (to open video
  tutorials in later onboarding changes)
- Add to UserManager a 'Public Access' member-like line for greater visibility
  and to allow changing role.
- In main document page, add a "public access" icon.
- On saving UserManager, re-fetch DocInfo to update "public access" icon.

Test Plan: TBD

Reviewers: paulfitz

Reviewed By: paulfitz

Differential Revision: https://phab.getgrist.com/D2617
This commit is contained in:
Dmitry S 2020-09-23 16:59:40 -04:00
parent b33641dd0c
commit a15187362c
2 changed files with 182 additions and 3 deletions

View File

@ -44,6 +44,9 @@ export function docUrl(doc: Document): IGristUrlState {
// Returns the home page for the current org.
export function getMainOrgUrl(): string { return urlState().makeUrl({}); }
// When on a document URL, returns the URL with just the doc ID, omitting other bits (like page).
export function getCurrentDocUrl(): string { return urlState().makeUrl({docPage: undefined}); }
// Get url for the login page, which will then redirect to nextUrl (current page by default).
export function getLoginUrl(nextUrl: string = _getCurrentUrl()): string {
return _getLoginLogoutUrl('login', nextUrl);

View File

@ -1,3 +1,179 @@
// tslint:disable:max-line-length
export type IconName = "ChartArea" | "ChartBar" | "ChartKaplan" | "ChartLine" | "ChartPie" | "TypeCard" | "TypeCardList" | "TypeCell" | "TypeChart" | "TypeCustom" | "TypeDetails" | "TypeTable" | "FieldAny" | "FieldAttachment" | "FieldCheckbox" | "FieldChoice" | "FieldColumn" | "FieldDate" | "FieldDateTime" | "FieldFunction" | "FieldFunctionEqual" | "FieldInteger" | "FieldLink" | "FieldNumeric" | "FieldReference" | "FieldSpinner" | "FieldSwitcher" | "FieldTable" | "FieldText" | "FieldTextbox" | "FieldToggle" | "GristLogo" | "ThumbPreview" | "CenterAlign" | "Code" | "Collapse" | "Convert" | "CrossBig" | "CrossSmall" | "Dots" | "Download" | "DragDrop" | "Dropdown" | "DropdownUp" | "Expand" | "EyeHide" | "EyeShow" | "Feedback" | "Filter" | "FilterSimple" | "Folder" | "FunctionResult" | "Help" | "Home" | "Idea" | "Import" | "LeftAlign" | "Log" | "Mail" | "Minus" | "NewNotification" | "Notification" | "Offline" | "Page" | "PanelLeft" | "PanelRight" | "PinBig" | "PinSmall" | "Pivot" | "Plus" | "Public" | "PublicFilled" | "Redo" | "Remove" | "Repl" | "ResizePanel" | "RightAlign" | "Search" | "Settings" | "Share" | "Sort" | "Tick" | "Undo" | "Validation" | "Widget" | "Wrap" | "Zoom";
export const IconList: IconName[] = ["ChartArea", "ChartBar", "ChartKaplan", "ChartLine", "ChartPie", "TypeCard", "TypeCardList", "TypeCell", "TypeChart", "TypeCustom", "TypeDetails", "TypeTable", "FieldAny", "FieldAttachment", "FieldCheckbox", "FieldChoice", "FieldColumn", "FieldDate", "FieldDateTime", "FieldFunction", "FieldFunctionEqual", "FieldInteger", "FieldLink", "FieldNumeric", "FieldReference", "FieldSpinner", "FieldSwitcher", "FieldTable", "FieldText", "FieldTextbox", "FieldToggle", "GristLogo", "ThumbPreview", "CenterAlign", "Code", "Collapse", "Convert", "CrossBig", "CrossSmall", "Dots", "Download", "DragDrop", "Dropdown", "DropdownUp", "Expand", "EyeHide", "EyeShow", "Feedback", "Filter", "FilterSimple", "Folder", "FunctionResult", "Help", "Home", "Idea", "Import", "LeftAlign", "Log", "Mail", "Minus", "NewNotification", "Notification", "Offline", "Page", "PanelLeft", "PanelRight", "PinBig", "PinSmall", "Pivot", "Plus", "Public", "PublicFilled", "Redo", "Remove", "Repl", "ResizePanel", "RightAlign", "Search", "Settings", "Share", "Sort", "Tick", "Undo", "Validation", "Widget", "Wrap", "Zoom"];
export type IconName = "ChartArea" |
"ChartBar" |
"ChartKaplan" |
"ChartLine" |
"ChartPie" |
"TypeCard" |
"TypeCardList" |
"TypeCell" |
"TypeChart" |
"TypeCustom" |
"TypeDetails" |
"TypeTable" |
"FieldAny" |
"FieldAttachment" |
"FieldCheckbox" |
"FieldChoice" |
"FieldColumn" |
"FieldDate" |
"FieldDateTime" |
"FieldFunction" |
"FieldFunctionEqual" |
"FieldInteger" |
"FieldLink" |
"FieldNumeric" |
"FieldReference" |
"FieldSpinner" |
"FieldSwitcher" |
"FieldTable" |
"FieldText" |
"FieldTextbox" |
"FieldToggle" |
"GristLogo" |
"ThumbPreview" |
"CenterAlign" |
"Code" |
"Collapse" |
"Convert" |
"Copy" |
"CrossBig" |
"CrossSmall" |
"Dots" |
"Download" |
"DragDrop" |
"Dropdown" |
"DropdownUp" |
"Expand" |
"EyeHide" |
"EyeShow" |
"Feedback" |
"Filter" |
"FilterSimple" |
"Folder" |
"FunctionResult" |
"Help" |
"Home" |
"Idea" |
"Import" |
"LeftAlign" |
"Log" |
"Mail" |
"Minus" |
"NewNotification" |
"Notification" |
"Offline" |
"Page" |
"PanelLeft" |
"PanelRight" |
"PinBig" |
"PinSmall" |
"Pivot" |
"Plus" |
"Public" |
"PublicFilled" |
"Redo" |
"Remove" |
"Repl" |
"ResizePanel" |
"RightAlign" |
"Search" |
"Settings" |
"Share" |
"Sort" |
"Tick" |
"Undo" |
"Validation" |
"Video" |
"Widget" |
"Wrap" |
"Zoom";
export const IconList: IconName[] = ["ChartArea",
"ChartBar",
"ChartKaplan",
"ChartLine",
"ChartPie",
"TypeCard",
"TypeCardList",
"TypeCell",
"TypeChart",
"TypeCustom",
"TypeDetails",
"TypeTable",
"FieldAny",
"FieldAttachment",
"FieldCheckbox",
"FieldChoice",
"FieldColumn",
"FieldDate",
"FieldDateTime",
"FieldFunction",
"FieldFunctionEqual",
"FieldInteger",
"FieldLink",
"FieldNumeric",
"FieldReference",
"FieldSpinner",
"FieldSwitcher",
"FieldTable",
"FieldText",
"FieldTextbox",
"FieldToggle",
"GristLogo",
"ThumbPreview",
"CenterAlign",
"Code",
"Collapse",
"Convert",
"Copy",
"CrossBig",
"CrossSmall",
"Dots",
"Download",
"DragDrop",
"Dropdown",
"DropdownUp",
"Expand",
"EyeHide",
"EyeShow",
"Feedback",
"Filter",
"FilterSimple",
"Folder",
"FunctionResult",
"Help",
"Home",
"Idea",
"Import",
"LeftAlign",
"Log",
"Mail",
"Minus",
"NewNotification",
"Notification",
"Offline",
"Page",
"PanelLeft",
"PanelRight",
"PinBig",
"PinSmall",
"Pivot",
"Plus",
"Public",
"PublicFilled",
"Redo",
"Remove",
"Repl",
"ResizePanel",
"RightAlign",
"Search",
"Settings",
"Share",
"Sort",
"Tick",
"Undo",
"Validation",
"Video",
"Widget",
"Wrap",
"Zoom"];