aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFawn <fangrui_tong@brown.edu>2019-06-26 16:05:24 -0400
committerFawn <fangrui_tong@brown.edu>2019-06-26 16:05:24 -0400
commit681ba524496d40aecb832fc79d68d7695435aed8 (patch)
tree8a4570c20634663454cd80aa6d4c42ad8d6081dc /src
parenta81677c7dffafa5134d4c5cbe893f7a886eaab63 (diff)
fixed link alias dragging
Diffstat (limited to 'src')
-rw-r--r--src/client/util/DocumentManager.ts6
-rw-r--r--src/client/util/DragManager.ts25
-rw-r--r--src/client/views/nodes/LinkMenu.scss5
-rw-r--r--src/client/views/nodes/LinkMenu.tsx2
-rw-r--r--src/client/views/nodes/LinkMenuGroup.tsx7
5 files changed, 24 insertions, 21 deletions
diff --git a/src/client/util/DocumentManager.ts b/src/client/util/DocumentManager.ts
index 877475347..fed30bbdc 100644
--- a/src/client/util/DocumentManager.ts
+++ b/src/client/util/DocumentManager.ts
@@ -72,11 +72,7 @@ export class DocumentManager {
if (doc === toFind) {
toReturn.push(view);
} else {
- // if (Doc.AreProtosEqual(doc, toFind)) {
- // toReturn.push(view);
-
- let docSrc = FieldValue(doc.proto);
- if (docSrc && Object.is(docSrc, toFind)) {
+ if (Doc.AreProtosEqual(doc, toFind)) {
toReturn.push(view);
}
}
diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts
index 8e6abe18e..5c75c8fe5 100644
--- a/src/client/util/DragManager.ts
+++ b/src/client/util/DragManager.ts
@@ -9,6 +9,7 @@ import { URLField } from "../../new_fields/URLField";
import { SelectionManager } from "./SelectionManager";
import { Docs, DocUtils } from "../documents/Documents";
import { DocumentManager } from "./DocumentManager";
+import { Id } from "../../new_fields/FieldSymbols";
export type dropActionType = "alias" | "copy" | undefined;
export function SetupDrag(_reference: React.RefObject<HTMLElement>, docFunc: () => Doc | Promise<Doc>, moveFunc?: DragManager.MoveFunction, dropAction?: dropActionType, options?: any, dontHideOnDrop?: boolean) {
@@ -213,19 +214,25 @@ export namespace DragManager {
runInAction(() => StartDragFunctions.map(func => func()));
StartDrag(eles, dragData, downX, downY, options,
(dropData: { [id: string]: any }) => {
- dropData.droppedDocuments = dragData.draggedDocuments.map(d => {
- let dv = DocumentManager.Instance.getDocumentView(d);
- if (dv) {
- if (dv.props.ContainingCollectionView === SelectionManager.SelectedDocuments()[0].props.ContainingCollectionView) {
- return d;
+ // dropData.droppedDocuments =
+ console.log(dragData.draggedDocuments.length);
+ let droppedDocuments: Doc[] = dragData.draggedDocuments.reduce((droppedDocs: Doc[], d) => {
+ let dvs = DocumentManager.Instance.getDocumentViews(d);
+ console.log(StrCast(d.title), dvs.length);
+
+ if (dvs.length) {
+ let inContext = dvs.filter(dv => dv.props.ContainingCollectionView === SelectionManager.SelectedDocuments()[0].props.ContainingCollectionView);
+ if (inContext.length) {
+ inContext.forEach(dv => droppedDocs.push(dv.props.Document));
} else {
- return Doc.MakeAlias(d);
+ droppedDocs.push(Doc.MakeAlias(d));
}
} else {
- return Doc.MakeAlias(d);
+ droppedDocs.push(Doc.MakeAlias(d));
}
- });
-
+ return droppedDocs;
+ }, []);
+ dropData.droppedDocuments = droppedDocuments;
});
}
diff --git a/src/client/views/nodes/LinkMenu.scss b/src/client/views/nodes/LinkMenu.scss
index 7cc11172b..a4018bd2d 100644
--- a/src/client/views/nodes/LinkMenu.scss
+++ b/src/client/views/nodes/LinkMenu.scss
@@ -25,6 +25,8 @@
&:hover {
p {
background-color: lightgray;
+ }
+ p.expand-one {
width: calc(100% - 26px);
}
.linkEditor-tableButton {
@@ -131,8 +133,5 @@
}
}
-.linkEditor-clearButton {
- float: right;
-}
diff --git a/src/client/views/nodes/LinkMenu.tsx b/src/client/views/nodes/LinkMenu.tsx
index 71384c368..68fde17a0 100644
--- a/src/client/views/nodes/LinkMenu.tsx
+++ b/src/client/views/nodes/LinkMenu.tsx
@@ -11,7 +11,7 @@ import { faTrash } from '@fortawesome/free-solid-svg-icons';
import { library } from "@fortawesome/fontawesome-svg-core";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-library.add(faTrash)
+library.add(faTrash);
interface Props {
docView: DocumentView;
diff --git a/src/client/views/nodes/LinkMenuGroup.tsx b/src/client/views/nodes/LinkMenuGroup.tsx
index 732e76997..f4e0b8931 100644
--- a/src/client/views/nodes/LinkMenuGroup.tsx
+++ b/src/client/views/nodes/LinkMenuGroup.tsx
@@ -79,13 +79,14 @@ export class LinkMenuGroup extends React.Component<LinkMenuGroupProps> {
return (
<div className="linkMenu-group">
<div className="linkMenu-group-name">
- <p ref={this._drag} onPointerDown={this.onLinkButtonDown}>{this.props.groupType}:</p>
- {this.viewGroupAsTable(this.props.groupType)}
+ <p ref={this._drag} onPointerDown={this.onLinkButtonDown}
+ className={this.props.groupType === "*" || this.props.groupType === "" ? "" : "expand-one"} > {this.props.groupType}:</p>
+ {this.props.groupType === "*" || this.props.groupType === "" ? <></> : this.viewGroupAsTable(this.props.groupType)}
</div>
<div className="linkMenu-group-wrapper">
{groupItems}
</div>
- </div>
+ </div >
);
}
} \ No newline at end of file