From 3beca8e7d268dc7b67b20b2c8760ea5e4b6fdb88 Mon Sep 17 00:00:00 2001
From: anika-ahluwalia
Date: Wed, 8 Jul 2020 18:59:37 -0500
Subject: added dashDragging event
---
.../collectionFreeForm/CollectionFreeFormView.tsx | 15 +++++++++++++++
1 file changed, 15 insertions(+)
(limited to 'src/client/views/collections')
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 9bf425db2..5a762a85c 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1143,10 +1143,19 @@ export class CollectionFreeFormView extends CollectionSubView this.doLayoutComputation,
(elements) => this._layoutElements = elements || [],
{ fireImmediately: true, name: "doLayout" });
+
+ const handler = (e: Event) => this.handleDragging(e, (e as CustomEvent).detail);
+
+ document.addEventListener("dashDragging", handler);
}
+
componentWillUnmount() {
this._layoutComputeReaction?.();
+
+ const handler = (e: Event) => this.handleDragging(e, (e as CustomEvent).detail);
+ document.removeEventListener("dashDragging", handler);
}
+
@computed get views() { return this._layoutElements.filter(ele => ele.bounds && !ele.bounds.z).map(ele => ele.ele); }
elementFunc = () => this._layoutElements;
@@ -1155,6 +1164,12 @@ export class CollectionFreeFormView extends CollectionSubView {
+ console.log(de.clientX);
+ console.log(de.clientX);
+ }
+
promoteCollection = undoBatch(action(() => {
const childDocs = this.childDocs.slice();
childDocs.forEach(doc => {
--
cgit v1.2.3-70-g09d2
From 15f70932a9e267393c774e9c4dd37a43224320f0 Mon Sep 17 00:00:00 2001
From: anika-ahluwalia
Date: Thu, 9 Jul 2020 01:54:29 -0500
Subject: started dragging pans screen (needs cleaning)
---
src/client/util/LinkManager.ts | 2 +
.../collectionFreeForm/CollectionFreeFormView.tsx | 105 ++++++++++++++++++---
2 files changed, 96 insertions(+), 11 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/util/LinkManager.ts b/src/client/util/LinkManager.ts
index 6da581f35..50f3fc1d6 100644
--- a/src/client/util/LinkManager.ts
+++ b/src/client/util/LinkManager.ts
@@ -3,6 +3,7 @@ import { List } from "../../fields/List";
import { listSpec } from "../../fields/Schema";
import { Cast, StrCast } from "../../fields/Types";
import { Scripting } from "./Scripting";
+import { undoBatch } from "./UndoManager";
/*
* link doc:
@@ -52,6 +53,7 @@ export class LinkManager {
return false;
}
+ @undoBatch
public deleteLink(linkDoc: Doc): boolean {
if (LinkManager.Instance.LinkManagerDoc && linkDoc instanceof Doc) {
Doc.RemoveDocFromList(LinkManager.Instance.LinkManagerDoc, "data", linkDoc);
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 5a762a85c..a3d3a210d 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -101,6 +101,10 @@ export class CollectionFreeFormView extends CollectionSubView();
+ @observable _marqueeRef = React.createRef();
+ @observable canPanX: boolean = true;
+ @observable canPanY: boolean = true;
+
@computed get fitToContentScaling() { return this.fitToContent ? NumCast(this.layoutDoc.fitToContentScaling, 1) : 1; }
@computed get fitToContent() { return (this.props.fitToBox || this.Document._fitToBox) && !this.isAnnotationOverlay; }
@computed get parentScaling() { return this.props.ContentScaling && this.fitToContent && !this.isAnnotationOverlay ? this.props.ContentScaling() : 1; }
@@ -1164,10 +1168,87 @@ export class CollectionFreeFormView extends CollectionSubView
+
@action
handleDragging = (e: Event, de: DragEvent) => {
- console.log(de.clientX);
- console.log(de.clientX);
+
+ const nw = NumCast(this.Document._nativeWidth, this.props.NativeWidth());
+ const nh = NumCast(this.Document._nativeHeight, this.props.NativeHeight());
+ const hscale = nh ? this.props.PanelHeight() / nh : 1;
+ const wscale = nw ? this.props.PanelWidth() / nw : 1;
+
+ if (this._marqueeRef) {
+ if (this._marqueeRef.current) {
+
+ // console.log("left: " + this._marqueeRef.current.clientLeft);
+ // console.log("width: " + this._marqueeRef.current.clientWidth);
+ // console.log("client x: " + de.clientX);
+
+ // console.log("top: " + this._marqueeRef.current.clientTop);
+ // console.log("height: " + this._marqueeRef.current.clientHeight);
+ // console.log("client y: " + de.clientY);
+
+
+ if (this._marqueeRef.current.clientWidth > 0) {
+ if (de.clientX - 315 - this._marqueeRef.current.clientLeft < 25) {
+ console.log("PAN left ");
+ if (this.canPanX) {
+ this.Document._panX = de.clientX - 20 - this._marqueeRef.current.clientLeft;
+ setTimeout(action(() => {
+ this.canPanX = true;
+ this.panX();
+ }), 2500);
+ this.canPanX = false;
+ }
+ } else if (de.clientX - 315 - this._marqueeRef.current.clientLeft -
+ this._marqueeRef.current.clientWidth < 25) {
+ console.log("PAN right ");
+ if (this.canPanX) {
+ this.Document._panX = de.clientX - 315 - this._marqueeRef.current.clientLeft -
+ this._marqueeRef.current.clientWidth;
+
+ setTimeout(action(() => {
+ this.panX();
+ this.canPanX = true;
+ }), 2500);
+ this.canPanX = false;
+ }
+
+ }
+ }
+
+ if (this._marqueeRef.current.clientHeight > 0) {
+ if (de.clientY - 120 - this._marqueeRef.current.clientTop < 25) {
+ console.log("PAN top ");
+ if (this.canPanY) {
+ this.Document._panY = de.clientY - 20 - this._marqueeRef.current.clientTop;
+ setTimeout(action(() => {
+ this.canPanY = true;
+ this.panY();
+ }), 2500);
+ this.canPanY = false;
+ }
+ } else if (de.clientY - 120 - this._marqueeRef.current.clientTop -
+ this._marqueeRef.current.clientHeight < 25) {
+ console.log("PAN bottom ");
+ if (this.canPanY) {
+ this.Document._panY = de.clientY - 120 - this._marqueeRef.current.clientTop -
+ this._marqueeRef.current.clientHeight;
+
+ setTimeout(action(() => {
+ this.panY();
+ this.canPanY = true;
+ }), 2500);
+ this.canPanY = false;
+ }
+
+ }
+
+ }
+ }
+ }
}
promoteCollection = undoBatch(action(() => {
@@ -1351,7 +1432,8 @@ export class CollectionFreeFormView extends CollectionSubView
-
- {this.children}
-
+
+
+ {this.children}
+
{this.showTimeline ? : (null)}
;
}
--
cgit v1.2.3-70-g09d2
From 27b0f32460245539d77bcd435627a68364e0bc0d Mon Sep 17 00:00:00 2001
From: anika-ahluwalia
Date: Thu, 9 Jul 2020 12:15:42 -0500
Subject: fixed linking undo issues
---
.../collectionFreeForm/CollectionFreeFormView.tsx | 96 ++++++++++++----------
src/client/views/nodes/DocumentLinksButton.tsx | 6 +-
.../views/nodes/formattedText/FormattedTextBox.tsx | 2 +
3 files changed, 57 insertions(+), 47 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index a3d3a210d..ffa4be4b9 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1174,47 +1174,55 @@ export class CollectionFreeFormView extends CollectionSubView {
- const nw = NumCast(this.Document._nativeWidth, this.props.NativeWidth());
- const nh = NumCast(this.Document._nativeHeight, this.props.NativeHeight());
- const hscale = nh ? this.props.PanelHeight() / nh : 1;
- const wscale = nw ? this.props.PanelWidth() / nw : 1;
+ const top = this.panX();
+ const left = this.panY();
+
+ const size = this.getTransform().transformDirection(this.props.PanelWidth(), this.props.PanelHeight());
+
+ const scale = this.getLocalTransform().inverse().Scale;
if (this._marqueeRef) {
+
if (this._marqueeRef.current) {
+ // console.log("top: " + this._marqueeRef.current.clientTop);
// console.log("left: " + this._marqueeRef.current.clientLeft);
// console.log("width: " + this._marqueeRef.current.clientWidth);
- // console.log("client x: " + de.clientX);
-
- // console.log("top: " + this._marqueeRef.current.clientTop);
// console.log("height: " + this._marqueeRef.current.clientHeight);
- // console.log("client y: " + de.clientY);
+
+ console.log("width: " + this._marqueeRef.current.getBoundingClientRect().width);
+ console.log("height: " + this._marqueeRef.current.getBoundingClientRect().width);
+ console.log("x: " + this._marqueeRef.current.getBoundingClientRect().x);
+ console.log("y: " + this._marqueeRef.current.getBoundingClientRect().y);
+
+ // console.log("mouse x: " + de.screenX);
+ // console.log("mouse y: " + de.screenY);
if (this._marqueeRef.current.clientWidth > 0) {
if (de.clientX - 315 - this._marqueeRef.current.clientLeft < 25) {
console.log("PAN left ");
- if (this.canPanX) {
- this.Document._panX = de.clientX - 20 - this._marqueeRef.current.clientLeft;
- setTimeout(action(() => {
- this.canPanX = true;
- this.panX();
- }), 2500);
- this.canPanX = false;
- }
+
+ // if (this.canPanX) {
+ // this.Document._panX = left - 5;
+ // setTimeout(action(() => {
+ // this.canPanX = true;
+ // this.panX();
+ // }), 250);
+ // this.canPanX = false;
+ // }
} else if (de.clientX - 315 - this._marqueeRef.current.clientLeft -
this._marqueeRef.current.clientWidth < 25) {
console.log("PAN right ");
- if (this.canPanX) {
- this.Document._panX = de.clientX - 315 - this._marqueeRef.current.clientLeft -
- this._marqueeRef.current.clientWidth;
-
- setTimeout(action(() => {
- this.panX();
- this.canPanX = true;
- }), 2500);
- this.canPanX = false;
- }
+
+ // if (this.canPanX) {
+ // this.Document._panX = left + 5;
+ // setTimeout(action(() => {
+ // this.panX();
+ // this.canPanX = true;
+ // }), 250);
+ // this.canPanX = false;
+ // }
}
}
@@ -1222,27 +1230,27 @@ export class CollectionFreeFormView extends CollectionSubView 0) {
if (de.clientY - 120 - this._marqueeRef.current.clientTop < 25) {
console.log("PAN top ");
- if (this.canPanY) {
- this.Document._panY = de.clientY - 20 - this._marqueeRef.current.clientTop;
- setTimeout(action(() => {
- this.canPanY = true;
- this.panY();
- }), 2500);
- this.canPanY = false;
- }
+
+ // if (this.canPanY) {
+ // this.Document._panY = top - 5;
+ // setTimeout(action(() => {
+ // this.canPanY = true;
+ // this.panY();
+ // }), 250);
+ // this.canPanY = false;
+ // }
} else if (de.clientY - 120 - this._marqueeRef.current.clientTop -
this._marqueeRef.current.clientHeight < 25) {
console.log("PAN bottom ");
- if (this.canPanY) {
- this.Document._panY = de.clientY - 120 - this._marqueeRef.current.clientTop -
- this._marqueeRef.current.clientHeight;
-
- setTimeout(action(() => {
- this.panY();
- this.canPanY = true;
- }), 2500);
- this.canPanY = false;
- }
+
+ // if (this.canPanY) {
+ // this.Document._panY = top + 5;
+ // setTimeout(action(() => {
+ // this.panY();
+ // this.canPanY = true;
+ // }), 250);
+ // this.canPanY = false;
+ // }
}
diff --git a/src/client/views/nodes/DocumentLinksButton.tsx b/src/client/views/nodes/DocumentLinksButton.tsx
index 44e72215d..ce96eddfe 100644
--- a/src/client/views/nodes/DocumentLinksButton.tsx
+++ b/src/client/views/nodes/DocumentLinksButton.tsx
@@ -3,7 +3,7 @@ import { observer } from "mobx-react";
import { Doc, DocListCast } from "../../../fields/Doc";
import { emptyFunction, setupMoveUpEvents, returnFalse } from "../../../Utils";
import { DragManager } from "../../util/DragManager";
-import { UndoManager } from "../../util/UndoManager";
+import { UndoManager, undoBatch } from "../../util/UndoManager";
import './DocumentLinksButton.scss';
import { DocumentView } from "./DocumentView";
import React = require("react");
@@ -29,7 +29,7 @@ export class DocumentLinksButton extends React.Component {
if (this._linkButton.current !== null) {
const linkDrag = UndoManager.StartBatch("Drag Link");
@@ -56,7 +56,7 @@ export class DocumentLinksButton extends React.Component {
setupMoveUpEvents(this, e, this.onLinkButtonMoved, emptyFunction, action((e, doubleTap) => {
if (doubleTap && this.props.InMenu) {
diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.tsx b/src/client/views/nodes/formattedText/FormattedTextBox.tsx
index fc63dfbf5..30e0738bf 100644
--- a/src/client/views/nodes/formattedText/FormattedTextBox.tsx
+++ b/src/client/views/nodes/formattedText/FormattedTextBox.tsx
@@ -944,6 +944,8 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp
frag.forEach(node => nodes.push(marker(node)));
return Fragment.fromArray(nodes);
}
+
+
function addLinkMark(node: Node, title: string, linkId: string) {
if (!node.isText) {
const content = addMarkToFrag(node.content, (node: Node) => addLinkMark(node, title, linkId));
--
cgit v1.2.3-70-g09d2
From f774d6953d23dda9b8b20ed24b64e28607d3d88c Mon Sep 17 00:00:00 2001
From: Bob Zeleznik
Date: Thu, 9 Jul 2020 14:53:52 -0400
Subject: fixed auto panning in collectionview.
---
.../collectionFreeForm/CollectionFreeFormView.tsx | 124 +++++++++------------
1 file changed, 51 insertions(+), 73 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index ffa4be4b9..7a7505319 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1172,89 +1172,67 @@ export class CollectionFreeFormView extends CollectionSubView
@action
- handleDragging = (e: Event, de: DragEvent) => {
+ handleDragging = (e: CustomEvent, de: DragEvent) => {
const top = this.panX();
const left = this.panY();
const size = this.getTransform().transformDirection(this.props.PanelWidth(), this.props.PanelHeight());
-
const scale = this.getLocalTransform().inverse().Scale;
- if (this._marqueeRef) {
-
- if (this._marqueeRef.current) {
-
- // console.log("top: " + this._marqueeRef.current.clientTop);
- // console.log("left: " + this._marqueeRef.current.clientLeft);
- // console.log("width: " + this._marqueeRef.current.clientWidth);
- // console.log("height: " + this._marqueeRef.current.clientHeight);
-
- console.log("width: " + this._marqueeRef.current.getBoundingClientRect().width);
- console.log("height: " + this._marqueeRef.current.getBoundingClientRect().width);
- console.log("x: " + this._marqueeRef.current.getBoundingClientRect().x);
- console.log("y: " + this._marqueeRef.current.getBoundingClientRect().y);
-
- // console.log("mouse x: " + de.screenX);
- // console.log("mouse y: " + de.screenY);
-
-
- if (this._marqueeRef.current.clientWidth > 0) {
- if (de.clientX - 315 - this._marqueeRef.current.clientLeft < 25) {
- console.log("PAN left ");
-
- // if (this.canPanX) {
- // this.Document._panX = left - 5;
- // setTimeout(action(() => {
- // this.canPanX = true;
- // this.panX();
- // }), 250);
- // this.canPanX = false;
- // }
- } else if (de.clientX - 315 - this._marqueeRef.current.clientLeft -
- this._marqueeRef.current.clientWidth < 25) {
- console.log("PAN right ");
-
- // if (this.canPanX) {
- // this.Document._panX = left + 5;
- // setTimeout(action(() => {
- // this.panX();
- // this.canPanX = true;
- // }), 250);
- // this.canPanX = false;
- // }
-
- }
- }
+ if (this._marqueeRef?.current) {
+ const dragX = e.detail.clientX;
+ const dragY = e.detail.clientY;
+ const bounds = this._marqueeRef.current?.getBoundingClientRect()!;
+
+ if (dragX - bounds.left < 25) {
+ console.log("PAN left ");
+
+ // if (this.canPanX) {
+ // this.Document._panX = left - 5;
+ // setTimeout(action(() => {
+ // this.canPanX = true;
+ // this.panX();
+ // }), 250);
+ // this.canPanX = false;
+ // }
+ } else if (bounds.right - dragX < 25) {
+ console.log("PAN right ");
+
+ // if (this.canPanX) {
+ // this.Document._panX = left + 5;
+ // setTimeout(action(() => {
+ // this.panX();
+ // this.canPanX = true;
+ // }), 250);
+ // this.canPanX = false;
+ // }
- if (this._marqueeRef.current.clientHeight > 0) {
- if (de.clientY - 120 - this._marqueeRef.current.clientTop < 25) {
- console.log("PAN top ");
-
- // if (this.canPanY) {
- // this.Document._panY = top - 5;
- // setTimeout(action(() => {
- // this.canPanY = true;
- // this.panY();
- // }), 250);
- // this.canPanY = false;
- // }
- } else if (de.clientY - 120 - this._marqueeRef.current.clientTop -
- this._marqueeRef.current.clientHeight < 25) {
- console.log("PAN bottom ");
-
- // if (this.canPanY) {
- // this.Document._panY = top + 5;
- // setTimeout(action(() => {
- // this.panY();
- // this.canPanY = true;
- // }), 250);
- // this.canPanY = false;
- // }
+ }
- }
+ if (dragY - bounds.top < 25) {
+ console.log("PAN top ");
+
+ // if (this.canPanY) {
+ // this.Document._panY = top - 5;
+ // setTimeout(action(() => {
+ // this.canPanY = true;
+ // this.panY();
+ // }), 250);
+ // this.canPanY = false;
+ // }
+ } else if (bounds.bottom - dragY < 25) {
+ console.log("PAN bottom ");
+
+ // if (this.canPanY) {
+ // this.Document._panY = top + 5;
+ // setTimeout(action(() => {
+ // this.panY();
+ // this.canPanY = true;
+ // }), 250);
+ // this.canPanY = false;
+ // }
- }
}
}
}
--
cgit v1.2.3-70-g09d2
From a2983dd18800642b493c88d061f6d518a1768456 Mon Sep 17 00:00:00 2001
From: Bob Zeleznik
Date: Thu, 9 Jul 2020 17:10:41 -0400
Subject: updated autopan in freeformview.
---
.../collectionFreeForm/CollectionFreeFormView.tsx | 72 +++++++++++-----------
1 file changed, 36 insertions(+), 36 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 7a7505319..e184cd82f 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -579,6 +579,7 @@ export class CollectionFreeFormView extends CollectionSubView {
+ this._lastClientY = undefined;
if (InteractionUtils.IsType(e, InteractionUtils.TOUCHTYPE)) return;
document.removeEventListener("pointermove", this.onPointerMove);
@@ -1171,11 +1172,14 @@ export class CollectionFreeFormView extends CollectionSubView
+ _lastClientY = 0;
@action
handleDragging = (e: CustomEvent, de: DragEvent) => {
-
+ if ((e as any).handlePan) return;
+ (e as any).handlePan = true;
const top = this.panX();
const left = this.panY();
+ this._lastClientY = e.detail.clientY;
const size = this.getTransform().transformDirection(this.props.PanelWidth(), this.props.PanelHeight());
const scale = this.getLocalTransform().inverse().Scale;
@@ -1188,55 +1192,51 @@ export class CollectionFreeFormView extends CollectionSubView {
- // this.canPanX = true;
- // this.panX();
- // }), 250);
- // this.canPanX = false;
- // }
+ if (this.canPanX) {
+ this.Document._panX = left - 5;
+ setTimeout(action(() => {
+ this.canPanX = true;
+ this.panX();
+ }), 250);
+ this.canPanX = false;
+ }
} else if (bounds.right - dragX < 25) {
console.log("PAN right ");
- // if (this.canPanX) {
- // this.Document._panX = left + 5;
- // setTimeout(action(() => {
- // this.panX();
- // this.canPanX = true;
- // }), 250);
- // this.canPanX = false;
- // }
+ if (this.canPanX) {
+ this.Document._panX = left + 5;
+ setTimeout(action(() => {
+ this.panX();
+ this.canPanX = true;
+ }), 250);
+ this.canPanX = false;
+ }
}
if (dragY - bounds.top < 25) {
console.log("PAN top ");
-
- // if (this.canPanY) {
- // this.Document._panY = top - 5;
- // setTimeout(action(() => {
- // this.canPanY = true;
- // this.panY();
- // }), 250);
- // this.canPanY = false;
- // }
+ this.continueYPan(-2);
} else if (bounds.bottom - dragY < 25) {
console.log("PAN bottom ");
-
- // if (this.canPanY) {
- // this.Document._panY = top + 5;
- // setTimeout(action(() => {
- // this.panY();
- // this.canPanY = true;
- // }), 250);
- // this.canPanY = false;
- // }
-
+ this.continueYPan(2);
}
}
+ e.stopPropagation();
}
+ continueYPan = (delta: number) => {
+ setTimeout(() => {
+ const dragY = this._lastClientY;
+ if (this._lastClientY !== undefined && this._marqueeRef.current) {
+ const bounds = this._marqueeRef.current.getBoundingClientRect()!;
+ this.Document._panY = NumCast(this.Document._panY) + delta;
+ (dragY - bounds.top < 25 || bounds.bottom - dragY < 25) && this.continueYPan(delta);
+ } else this._lastClientY !== undefined && this.continueYPan(delta);
+ }, 50);
+ }
+
+
promoteCollection = undoBatch(action(() => {
const childDocs = this.childDocs.slice();
childDocs.forEach(doc => {
--
cgit v1.2.3-70-g09d2
From 93dfc57bd89e586aa9747cde37937bad479a0597 Mon Sep 17 00:00:00 2001
From: anika-ahluwalia
Date: Thu, 9 Jul 2020 16:21:17 -0500
Subject: fixed textbox preview
---
.../collectionFreeForm/CollectionFreeFormView.tsx | 5 ++++-
.../nodes/formattedText/FormattedTextBoxComment.scss | 14 +++++++++-----
.../nodes/formattedText/FormattedTextBoxComment.tsx | 17 +++++++----------
3 files changed, 20 insertions(+), 16 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index fdc8536f8..2f712d609 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1183,7 +1183,10 @@ export class CollectionFreeFormView extends CollectionSubView
-
+
Math.min(350, NumCast(target._width, 350))}
- PanelHeight={() => Math.min(250, NumCast(target._height, 250))}
+ PanelWidth={() => 170} //Math.min(350, NumCast(target._width, 350))}
+ PanelHeight={() => 170} //Math.min(250, NumCast(target._height, 250))}
focus={emptyFunction}
whenActiveChanged={returnFalse}
bringToFront={returnFalse}
ContentScaling={returnOne}
- NativeWidth={returnZero}
- NativeHeight={returnZero}
+ NativeWidth={() => target._nativeWidth ? NumCast(target._nativeWidth) : 0}
+ NativeHeight={() => target._nativeHeight ? NumCast(target._nativeHeight) : 0}
/>
;
--
cgit v1.2.3-70-g09d2
From 3d0c64cf9979f739177b0efd9970ad0e0a9fa3d0 Mon Sep 17 00:00:00 2001
From: anika-ahluwalia
Date: Thu, 9 Jul 2020 17:00:12 -0500
Subject: small changes
---
src/client/documents/Documents.ts | 6 +-----
.../collections/collectionFreeForm/CollectionFreeFormView.tsx | 8 +++++---
src/client/views/linking/LinkMenuItem.tsx | 2 +-
src/client/views/nodes/formattedText/FormattedTextBox.tsx | 2 ++
4 files changed, 9 insertions(+), 9 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index 565e7c25d..fa85d58f0 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -909,7 +909,7 @@ export namespace DocUtils {
DocUtils.ActiveRecordings.map(d => DocUtils.MakeLink({ doc: doc }, { doc: d }, "audio link", "audio timeline"));
}
- export function MakeLink(source: { doc: Doc }, target: { doc: Doc }, linkRelationship: string = "", description: string = "", id?: string, linkedText?: string) {
+ export function MakeLink(source: { doc: Doc }, target: { doc: Doc }, linkRelationship: string = "", description: string = "", id?: string) {
const sv = DocumentManager.Instance.getDocumentView(source.doc);
if (sv && sv.props.ContainingCollectionDoc === target.doc) return;
if (target.doc === Doc.UserDoc()) return undefined;
@@ -921,10 +921,6 @@ export namespace DocUtils {
Doc.GetProto(source.doc).links = ComputedField.MakeFunction("links(self)");
Doc.GetProto(target.doc).links = ComputedField.MakeFunction("links(self)");
- if (linkedText) {
- Doc.GetProto(linkDoc).linkedText = linkedText;
- }
-
return linkDoc;
}
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 965bfdf24..9d79c0c89 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1181,17 +1181,19 @@ export class CollectionFreeFormView extends CollectionSubView {
this.props.destinationDoc.type === "screenshot" ? "photo-video" :
this.props.destinationDoc.type === "webcam" ? "video" :
this.props.destinationDoc.type === "audio" ? "microphone" :
- this.props.destinationDoc.type === "button" ? "lightning" :
+ this.props.destinationDoc.type === "button" ? "bolt" :
this.props.destinationDoc.type === "presentation" ? "tv" :
this.props.destinationDoc.type === "query" ? "search" :
this.props.destinationDoc.type === "script" ? "terminal" :
diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.tsx b/src/client/views/nodes/formattedText/FormattedTextBox.tsx
index bff6f1c8c..4f6927d3d 100644
--- a/src/client/views/nodes/formattedText/FormattedTextBox.tsx
+++ b/src/client/views/nodes/formattedText/FormattedTextBox.tsx
@@ -176,9 +176,11 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp
doLinkOnDeselect() {
console.log("link on deselect");
+
Array.from(this.linkOnDeselect.entries()).map(entry => {
const key = entry[0];
const value = entry[1];
+
const id = Utils.GenerateDeterministicGuid(this.dataDoc[Id] + key);
DocServer.GetRefField(value).then(doc => {
DocServer.GetRefField(id).then(linkDoc => {
--
cgit v1.2.3-70-g09d2
From 756a2d4e680bcdcc339e8f2493f699bb01e3fbb0 Mon Sep 17 00:00:00 2001
From: Bob Zeleznik
Date: Thu, 9 Jul 2020 18:37:03 -0400
Subject: fixed type errors.
---
.../views/collections/collectionFreeForm/CollectionFreeFormView.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 9d79c0c89..f2a39b240 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1172,7 +1172,7 @@ export class CollectionFreeFormView extends CollectionSubView
- _lastClientY = 0;
+ _lastClientY: number | undefined = 0;
@action
handleDragging = (e: CustomEvent, de: DragEvent) => {
if ((e as any).handlePan) return;
@@ -1233,7 +1233,7 @@ export class CollectionFreeFormView extends CollectionSubView {
setTimeout(() => {
const dragY = this._lastClientY;
- if (this._lastClientY !== undefined && this._marqueeRef.current) {
+ if (dragY !== undefined && this._marqueeRef.current) {
const bounds = this._marqueeRef.current.getBoundingClientRect()!;
this.Document._panY = NumCast(this.Document._panY) + delta;
(dragY - bounds.top < 25 || bounds.bottom - dragY < 25) && this.continueYPan(delta);
--
cgit v1.2.3-70-g09d2
From 3e242feb9a79e1200ecc5679306d0680e6d1fa01 Mon Sep 17 00:00:00 2001
From: anika-ahluwalia
Date: Fri, 10 Jul 2020 00:43:05 -0500
Subject: adding ...
---
src/client/views/collections/CollectionLinearView.tsx | 17 ++++++++++++-----
src/client/views/linking/LinkMenuItem.tsx | 8 +++++++-
.../nodes/formattedText/FormattedTextBoxComment.tsx | 11 +++++++----
3 files changed, 26 insertions(+), 10 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/views/collections/CollectionLinearView.tsx b/src/client/views/collections/CollectionLinearView.tsx
index c370415be..2dd48aa27 100644
--- a/src/client/views/collections/CollectionLinearView.tsx
+++ b/src/client/views/collections/CollectionLinearView.tsx
@@ -16,6 +16,7 @@ import { Id } from '../../../fields/FieldSymbols';
import { DocumentLinksButton } from '../nodes/DocumentLinksButton';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { LinkDescriptionPopup } from '../nodes/LinkDescriptionPopup';
+import { Tooltip } from '@material-ui/core';
type LinearDocument = makeInterface<[typeof documentSchema,]>;
@@ -171,11 +172,17 @@ export class CollectionLinearView extends CollectionSubView(LinearDocument) {
onPointerDown={e => e.stopPropagation()} >
Creating link from: {DocumentLinksButton.StartLink.title}
- Labels: {LinkDescriptionPopup.showDescriptions ? LinkDescriptionPopup.showDescriptions : "ON"}
-
- Exit
+
+ Labels: {LinkDescriptionPopup.showDescriptions ? LinkDescriptionPopup.showDescriptions : "ON"}
+
+
+
+
+ Exit
+
{/* */}
diff --git a/src/client/views/linking/LinkMenuItem.tsx b/src/client/views/linking/LinkMenuItem.tsx
index 07630c3ff..f1a744ff2 100644
--- a/src/client/views/linking/LinkMenuItem.tsx
+++ b/src/client/views/linking/LinkMenuItem.tsx
@@ -197,6 +197,11 @@ export class LinkMenuItem extends React.Component {
this.props.destinationDoc.type === "import" ? "cloud-upload-alt" :
this.props.destinationDoc.type === "docholder" ? "expand" : "question";
+ const title = StrCast(this.props.destinationDoc.title).length > 18 ?
+ StrCast(this.props.destinationDoc.title).substr(0, 19) + "..." : this.props.destinationDoc.title;
+
+
+ console.log(StrCast(this.props.destinationDoc.title).length);
return (
@@ -220,7 +225,8 @@ export class LinkMenuItem extends React.Component {
- {StrCast(this.props.destinationDoc.title)}
+ {title}
+
{this.props.linkDoc.description !== "" ?
{StrCast(this.props.linkDoc.description)}
: null}
diff --git a/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx b/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx
index acdc7c56b..f1602bfbc 100644
--- a/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx
+++ b/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx
@@ -85,7 +85,7 @@ export class FormattedTextBoxComment {
FormattedTextBoxComment.tooltip.appendChild(FormattedTextBoxComment.tooltipText);
FormattedTextBoxComment.tooltip.className = "FormattedTextBox-tooltip";
FormattedTextBoxComment.tooltip.style.pointerEvents = "all";
- FormattedTextBoxComment.tooltip.style.maxWidth = "190px";
+ FormattedTextBoxComment.tooltip.style.maxWidth = "200px";
FormattedTextBoxComment.tooltip.style.maxHeight = "235px";
FormattedTextBoxComment.tooltip.style.width = "100%";
FormattedTextBoxComment.tooltip.style.height = "100%";
@@ -257,11 +257,14 @@ export class FormattedTextBoxComment {
if (target?.author) {
FormattedTextBoxComment.showCommentbox("", view, nbef);
+ const title = StrCast(target.title).length > 16 ?
+ StrCast(target.title).substr(0, 16) + "..." : target.title;
+
const docPreview =
- {target.title}
+ {title}
{FormattedTextBoxComment.linkDoc.description !== "" ?
{StrCast(FormattedTextBoxComment.linkDoc.description)}
: null}
@@ -300,8 +303,8 @@ export class FormattedTextBoxComment {
ContainingCollectionDoc={undefined}
ContainingCollectionView={undefined}
renderDepth={0}
- PanelWidth={() => 170} //Math.min(350, NumCast(target._width, 350))}
- PanelHeight={() => 170} //Math.min(250, NumCast(target._height, 250))}
+ PanelWidth={() => 175} //Math.min(350, NumCast(target._width, 350))}
+ PanelHeight={() => 175} //Math.min(250, NumCast(target._height, 250))}
focus={emptyFunction}
whenActiveChanged={returnFalse}
bringToFront={returnFalse}
--
cgit v1.2.3-70-g09d2
From b9ba531c64fe7926a6794ab57e4989e1ea6c6992 Mon Sep 17 00:00:00 2001
From: Bob Zeleznik
Date: Fri, 10 Jul 2020 11:23:44 -0400
Subject: fixes for x/y panning on drag
---
.../collectionFreeForm/CollectionFreeFormView.tsx | 66 ++++++----------------
1 file changed, 16 insertions(+), 50 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index f2a39b240..3fdf6683e 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -84,6 +84,8 @@ export class CollectionFreeFormView extends CollectionSubView = new Map();
@@ -579,7 +581,7 @@ export class CollectionFreeFormView extends CollectionSubView {
- this._lastClientY = undefined;
+ this._lastClientY = this._lastClientX = undefined;
if (InteractionUtils.IsType(e, InteractionUtils.TOUCHTYPE)) return;
document.removeEventListener("pointermove", this.onPointerMove);
@@ -1172,76 +1174,40 @@ export class CollectionFreeFormView extends CollectionSubView
- _lastClientY: number | undefined = 0;
@action
handleDragging = (e: CustomEvent, de: DragEvent) => {
if ((e as any).handlePan) return;
(e as any).handlePan = true;
- const top = this.panX();
- const left = this.panY();
this._lastClientY = e.detail.clientY;
-
- console.log("draggg");
-
- const size = this.getTransform().transformDirection(this.props.PanelWidth(), this.props.PanelHeight());
- const scale = this.getLocalTransform().inverse().Scale;
+ this._lastClientX = e.detail.clientX;
if (this._marqueeRef?.current) {
-
- console.log("hellp");
-
const dragX = e.detail.clientX;
const dragY = e.detail.clientY;
const bounds = this._marqueeRef.current?.getBoundingClientRect();
- if (dragX - bounds.left < 25) {
- console.log("PAN left ");
-
- if (this.canPanX) {
- this.Document._panX = left - 5;
- setTimeout(action(() => {
- this.canPanX = true;
- this.panX();
- }), 250);
- this.canPanX = false;
- }
- } else if (bounds.right - dragX < 25) {
- console.log("PAN right ");
-
- if (this.canPanX) {
- this.Document._panX = left + 5;
- setTimeout(action(() => {
- this.panX();
- this.canPanX = true;
- }), 250);
- this.canPanX = false;
- }
-
- }
-
- if (dragY - bounds.top < 25) {
- console.log("PAN top ");
- this.continueYPan(-2);
- } else if (bounds.bottom - dragY < 25) {
- console.log("PAN bottom ");
- this.continueYPan(2);
- }
+ let deltaX = dragX - bounds.left < 25 ? -2 : bounds.right - dragX < 25 ? 2 : 0;
+ let deltaY = dragY - bounds.top < 25 ? -2 : bounds.bottom - dragY < 25 ? 2 : 0;
+ (deltaX !== 0 || deltaY !== 0) && this.continuePan(deltaX, deltaY);
}
e.stopPropagation();
}
- continueYPan = (delta: number) => {
+ continuePan = (deltaX: number, deltaY: number) => {
setTimeout(() => {
const dragY = this._lastClientY;
- if (dragY !== undefined && this._marqueeRef.current) {
+ const dragX = this._lastClientX;
+ if (dragY !== undefined && dragX !== undefined && this._marqueeRef.current) {
const bounds = this._marqueeRef.current.getBoundingClientRect()!;
- this.Document._panY = NumCast(this.Document._panY) + delta;
- (dragY - bounds.top < 25 || bounds.bottom - dragY < 25) && this.continueYPan(delta);
- } else this._lastClientY !== undefined && this.continueYPan(delta);
+ this.Document._panY = NumCast(this.Document._panY) + deltaY;
+ this.Document._panX = NumCast(this.Document._panX) + deltaX;
+ if (dragY - bounds.top < 25 || bounds.bottom - dragY < 25 || dragX - bounds.left < 25 || bounds.right - dragX < 25) {
+ this.continuePan(deltaX, deltaY);
+ }
+ } else this._lastClientY !== undefined && this._lastClientX !== undefined && this.continuePan(deltaX, deltaY);
}, 50);
}
-
promoteCollection = undoBatch(action(() => {
const childDocs = this.childDocs.slice();
childDocs.forEach(doc => {
--
cgit v1.2.3-70-g09d2
From d064024d9ab2cd8e836df5ba75e064d77617445b Mon Sep 17 00:00:00 2001
From: Bob Zeleznik
Date: Fri, 10 Jul 2020 11:25:08 -0400
Subject: from last
---
.../views/collections/collectionFreeForm/CollectionFreeFormView.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 3fdf6683e..2191021d2 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1194,7 +1194,7 @@ export class CollectionFreeFormView extends CollectionSubView {
- setTimeout(() => {
+ setTimeout(action(() => {
const dragY = this._lastClientY;
const dragX = this._lastClientX;
if (dragY !== undefined && dragX !== undefined && this._marqueeRef.current) {
@@ -1205,7 +1205,7 @@ export class CollectionFreeFormView extends CollectionSubView {
--
cgit v1.2.3-70-g09d2
From 5a70fb56062d6a5ed45cf3cf4453089bc83f3c6b Mon Sep 17 00:00:00 2001
From: anika-ahluwalia
Date: Fri, 10 Jul 2020 18:11:09 -0500
Subject: added showing individual links with one bug
---
.../collectionFreeForm/CollectionFreeFormLinkView.tsx | 4 ++--
src/client/views/linking/LinkMenuItem.tsx | 13 ++++++++++---
src/client/views/nodes/DocumentLinksButton.tsx | 8 +++++++-
src/client/views/nodes/DocumentView.tsx | 18 ++++++++++++++----
4 files changed, 33 insertions(+), 10 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx
index a24693c30..ae79c27e0 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx
@@ -110,10 +110,10 @@ export class CollectionFreeFormLinkView extends React.Component
- {text !== "-ungrouped-" ? text : ""}
+ {text}
diff --git a/src/client/views/linking/LinkMenuItem.tsx b/src/client/views/linking/LinkMenuItem.tsx
index f7d189b20..8fc1ea12f 100644
--- a/src/client/views/linking/LinkMenuItem.tsx
+++ b/src/client/views/linking/LinkMenuItem.tsx
@@ -177,11 +177,16 @@ export class LinkMenuItem extends React.Component {
DocumentLinksButton.EditLink = undefined;
}
+ @action
+ showLink = () => {
+ this.props.linkDoc.hidden = !this.props.linkDoc.hidden;
+ }
+
render() {
const keys = LinkManager.Instance.getMetadataKeysInGroup(this.props.groupType);//groupMetadataKeys.get(this.props.groupType);
const canExpand = keys ? keys.length > 0 : false;
- const eyeIcon = this.props.linkDoc.shown ? "eye-slash" : "eye";
+ const eyeIcon = this.props.linkDoc.hidden ? "eye-slash" : "eye";
const destinationIcon = this.props.destinationDoc.type === "image" ? "image" :
this.props.destinationDoc.type === "comparison" ? "columns" :
@@ -208,7 +213,9 @@ export class LinkMenuItem extends React.Component {
// from anika to bob: here's where the text that is specifically linked would show up (linkDoc.storedText)
// ...
const source = this.props.sourceDoc.type === "rtf" ? this.props.linkDoc.storedText ?
- "stored text would show up here" : undefined : undefined;
+ StrCast(this.props.linkDoc.storedText).length > 17 ?
+ StrCast(this.props.linkDoc.storedText).substr(0, 18)
+ : this.props.linkDoc.storedText : undefined : undefined;
return (
@@ -243,7 +250,7 @@ export class LinkMenuItem extends React.Component {
: <>>}
-
+
diff --git a/src/client/views/nodes/DocumentLinksButton.tsx b/src/client/views/nodes/DocumentLinksButton.tsx
index 22431117e..f07a2ea5a 100644
--- a/src/client/views/nodes/DocumentLinksButton.tsx
+++ b/src/client/views/nodes/DocumentLinksButton.tsx
@@ -95,6 +95,9 @@ export class DocumentLinksButton extends React.Component
{
LinkCreatedBox.popupX = e.screenX;
LinkCreatedBox.popupY = e.screenY - 133;
@@ -123,6 +126,9 @@ export class DocumentLinksButton extends React.Component {
LinkCreatedBox.popupX = e.screenX;
LinkCreatedBox.popupY = e.screenY - 133;
@@ -173,7 +179,7 @@ export class DocumentLinksButton extends React.Component : (null)}
;
- return (!links.length || links[0].hidden) && !this.props.AlwaysOn ? (null) :
+ return (!links.length) && !this.props.AlwaysOn ? (null) :
{linkButton}
;
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index 97e3bc01c..310260832 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -201,6 +201,8 @@ export class DocumentView extends DocComponent(Docu
this._mainCont.current && (this.multiTouchDisposer = InteractionUtils.MakeMultiTouchTarget(this._mainCont.current, this.onTouchStart.bind(this)));
// this._mainCont.current && (this.holdDisposer = InteractionUtils.MakeHoldTouchTarget(this._mainCont.current, this.handle1PointerHoldStart.bind(this)));
+ //this.layoutDoc.showAllLinks = true;
+
if (!this.props.dontRegisterView) {
DocumentManager.Instance.DocumentViews.push(this);
}
@@ -646,6 +648,8 @@ export class DocumentView extends DocComponent(Docu
const linkDoc = DocUtils.MakeLink({ doc: de.complete.annoDragData.annotationDocument }, { doc: this.props.Document }, "link");
LinkManager.currentLink = linkDoc;
+ linkDoc ? linkDoc.hidden = true : null;
+ linkDoc ? linkDoc.linkDisplay = true : null;
runInAction(() => {
LinkCreatedBox.popupX = de.x;
@@ -668,6 +672,8 @@ export class DocumentView extends DocComponent(Docu
const linkDoc = DocUtils.MakeLink({ doc: de.complete.linkDragData.linkSourceDocument },
{ doc: this.props.Document }, `link`);
LinkManager.currentLink = linkDoc;
+ linkDoc ? linkDoc.hidden = true : null;
+ linkDoc ? linkDoc.linkDisplay = true : null;
de.complete.linkDragData.linkSourceDocument !== this.props.Document &&
(de.complete.linkDragData.linkDocument = linkDoc); // TODODO this is where in text links get passed
@@ -783,9 +789,12 @@ export class DocumentView extends DocComponent(Docu
const optionItems: ContextMenuProps[] = options && "subitems" in options ? options.subitems : [];
const templateDoc = Cast(this.props.Document[StrCast(this.props.Document.layoutKey)], Doc, null);
templateDoc && optionItems.push({ description: "Open Template ", event: () => this.props.addDocTab(templateDoc, "onRight"), icon: "eye" });
- optionItems.push({ description: "Toggle Show Each Link Dot", event: () => this.layoutDoc.showLinks = !this.layoutDoc.showLinks, icon: "eye" });
+ optionItems.push({
+ description: "Toggle Show Each Link Dot", event: () => { this.layoutDoc.showAllLinks = !this.layoutDoc.showAllLinks; }, icon: "eye"
+ });
!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" });
@@ -1084,7 +1093,7 @@ export class DocumentView extends DocComponent(Docu
select={this.select}
onClick={this.onClickHandler}
layoutKey={this.finalLayoutKey} />
- {this.layoutDoc.showLinks ? this.anchors : (null)}
+ {this.layoutDoc.showAllLinks ? this.allAnchors : null}
{this.props.forcedBackgroundColor?.(this.Document) === "transparent" || this.props.dontRegisterView ? (null) : }
);
@@ -1107,7 +1116,8 @@ export class DocumentView extends DocComponent
(Docu
hideLinkAnchor = (doc: Doc | Doc[]) => (doc instanceof Doc ? [doc] : doc).reduce((flg: boolean, doc) => flg && (doc.hidden = true), true)
anchorPanelWidth = () => this.props.PanelWidth() || 1;
anchorPanelHeight = () => this.props.PanelHeight() || 1;
- @computed get anchors() {
+
+ @computed get allAnchors() {
TraceMobx();
return (this.props.treeViewDoc && this.props.LayoutTemplateString) || // render nothing for: tree view anchor dots
this.layoutDoc.presBox || // presentationbox nodes
@@ -1133,7 +1143,7 @@ export class DocumentView extends DocComponent(Docu
if (this.props.treeViewDoc && !this.props.LayoutTemplateString) { // this happens when the document is a tree view label (but not an anchor dot)
return
{StrCast(this.props.Document.title)}
- {this.anchors}
+ {this.allAnchors}
;
}
--
cgit v1.2.3-70-g09d2
From c77f890a3ddd817738564a84046e65f0916d8a46 Mon Sep 17 00:00:00 2001
From: anika-ahluwalia
Date: Sun, 12 Jul 2020 12:02:19 -0500
Subject: more tooltips
---
src/client/views/DocumentButtonBar.tsx | 87 +++++++++++-----------
src/client/views/DocumentDecorations.tsx | 41 +++++-----
.../views/collections/CollectionLinearView.tsx | 23 +++---
src/client/views/nodes/DocumentLinksButton.tsx | 4 +-
4 files changed, 85 insertions(+), 70 deletions(-)
(limited to 'src/client/views/collections')
diff --git a/src/client/views/DocumentButtonBar.tsx b/src/client/views/DocumentButtonBar.tsx
index 1667b2f65..072648ef0 100644
--- a/src/client/views/DocumentButtonBar.tsx
+++ b/src/client/views/DocumentButtonBar.tsx
@@ -23,6 +23,7 @@ import { TemplateMenu } from "./TemplateMenu";
import { Template, Templates } from "./Templates";
import React = require("react");
import { DocumentLinksButton } from './nodes/DocumentLinksButton';
+import { Tooltip } from '@material-ui/core';
const higflyout = require("@hig/flyout");
export const { anchorPoints } = higflyout;
export const Flyout = higflyout.default;
@@ -118,18 +119,18 @@ export class DocumentButtonBar extends React.Component<{ views: () => (DocumentV
const targetDoc = this.view0?.props.Document;
const published = targetDoc && Doc.GetProto(targetDoc)[GoogleRef] !== undefined;
const animation = this.isAnimatingPulse ? "shadow-pulse 1s linear infinite" : "none";
- return !targetDoc ? (null) : {
- await GoogleAuthenticationManager.Instance.fetchOrGenerateAccessToken();
- !published && runInAction(() => this.isAnimatingPulse = true);
- DocumentButtonBar.hasPushedHack = false;
- targetDoc[Pushes] = NumCast(targetDoc[Pushes]) + 1;
- }}>
-
-
;
+ return !targetDoc ? (null) :
+ {
+ await GoogleAuthenticationManager.Instance.fetchOrGenerateAccessToken();
+ !published && runInAction(() => this.isAnimatingPulse = true);
+ DocumentButtonBar.hasPushedHack = false;
+ targetDoc[Pushes] = NumCast(targetDoc[Pushes]) + 1;
+ }}>
+
+
;
}
@computed
@@ -137,7 +138,7 @@ export class DocumentButtonBar extends React.Component<{ views: () => (DocumentV
const targetDoc = this.view0?.props.Document;
const dataDoc = targetDoc && Doc.GetProto(targetDoc);
const animation = this.isAnimatingFetch ? "spin 0.5s linear infinite" : "none";
- return !targetDoc || !dataDoc || !dataDoc[GoogleRef] ? (null) : {
switch (this.openHover) {
default:
@@ -146,6 +147,7 @@ export class DocumentButtonBar extends React.Component<{ views: () => (DocumentV
case UtilityButtonState.OpenExternally: return "Open in new Browser Tab";
}
})()}
+ >
{
if (e.altKey) {
@@ -176,43 +178,43 @@ export class DocumentButtonBar extends React.Component<{ views: () => (DocumentV
dataDoc.unchanged && runInAction(() => this.isAnimatingFetch = true);
}
}}>
- {
- switch (this.openHover) {
- default:
- case UtilityButtonState.Default: return dataDoc.unchanged === false ? (this.pullIcon as any) : fetch;
- case UtilityButtonState.OpenRight: return "arrow-alt-circle-right";
- case UtilityButtonState.OpenExternally: return "share";
- }
- })()}
- />
-
;
+
{
+ switch (this.openHover) {
+ default:
+ case UtilityButtonState.Default: return dataDoc.unchanged === false ? (this.pullIcon as any) : fetch;
+ case UtilityButtonState.OpenRight: return "arrow-alt-circle-right";
+ case UtilityButtonState.OpenExternally: return "share";
+ }
+ })()}
+ />
+ ;
}
@computed
get pinButton() {
const targetDoc = this.view0?.props.Document;
const isPinned = targetDoc && Doc.isDocPinned(targetDoc);
- return !targetDoc ? (null) : DockedFrameRenderer.PinDoc(targetDoc, isPinned)}>
-
-
;
+ return !targetDoc ? (null) :
+ DockedFrameRenderer.PinDoc(targetDoc, isPinned)}>
+
+
;
}
@computed
get metadataButton() {
const view0 = this.view0;
- return !view0 ? (null) :
+ return !view0 ? (null) :
this.props.views().filter(dv => dv).map(dv => dv!.props.Document)} suggestWithFunction /> /* tfs: @bcz This might need to be the data document? */}>
e.stopPropagation()} >
{ }
-
;
+ ;
}
@computed
@@ -253,14 +255,15 @@ export class DocumentButtonBar extends React.Component<{ views: () => (DocumentV
Array.from(Object.values(Templates.TemplateList)).map(template =>
templates.set(template, views.reduce((checked, doc) => checked || doc?.props.Document["_show" + template.Name] ? true : false, false as boolean)));
return !view0 ? (null) :
-
-
this._aliasDown = true)} onClose={action(() => this._aliasDown = false)}
- content={!this._aliasDown ? (null) : v).map(v => v as DocumentView)} templates={templates} />}>
-
- { }
-
-
-
;
+
+
+
this._aliasDown = true)} onClose={action(() => this._aliasDown = false)}
+ content={!this._aliasDown ? (null) : v).map(v => v as DocumentView)} templates={templates} />}>
+
+ { }
+
+
+
;
}
render() {
diff --git a/src/client/views/DocumentDecorations.tsx b/src/client/views/DocumentDecorations.tsx
index 0bf4814e7..d7324e1a6 100644
--- a/src/client/views/DocumentDecorations.tsx
+++ b/src/client/views/DocumentDecorations.tsx
@@ -25,6 +25,7 @@ import { HtmlField } from '../../fields/HtmlField';
import { InkData, InkField, InkTool } from "../../fields/InkField";
import { update } from 'serializr';
import { Transform } from "../util/Transform";
+import { Tooltip } from '@material-ui/core';
library.add(faCaretUp);
library.add(faObjectGroup);
@@ -546,13 +547,15 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
}
const minimal = bounds.r - bounds.x < 100 ? true : false;
const maximizeIcon = minimal ? (
-
-
-
) : (
-
- {/* Currently, this is set to be enabled if there is no ink selected. It might be interesting to think about minimizing ink if it's useful? -syip2*/}
-
-
);
+
+
+
+
) : (
+
+
+ {/* Currently, this is set to be enabled if there is no ink selected. It might be interesting to think about minimizing ink if it's useful? -syip2*/}
+
+
);
const titleArea = this._edtingTitle ?
<>
@@ -572,9 +575,9 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
}
> :
<>
- {minimal ? (null) :
+ {minimal ? (null) :
-
}
+ }
{`${this.selectionTitle}`}
@@ -611,12 +614,13 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
{maximizeIcon}
{titleArea}
{SelectionManager.SelectedDocuments().length !== 1 || seldoc.Document.type === DocumentType.INK ? (null) :
-
- {"_"}
-
}
-
+
+
+ {"_"}
+
}
+
{SelectionManager.SelectedDocuments().length === 1 ? DocumentDecorations.DocumentIcon(StrCast(seldoc.props.Document.layout, "...")) : "..."}
-
+
⟲
e.preventDefault()}>
{seldoc.props.renderDepth <= 1 || !seldoc.props.ContainingCollectionView ? (null) :
-
e.preventDefault()}>
-
-
}
+
+ e.preventDefault()}>
+
+
}
e.preventDefault()}>
diff --git a/src/client/views/collections/CollectionLinearView.tsx b/src/client/views/collections/CollectionLinearView.tsx
index 2dd48aa27..4c68cc949 100644
--- a/src/client/views/collections/CollectionLinearView.tsx
+++ b/src/client/views/collections/CollectionLinearView.tsx
@@ -111,17 +111,22 @@ export class CollectionLinearView extends CollectionSubView(LinearDocument) {
const flexDir: any = StrCast(this.Document.flexDirection);
const backgroundColor = StrCast(this.props.Document.backgroundColor, "black");
const color = StrCast(this.props.Document.color, "white");
+
+ const menuOpener =
e.stopPropagation()} >
+ +
+ ;
+
return
-
e.stopPropagation()} >
- +
-
+
+ {menuOpener}
+
this.props.Document.linearViewIsExpanded = this.addMenuToggle.current!.checked)} />
diff --git a/src/client/views/nodes/DocumentLinksButton.tsx b/src/client/views/nodes/DocumentLinksButton.tsx
index 03a96ea4a..1c15b31de 100644
--- a/src/client/views/nodes/DocumentLinksButton.tsx
+++ b/src/client/views/nodes/DocumentLinksButton.tsx
@@ -64,6 +64,8 @@ export class DocumentLinksButton extends React.Component
Doc.BrushDoc(this.props.View.Document));
DocumentLinksButton.StartLink = this.props.View;
} else if (!!!this.props.InMenu) {
+ console.log("editing");
+ this.props.View ? console.log("view") : null;
DocumentLinksButton.EditLink = this.props.View;
DocumentLinksButton.EditLinkLoc = [e.clientX + 10, e.clientY];
}
@@ -159,7 +161,7 @@ export class DocumentLinksButton extends React.Component