aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoranika-ahluwalia <anika.ahluwalia@gmail.com>2020-07-29 23:11:35 -0500
committeranika-ahluwalia <anika.ahluwalia@gmail.com>2020-07-29 23:11:35 -0500
commit4224ebd13aec9e01f1fe73c935c40adb089dbc69 (patch)
treeac7a1e57754001f8a28a96e4f1ce8be02c594e47 /src
parentb10f96c6a8b3187707b6d7356e7b0fea9b8b6e72 (diff)
sally UI changes
Diffstat (limited to 'src')
-rw-r--r--src/client/views/ContextMenuItem.tsx4
-rw-r--r--src/client/views/DocumentDecorations.tsx4
-rw-r--r--src/client/views/MainView.scss9
-rw-r--r--src/client/views/MainView.tsx251
-rw-r--r--src/client/views/PropertiesButtons.tsx25
-rw-r--r--src/client/views/collections/CollectionSchemaView.tsx2
-rw-r--r--src/client/views/collections/CollectionView.tsx2
-rw-r--r--src/client/views/collections/SchemaTable.tsx6
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx8
-rw-r--r--src/client/views/linking/LinkMenuItem.tsx1
-rw-r--r--src/client/views/nodes/DocumentView.tsx17
11 files changed, 189 insertions, 140 deletions
diff --git a/src/client/views/ContextMenuItem.tsx b/src/client/views/ContextMenuItem.tsx
index 81432968d..7e233ec04 100644
--- a/src/client/views/ContextMenuItem.tsx
+++ b/src/client/views/ContextMenuItem.tsx
@@ -80,7 +80,7 @@ export class ContextMenuItem extends React.Component<ContextMenuProps & { select
render() {
if ("event" in this.props) {
return (
- <div className={"contextMenu-item" + (this.props.selected ? " contextMenu-itemSelected" : "")} onClick={this.handleEvent}>
+ <div className={"contextMenu-item" + (this.props.selected ? " contextMenu-itemSelected" : "")} onPointerDown={this.handleEvent}>
{this.props.icon ? (
<span className="icon-background">
<FontAwesomeIcon icon={this.props.icon} size="sm" />
@@ -95,7 +95,7 @@ export class ContextMenuItem extends React.Component<ContextMenuProps & { select
const where = !this.overItem ? "" : this._overPosY < window.innerHeight / 3 ? "flex-start" : this._overPosY > window.innerHeight * 2 / 3 ? "flex-end" : "center";
const marginTop = !this.overItem ? "" : this._overPosY < window.innerHeight / 3 ? "20px" : this._overPosY > window.innerHeight * 2 / 3 ? "-20px" : "";
const submenu = !this.overItem ? (null) :
- <div className="contextMenu-subMenu-cont" style={{ marginLeft: "25%", left: "0px", marginTop }}>
+ <div className="contextMenu-subMenu-cont" style={{ marginLeft: "90%", left: "0px", marginTop }}>
{this._items.map(prop => <ContextMenuItem {...prop} key={prop.description} closeMenu={this.props.closeMenu} />)}
</div>;
if (!("noexpand" in this.props)) {
diff --git a/src/client/views/DocumentDecorations.tsx b/src/client/views/DocumentDecorations.tsx
index ff91e401f..85dd40173 100644
--- a/src/client/views/DocumentDecorations.tsx
+++ b/src/client/views/DocumentDecorations.tsx
@@ -577,9 +577,9 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
</div>}
</> :
<>
- {minimal ? (null) : <Tooltip title={<><div className="dash-tooltip">Show context menu</div></>} placement="top"><div className="documentDecorations-contextMenu" key="menu" onPointerDown={this.onSettingsDown}>
+ {/* {minimal ? (null) : <Tooltip title={<><div className="dash-tooltip">Show context menu</div></>} placement="top"><div className="documentDecorations-contextMenu" key="menu" onPointerDown={this.onSettingsDown}>
<FontAwesomeIcon size="lg" icon="bars" />
- </div></Tooltip>}
+ </div></Tooltip>} */}
<div className="documentDecorations-title" key="title" onPointerDown={this.onTitleDown} >
<span style={{ width: "100%", display: "inline-block", cursor: "move" }}>{`${this.selectionTitle}`}</span>
</div>
diff --git a/src/client/views/MainView.scss b/src/client/views/MainView.scss
index 8bf38ebe9..fe01c27a3 100644
--- a/src/client/views/MainView.scss
+++ b/src/client/views/MainView.scss
@@ -314,6 +314,15 @@
display: flex;
flex-direction: column;
z-index: 2;
+
+ .mainView-libraryFlyout-close {
+ right: 6;
+ top: 5;
+ position: absolute;
+ margin-right: 6px;
+ z-index: 10;
+ margin-bottom: 10;
+ }
}
.mainView-expandFlyoutButton {
diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx
index 5f7f7ca03..326082927 100644
--- a/src/client/views/MainView.tsx
+++ b/src/client/views/MainView.tsx
@@ -63,6 +63,8 @@ import { SelectionManager } from '../util/SelectionManager';
import { PrefetchProxy } from '../../fields/Proxy';
import { DragManager } from '../util/DragManager';
import { discovery_v1, dialogflow_v2beta1 } from 'googleapis';
+import { undo } from 'prosemirror-history';
+import { undoBatch } from '../util/UndoManager';
@observer
export class MainView extends React.Component {
@@ -426,12 +428,18 @@ export class MainView extends React.Component {
//sidebarScreenToLocal = () => new Transform(0, (RichTextMenu.Instance.Pinned ? -35 : 0) + (CollectionMenu.Instance.Pinned ? -35 : 0), 1);
mainContainerXf = () => this.sidebarScreenToLocal().translate(0, -this._buttonBarHeight);
+ @computed get closePosition() { return 55 + this.flyoutWidth }
@computed get flyout() {
if (!(this.sidebarContent instanceof Doc)) {
return (null);
}
return <div className="mainView-libraryFlyout">
<div className="mainView-contentArea" style={{ position: "relative", height: `100%`, width: "100%", overflow: "visible" }}>
+ {this.flyoutWidth > 0 ? <div className="mainView-libraryFlyout-close"
+ onPointerDown={this.closeFlyout}>
+ <FontAwesomeIcon icon="times" color="black" size="sm" />
+ </div> : null}
+
<DocumentView
Document={this.sidebarContent}
DataDoc={undefined}
@@ -463,130 +471,129 @@ export class MainView extends React.Component {
{this.docButtons}</div>;
}
- @computed get menuPanel() {
-
- return <div className="mainView-menuPanel">
- <DocumentView
- Document={Doc.UserDoc().menuStack as Doc}
- DataDoc={undefined}
- LibraryPath={emptyPath}
- addDocument={undefined}
- addDocTab={this.addDocTabFunc}
- pinToPres={emptyFunction}
- NativeHeight={returnZero}
- NativeWidth={returnZero}
- rootSelected={returnTrue}
- removeDocument={returnFalse}
- onClick={undefined}
- ScreenToLocalTransform={this.mainContainerXf}
- ContentScaling={returnOne}
- PanelWidth={() => 80}
- PanelHeight={this.getContentsHeight}
- renderDepth={0}
- focus={emptyFunction}
- backgroundColor={this.defaultBackgroundColors}
- parentActive={returnTrue}
- whenActiveChanged={emptyFunction}
- bringToFront={emptyFunction}
- docFilters={returnEmptyFilter}
- ContainingCollectionView={undefined}
- ContainingCollectionDoc={undefined}
- relative={true}
- scriptContext={this}
- />
- </div>;
- }
-
// @computed get menuPanel() {
+
// return <div className="mainView-menuPanel">
- // <div className="mainView-menuPanel-button" style={{ backgroundColor: this.panelContent === "workspace" ? "lightgrey" : "" }}>
- // <div className="mainView-menuPanel-button-wrap"
- // style={{ backgroundColor: this.panelContent === "workspace" ? "lightgrey" : "" }}
- // onPointerDown={e => this.selectPanel("workspace")}>
- // <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="desktop"
- // color={this.panelContent === "workspace" ? "black" : "white"} size="lg" />
- // <div className="mainView-menuPanel-button-label"
- // style={{ color: this.panelContent === "workspace" ? "black" : "white" }}> Workspace </div>
- // </div>
- // </div>
-
- // <div className="mainView-menuPanel-button" style={{ backgroundColor: this.panelContent === "catalog" ? "lightgrey" : "" }}>
- // <div className="mainView-menuPanel-button-wrap"
- // style={{ backgroundColor: this.panelContent === "catalog" ? "lightgrey" : "" }}
- // onPointerDown={e => this.selectPanel("catalog")}>
- // <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="file"
- // color={this.panelContent === "catalog" ? "black" : "white"} size="lg" />
- // <div className="mainView-menuPanel-button-label"
- // style={{ color: this.panelContent === "catalog" ? "black" : "white" }}> Catalog </div>
- // </div>
- // </div>
-
- // <div className="mainView-menuPanel-button" style={{ backgroundColor: this.panelContent === "deleted" ? "lightgrey" : "" }}>
- // <div className="mainView-menuPanel-button-wrap"
- // style={{ backgroundColor: this.panelContent === "deleted" ? "lightgrey" : "" }}
- // onPointerDown={e => this.selectPanel("deleted")}>
- // <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="archive"
- // color={this.panelContent === "deleted" ? "black" : "white"} size="lg" />
- // <div className="mainView-menuPanel-button-label"
- // style={{ color: this.panelContent === "deleted" ? "black" : "white" }}> Recently Used </div>
- // </div>
- // </div>
-
- // <div className="mainView-menuPanel-button">
- // <div className="mainView-menuPanel-button-wrap"
- // onPointerDown={e => this.selectPanel("upload")}>
- // <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="upload" color="white" size="lg" />
- // <div className="mainView-menuPanel-button-label"> Import </div>
- // </div>
- // </div>
-
- // <div className="mainView-menuPanel-button">
- // <div className="mainView-menuPanel-button-wrap"
- // //onPointerDown={e => this.selectPanel("sharing")}
- // onClick={() => GroupManager.Instance.open()}>
- // <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="users" color="white" size="lg" />
- // <div className="mainView-menuPanel-button-label"> Sharing </div>
- // </div>
- // </div>
-
- // <div className="mainView-menuPanel-button" style={{ marginBottom: "110px", backgroundColor: this.panelContent === "tools" ? "lightgrey" : "", }}>
- // <div className="mainView-menuPanel-button-wrap"
- // onPointerDown={e => this.selectPanel("tools")}
- // style={{
- // backgroundColor: this.panelContent === "tools" ? "lightgrey" : "",
- // }}>
- // <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="wrench"
- // color={this.panelContent === "tools" ? "black" : "white"} size="lg" />
- // <div className="mainView-menuPanel-button-label"
- // style={{ color: this.panelContent === "tools" ? "black" : "white" }}> Tools </div>
- // </div>
- // </div>
-
- // <div className="mainView-menuPanel-button">
- // <div className="mainView-menuPanel-button-wrap"
- // // style={{backgroundColor: this.panelContent= "help" ? "lightgrey" : "black"}}
- // onPointerDown={e => this.selectPanel("help")} >
- // <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="question-circle" color="white" size="lg" />
- // <div className="mainView-menuPanel-button-label"> Help </div>
- // </div>
- // </div>
-
- // <div className="mainView-menuPanel-button">
- // <div className="mainView-menuPanel-button-wrap"
- // // onPointerDown={e => this.selectPanel("settings")}
- // onClick={() => SettingsManager.Instance.open()}>
- // <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="cog" color="white" size="lg" />
- // <div className="mainView-menuPanel-button-label"> Settings </div>
- // </div>
- // </div>
+ // <DocumentView
+ // Document={Doc.UserDoc().menuStack as Doc}
+ // DataDoc={undefined}
+ // LibraryPath={emptyPath}
+ // addDocument={undefined}
+ // addDocTab={this.addDocTabFunc}
+ // pinToPres={emptyFunction}
+ // NativeHeight={returnZero}
+ // NativeWidth={returnZero}
+ // rootSelected={returnTrue}
+ // removeDocument={returnFalse}
+ // onClick={undefined}
+ // ScreenToLocalTransform={this.mainContainerXf}
+ // ContentScaling={returnOne}
+ // PanelWidth={() => 80}
+ // PanelHeight={this.getContentsHeight}
+ // renderDepth={0}
+ // focus={emptyFunction}
+ // backgroundColor={this.defaultBackgroundColors}
+ // parentActive={returnTrue}
+ // whenActiveChanged={emptyFunction}
+ // bringToFront={emptyFunction}
+ // docFilters={returnEmptyFilter}
+ // ContainingCollectionView={undefined}
+ // ContainingCollectionDoc={undefined}
+ // relative={true}
+ // scriptContext={this}
+ // />
// </div>;
// }
- @action
+ @computed get menuPanel() {
+ return <div className="mainView-menuPanel">
+ <div className="mainView-menuPanel-button" style={{ backgroundColor: this.panelContent === "workspace" ? "lightgrey" : "" }}>
+ <div className="mainView-menuPanel-button-wrap"
+ style={{ backgroundColor: this.panelContent === "workspace" ? "lightgrey" : "" }}
+ onPointerDown={e => this.selectPanel("workspace")}>
+ <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="desktop"
+ color={this.panelContent === "workspace" ? "black" : "white"} size="lg" />
+ <div className="mainView-menuPanel-button-label"
+ style={{ color: this.panelContent === "workspace" ? "black" : "white" }}> Workspace </div>
+ </div>
+ </div>
+
+ <div className="mainView-menuPanel-button" style={{ backgroundColor: this.panelContent === "catalog" ? "lightgrey" : "" }}>
+ <div className="mainView-menuPanel-button-wrap"
+ style={{ backgroundColor: this.panelContent === "catalog" ? "lightgrey" : "" }}
+ onPointerDown={e => this.selectPanel("catalog")}>
+ <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="file"
+ color={this.panelContent === "catalog" ? "black" : "white"} size="lg" />
+ <div className="mainView-menuPanel-button-label"
+ style={{ color: this.panelContent === "catalog" ? "black" : "white" }}> Catalog </div>
+ </div>
+ </div>
+
+ <div className="mainView-menuPanel-button" style={{ backgroundColor: this.panelContent === "deleted" ? "lightgrey" : "" }}>
+ <div className="mainView-menuPanel-button-wrap"
+ style={{ backgroundColor: this.panelContent === "deleted" ? "lightgrey" : "" }}
+ onPointerDown={e => this.selectPanel("deleted")}>
+ <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="archive"
+ color={this.panelContent === "deleted" ? "black" : "white"} size="lg" />
+ <div className="mainView-menuPanel-button-label"
+ style={{ color: this.panelContent === "deleted" ? "black" : "white" }}> Recently Used </div>
+ </div>
+ </div>
+
+ <div className="mainView-menuPanel-button">
+ <div className="mainView-menuPanel-button-wrap"
+ onPointerDown={e => this.selectPanel("upload")}>
+ <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="upload" color="white" size="lg" />
+ <div className="mainView-menuPanel-button-label"> Import </div>
+ </div>
+ </div>
+
+ <div className="mainView-menuPanel-button">
+ <div className="mainView-menuPanel-button-wrap"
+ //onPointerDown={e => this.selectPanel("sharing")}
+ onClick={() => GroupManager.Instance.open()}>
+ <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="users" color="white" size="lg" />
+ <div className="mainView-menuPanel-button-label"> Sharing </div>
+ </div>
+ </div>
+
+ <div className="mainView-menuPanel-button" style={{ marginBottom: "110px", backgroundColor: this.panelContent === "tools" ? "lightgrey" : "", }}>
+ <div className="mainView-menuPanel-button-wrap"
+ onPointerDown={e => this.selectPanel("tools")}
+ style={{
+ backgroundColor: this.panelContent === "tools" ? "lightgrey" : "",
+ }}>
+ <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="wrench"
+ color={this.panelContent === "tools" ? "black" : "white"} size="lg" />
+ <div className="mainView-menuPanel-button-label"
+ style={{ color: this.panelContent === "tools" ? "black" : "white" }}> Tools </div>
+ </div>
+ </div>
+
+ <div className="mainView-menuPanel-button">
+ <div className="mainView-menuPanel-button-wrap"
+ // style={{backgroundColor: this.panelContent= "help" ? "lightgrey" : "black"}}
+ onPointerDown={e => this.selectPanel("help")} >
+ <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="question-circle" color="white" size="lg" />
+ <div className="mainView-menuPanel-button-label"> Help </div>
+ </div>
+ </div>
+
+ <div className="mainView-menuPanel-button">
+ <div className="mainView-menuPanel-button-wrap"
+ // onPointerDown={e => this.selectPanel("settings")}
+ onClick={() => SettingsManager.Instance.open()}>
+ <FontAwesomeIcon className="mainView-menuPanel-button-icon" icon="cog" color="white" size="lg" />
+ <div className="mainView-menuPanel-button-label"> Settings </div>
+ </div>
+ </div>
+ </div>;
+ }
+
+ @action @undoBatch
selectPanel = (str: string) => {
if (this.panelContent === str && this.flyoutWidth !== 0) {
- this.panelContent = "none";
- this.flyoutWidth = 0;
+ this.closeFlyout();
} else {
this.panelContent = str;
MainView.expandFlyout();
@@ -606,7 +613,13 @@ export class MainView extends React.Component {
return true;
}
- @action
+ @action @undoBatch
+ closeFlyout = () => {
+ this.panelContent = "none";
+ this.flyoutWidth = 0;
+ }
+
+ @action @undoBatch
selectMenu = (str: string) => {
if (CurrentUserUtils.panelContent === str && this.flyoutWidth !== 0) {
CurrentUserUtils.panelContent = "none";
@@ -630,7 +643,7 @@ export class MainView extends React.Component {
return true;
}
- @action
+ @action @undoBatch
onDown = (e: React.PointerEvent) => {
setupMoveUpEvents(this, e, action((e: PointerEvent, down: number[], delta: number[]) => {
this._propertiesWidth = this._panelWidth - Math.max(Transform.Identity().transformPoint(e.clientX, 0)[0], 0);
diff --git a/src/client/views/PropertiesButtons.tsx b/src/client/views/PropertiesButtons.tsx
index 3113d8cb4..cc15a8195 100644
--- a/src/client/views/PropertiesButtons.tsx
+++ b/src/client/views/PropertiesButtons.tsx
@@ -6,7 +6,7 @@ import { observer } from "mobx-react";
import { Doc, DocListCast } from "../../fields/Doc";
import { RichTextField } from '../../fields/RichTextField';
import { Cast, NumCast, BoolCast } from "../../fields/Types";
-import { emptyFunction, setupMoveUpEvents } from "../../Utils";
+import { emptyFunction, setupMoveUpEvents, Utils } from "../../Utils";
import GoogleAuthenticationManager from '../apis/GoogleAuthenticationManager';
import { Pulls, Pushes } from '../apis/google_docs/GoogleApiClientUtils';
import { Docs, DocUtils } from '../documents/Documents';
@@ -27,6 +27,8 @@ import SharingManager from '../util/SharingManager';
import { GooglePhotos } from '../apis/google_docs/GooglePhotosClientUtils';
import { ImageField } from '../../fields/URLField';
import { undoBatch, UndoManager } from '../util/UndoManager';
+import { DocumentType } from '../documents/DocumentTypes';
+import { CollectionFreeFormView } from './collections/collectionFreeForm/CollectionFreeFormView';
const higflyout = require("@hig/flyout");
export const { anchorPoints } = higflyout;
export const Flyout = higflyout.default;
@@ -471,6 +473,22 @@ export class PropertiesButtons extends React.Component<{}, {}> {
</Tooltip>;
}
+ // @computed
+ // get importButton() {
+ // const targetDoc = this.selectedDoc;
+ // return !targetDoc ? (null) : <Tooltip
+ // title={<><div className="dash-tooltip">{"Import a Document"}</div></>}>
+ // <div className={"propertiesButtons-linkButton-empty"}
+ // onPointerDown={() => {
+ // if (this.selectedDocumentView) {
+ // CollectionFreeFormView.importDocument(100, 100);
+ // }
+ // }}>
+ // {<FontAwesomeIcon className="documentdecorations-icon"
+ // icon="upload" size="sm" />}
+ // </div>
+ // </Tooltip>;
+ // }
render() {
if (!this.selectedDoc) return (null);
@@ -479,6 +497,8 @@ export class PropertiesButtons extends React.Component<{}, {}> {
const considerPull = isText && this.considerGoogleDocsPull;
const considerPush = isText && this.considerGoogleDocsPush;
const isImage = this.selectedDoc[Doc.LayoutFieldKey(this.selectedDoc)] instanceof ImageField;
+ const isCollection = this.selectedDoc.type === DocumentType.COL ? true : false;
+
return <div><div className="propertiesButtons" style={{ paddingBottom: "5.5px" }}>
<div className="propertiesButtons-button">
{this.templateButton}
@@ -518,6 +538,9 @@ export class PropertiesButtons extends React.Component<{}, {}> {
<div className="propertiesButtons-button" style={{ display: !isImage ? "none" : "" }}>
{this.googlePhotosButton}
</div>
+ {/* <div className="propertiesButtons-button" style={{ display: !isCollection ? "none" : "" }}>
+ {this.importButton}
+ </div> */}
</div>
</div>;
}
diff --git a/src/client/views/collections/CollectionSchemaView.tsx b/src/client/views/collections/CollectionSchemaView.tsx
index 5553bbbb7..f67e049fd 100644
--- a/src/client/views/collections/CollectionSchemaView.tsx
+++ b/src/client/views/collections/CollectionSchemaView.tsx
@@ -253,7 +253,7 @@ export class CollectionSchemaView extends CollectionSubView(doc => doc) {
<div className="collectionSchema-headerMenu-group">
<div onClick={() => this.typesDropdownChange(!this._openTypes)}>
<label>Column type:</label>
- <FontAwesomeIcon icon={"caret-down"} size="sm" style={{ float: "right" }} />
+ <FontAwesomeIcon icon={"caret-down"} size="lg" style={{ float: "right" }} />
</div>
{this._openTypes ? allColumnTypes : justColType}
</div >
diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx
index ae53f5ba0..5834e5542 100644
--- a/src/client/views/collections/CollectionView.tsx
+++ b/src/client/views/collections/CollectionView.tsx
@@ -308,7 +308,7 @@ export class CollectionView extends Touchable<FieldViewProps & CollectionViewCus
const options = cm.findByDescription("Options...");
const optionItems = options && "subitems" in options ? options.subitems : [];
- optionItems.splice(0, 0, { description: `${this.props.Document.forceActive ? "Select" : "Force"} Contents Active`, event: () => this.props.Document.forceActive = !this.props.Document.forceActive, icon: "project-diagram" });
+ !Doc.UserDoc().noviceMode ? optionItems.splice(0, 0, { description: `${this.props.Document.forceActive ? "Select" : "Force"} Contents Active`, event: () => this.props.Document.forceActive = !this.props.Document.forceActive, icon: "project-diagram" }) : null;
if (this.props.Document.childLayout instanceof Doc) {
optionItems.push({ description: "View Child Layout", event: () => this.props.addDocTab(this.props.Document.childLayout as Doc, "onRight"), icon: "project-diagram" });
}
diff --git a/src/client/views/collections/SchemaTable.tsx b/src/client/views/collections/SchemaTable.tsx
index cde795098..75e693f96 100644
--- a/src/client/views/collections/SchemaTable.tsx
+++ b/src/client/views/collections/SchemaTable.tsx
@@ -208,7 +208,7 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
}}>
{col.heading}</div>;
- const sortIcon = col.desc === undefined ? "circle" : col.desc === true ? "caret-down" : "caret-up";
+ const sortIcon = col.desc === undefined ? "caret-right" : col.desc === true ? "caret-down" : "caret-up";
const header =
<div //className="collectionSchemaView-header"
@@ -224,12 +224,12 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
{keysDropdown}
</div>
<div onClick={e => this.changeSorting(col)}
- style={{ paddingRight: "6px", display: "inline" }}>
+ style={{ paddingRight: "6px", marginLeft: "4px", display: "inline" }}>
<FontAwesomeIcon icon={sortIcon} size="sm" />
</div>
<div onClick={e => this.props.openHeader(col, e.clientX, e.clientY)}
style={{ float: "right", paddingRight: "6px" }}>
- <FontAwesomeIcon icon={"compass"} size="sm" />
+ <FontAwesomeIcon icon={"cog"} size="sm" />
</div>
</div>;
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 57336131a..e0981d797 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1239,13 +1239,15 @@ export class CollectionFreeFormView extends CollectionSubView<PanZoomDocument, P
const appearanceItems = appearance && "subitems" in appearance ? appearance.subitems : [];
appearanceItems.push({ description: "Reset View", event: () => { this.props.Document._panX = this.props.Document._panY = 0; this.props.Document[this.scaleFieldKey] = 1; }, icon: "compress-arrows-alt" });
appearanceItems.push({ description: `${this.fitToContent ? "Make Zoomable" : "Scale to Window"}`, event: () => this.Document._fitToBox = !this.fitToContent, icon: !this.fitToContent ? "expand-arrows-alt" : "compress-arrows-alt" });
- appearanceItems.push({ description: "Arrange contents in grid", event: this.layoutDocsInGrid, icon: "table" });
+ !Doc.UserDoc().noviceMode ? appearanceItems.push({ description: "Arrange contents in grid", event: this.layoutDocsInGrid, icon: "table" }) : null;
!appearance && ContextMenu.Instance.addItem({ description: "Appearance...", subitems: appearanceItems, icon: "eye" });
const viewctrls = ContextMenu.Instance.findByDescription("UI Controls...");
const viewCtrlItems = viewctrls && "subitems" in viewctrls ? viewctrls.subitems : [];
- viewCtrlItems.push({ description: (Doc.UserDoc().showSnapLines ? "Hide" : "Show") + " Snap Lines", event: () => Doc.UserDoc().showSnapLines = !Doc.UserDoc().showSnapLines, icon: "compress-arrows-alt" });
- viewCtrlItems.push({ description: (this.Document.useClusters ? "Hide" : "Show") + " Clusters", event: () => this.updateClusters(!this.Document.useClusters), icon: "braille" });
+
+
+ !Doc.UserDoc().noviceMode ? viewCtrlItems.push({ description: (Doc.UserDoc().showSnapLines ? "Hide" : "Show") + " Snap Lines", event: () => Doc.UserDoc().showSnapLines = !Doc.UserDoc().showSnapLines, icon: "compress-arrows-alt" }) : null;
+ !Doc.UserDoc().noviceMode ? viewCtrlItems.push({ description: (this.Document.useClusters ? "Hide" : "Show") + " Clusters", event: () => this.updateClusters(!this.Document.useClusters), icon: "braille" }) : null;
!viewctrls && ContextMenu.Instance.addItem({ description: "UI Controls...", subitems: viewCtrlItems, icon: "eye" });
const options = ContextMenu.Instance.findByDescription("Options...");
diff --git a/src/client/views/linking/LinkMenuItem.tsx b/src/client/views/linking/LinkMenuItem.tsx
index 8084d96ae..0aabf5319 100644
--- a/src/client/views/linking/LinkMenuItem.tsx
+++ b/src/client/views/linking/LinkMenuItem.tsx
@@ -196,6 +196,7 @@ export class LinkMenuItem extends React.Component<LinkMenuItemProps> {
case DocumentType.DOCHOLDER: destinationIcon = "expand"; break;
case DocumentType.VID: destinationIcon = "video"; break;
case DocumentType.INK: destinationIcon = "pen-nib"; break;
+ case DocumentType.PDF: destinationIcon = "file"; break;
default: destinationIcon = "question"; break;
}
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index 856eb7246..f5ae9349a 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -712,21 +712,21 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
const options = cm.findByDescription("Options...");
const optionItems: ContextMenuProps[] = options && "subitems" in options ? options.subitems : [];
- optionItems.push({ description: this.Document.lockedPosition ? "Unlock Position" : "Lock Position", event: this.toggleLockPosition, icon: BoolCast(this.Document.lockedPosition) ? "unlock" : "lock" });
+ //optionItems.push({ description: this.Document.lockedPosition ? "Unlock Position" : "Lock Position", event: this.toggleLockPosition, icon: BoolCast(this.Document.lockedPosition) ? "unlock" : "lock" });
!options && cm.addItem({ description: "Options...", subitems: optionItems, icon: "compass" });
const existingOnClick = cm.findByDescription("OnClick...");
const onClicks: ContextMenuProps[] = existingOnClick && "subitems" in existingOnClick ? existingOnClick.subitems : [];
onClicks.push({ description: "Enter Portal", event: this.makeIntoPortal, icon: "window-restore" });
- onClicks.push({ description: "Toggle Detail", event: () => this.Document.onClick = ScriptField.MakeScript(`toggleDetail(self, "${this.Document.layoutKey}")`), icon: "window-restore" });
+ onClicks.push({ description: "Toggle Detail", event: () => this.Document.onClick = ScriptField.MakeScript(`toggleDetail(self, "${this.Document.layoutKey}")`), icon: "concierge-bell" });
onClicks.push({ description: this.Document.ignoreClick ? "Select" : "Do Nothing", event: () => this.Document.ignoreClick = !this.Document.ignoreClick, icon: this.Document.ignoreClick ? "unlock" : "lock" });
- onClicks.push({ description: this.Document.isLinkButton ? "Remove Follow Behavior" : "Follow Link in Place", event: () => this.toggleFollowLink("inPlace", true, false), icon: "concierge-bell" });
- !this.Document.isLinkButton && onClicks.push({ description: "Follow Link on Right", event: () => this.toggleFollowLink("onRight", false, false), icon: "concierge-bell" });
- onClicks.push({ description: this.Document.isLinkButton || this.onClickHandler ? "Remove Click Behavior" : "Follow Link", event: () => this.toggleFollowLink(undefined, false, false), icon: "concierge-bell" });
- onClicks.push({ description: (this.Document.isPushpin ? "Remove" : "Make") + " Pushpin", event: () => this.toggleFollowLink(undefined, false, true), icon: "snowflake" });
- onClicks.push({ description: "Edit onClick Script", event: () => UndoManager.RunInBatch(() => DocUtils.makeCustomViewClicked(this.props.Document, undefined, "onClick"), "edit onClick"), icon: "edit" });
- !existingOnClick && cm.addItem({ description: "OnClick...", noexpand: true, addDivider: true, subitems: onClicks, icon: "hand-point-right" });
+ onClicks.push({ description: this.Document.isLinkButton ? "Remove Follow Behavior" : "Follow Link in Place", event: () => this.toggleFollowLink("inPlace", true, false), icon: "link" });
+ !this.Document.isLinkButton && onClicks.push({ description: "Follow Link on Right", event: () => this.toggleFollowLink("onRight", false, false), icon: "link" });
+ onClicks.push({ description: this.Document.isLinkButton || this.onClickHandler ? "Remove Click Behavior" : "Follow Link", event: () => this.toggleFollowLink(undefined, false, false), icon: "link" });
+ onClicks.push({ description: (this.Document.isPushpin ? "Remove" : "Make") + " Pushpin", event: () => this.toggleFollowLink(undefined, false, true), icon: "map-pin" });
+ onClicks.push({ description: "Edit onClick Script", event: () => UndoManager.RunInBatch(() => DocUtils.makeCustomViewClicked(this.props.Document, undefined, "onClick"), "edit onClick"), icon: "terminal" });
+ !existingOnClick && cm.addItem({ description: "OnClick...", noexpand: true, addDivider: true, subitems: onClicks, icon: "mouse-pointer" });
const funcs: ContextMenuProps[] = [];
if (this.layoutDoc.onDragStart) {
@@ -739,6 +739,7 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
const more = cm.findByDescription("More...");
const moreItems = more && "subitems" in more ? more.subitems : [];
moreItems.push({ description: "Share", event: () => SharingManager.Instance.open(this), icon: "users" });
+ moreItems.push({ description: this.Document.lockedPosition ? "Unlock Position" : "Lock Position", event: this.toggleLockPosition, icon: BoolCast(this.Document.lockedPosition) ? "unlock" : "lock" });
moreItems.push({ description: "Create an Alias", event: () => this.onCopy(), icon: "copy" });
moreItems.push({ description: "Download document", icon: "download", event: async () => Doc.Zip(this.props.Document) });
if (!Doc.UserDoc().noviceMode) {