aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/index.html2
-rw-r--r--package-lock.json71
-rw-r--r--package.json5
-rw-r--r--src/PreviewTextCursor.tsx15
-rw-r--r--src/client/util/SelectionManager.ts1
-rw-r--r--src/client/views/collections/CollectionFreeFormView.tsx8
-rw-r--r--src/client/views/collections/CollectionView.tsx1
-rw-r--r--src/client/views/nodes/DocumentView.tsx2
-rw-r--r--src/client/views/nodes/FormattedTextBox.tsx29
-rw-r--r--src/fields/KeyStore.ts3
-rw-r--r--src/server/database.ts11
11 files changed, 81 insertions, 67 deletions
diff --git a/build/index.html b/build/index.html
index 5ce31e1ce..fda212af4 100644
--- a/build/index.html
+++ b/build/index.html
@@ -2,8 +2,6 @@
<head>
<title>Dash Web</title>
- <link href="https://fonts.googleapis.com/css?family=Fjalla+One|Hind+Siliguri:300" rel="stylesheet">
- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">
</head>
<body>
diff --git a/package-lock.json b/package-lock.json
index 761af7f92..fe90f7b96 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2137,6 +2137,11 @@
"sha.js": "^2.4.8"
}
},
+ "crel": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/crel/-/crel-3.1.0.tgz",
+ "integrity": "sha512-VIGY44ERxx8lXVkOEfcB0A49OkjxkQNK+j+fHvoLy7GsGX1KKgAaQ+p9N0YgvQXu+X+ryUWGDeLx/fSI+w7+eg=="
+ },
"cross-spawn": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
@@ -10004,6 +10009,43 @@
"prosemirror-transform": "^1.0.0"
}
},
+ "prosemirror-dropcursor": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.1.1.tgz",
+ "integrity": "sha512-GeUyMO/tOEf8MXrP7Xb7UIMrfK86OGh0fnyBrHfhav4VjY9cw65mNoqHy87CklE5711AhCP5Qzfp8RL/hVKusg==",
+ "requires": {
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-transform": "^1.1.0",
+ "prosemirror-view": "^1.1.0"
+ }
+ },
+ "prosemirror-example-setup": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-example-setup/-/prosemirror-example-setup-1.0.1.tgz",
+ "integrity": "sha512-4NKWpdmm75Zzgq/dIrypRnkBNPx+ONKyoGF42a9g3VIVv0TWglf1CBNxt5kzCgli9xdfut/xE5B42F9DR6BLHw==",
+ "requires": {
+ "prosemirror-commands": "^1.0.0",
+ "prosemirror-dropcursor": "^1.0.0",
+ "prosemirror-gapcursor": "^1.0.0",
+ "prosemirror-history": "^1.0.0",
+ "prosemirror-inputrules": "^1.0.0",
+ "prosemirror-keymap": "^1.0.0",
+ "prosemirror-menu": "^1.0.0",
+ "prosemirror-schema-list": "^1.0.0",
+ "prosemirror-state": "^1.0.0"
+ }
+ },
+ "prosemirror-gapcursor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.3.tgz",
+ "integrity": "sha512-X+hJhr42PcHWiSWL+lI5f/UeOhXCxlBFb8M6O8aG1hssmaRrW7sS2/Fjg5jFV+pTdS1REFkmm1occh01FMdDIQ==",
+ "requires": {
+ "prosemirror-keymap": "^1.0.0",
+ "prosemirror-model": "^1.0.0",
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-view": "^1.0.0"
+ }
+ },
"prosemirror-history": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.0.3.tgz",
@@ -10014,6 +10056,15 @@
"rope-sequence": "^1.2.0"
}
},
+ "prosemirror-inputrules": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.0.1.tgz",
+ "integrity": "sha512-UHy22NmwxS5WIMQYkzraDttQAF8mpP82FfbJsmKFfx6jwkR/SZa+ZhbkLY0zKQ5fBdJN7euj36JG/B5iAlrpxA==",
+ "requires": {
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-transform": "^1.0.0"
+ }
+ },
"prosemirror-keymap": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.0.1.tgz",
@@ -10023,6 +10074,17 @@
"w3c-keyname": "^1.1.8"
}
},
+ "prosemirror-menu": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.0.5.tgz",
+ "integrity": "sha512-9Vrn7CC191v7FA4QrAkL8W1SrR73V3CRIYCDuk94R8oFVk4VxSFdoKVLHuvGzxZ8b5LCu3DMJfh86YW9uL4RkQ==",
+ "requires": {
+ "crel": "^3.0.0",
+ "prosemirror-commands": "^1.0.0",
+ "prosemirror-history": "^1.0.0",
+ "prosemirror-state": "^1.0.0"
+ }
+ },
"prosemirror-model": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.7.0.tgz",
@@ -10039,6 +10101,15 @@
"prosemirror-model": "^1.0.0"
}
},
+ "prosemirror-schema-list": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.0.2.tgz",
+ "integrity": "sha512-IJ4DEpUEymfO+NNA4DAgCMF39XiQqpmCoPYY3SXa1jYcVgObGpGfJlSjZYVFEpimoLI7/mLoOLDhCtpGCRhTfg==",
+ "requires": {
+ "prosemirror-model": "^1.0.0",
+ "prosemirror-transform": "^1.0.0"
+ }
+ },
"prosemirror-state": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.2.2.tgz",
diff --git a/package.json b/package.json
index bd4655816..8568a7bef 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,6 @@
"express-validator": "^5.3.1",
"expressjs": "^1.0.1",
"flexlayout-react": "^0.3.3",
- "font-awesome": "^4.7.0",
"golden-layout": "^1.5.9",
"jsonwebtoken": "^8.4.0",
"jsx-to-string": "^1.4.0",
@@ -92,6 +91,7 @@
"passport": "^0.4.0",
"passport-local": "^1.0.0",
"prosemirror-commands": "^1.0.7",
+ "prosemirror-example-setup": "^1.0.1",
"prosemirror-history": "^1.0.3",
"prosemirror-keymap": "^1.0.1",
"prosemirror-model": "^1.7.0",
@@ -103,7 +103,6 @@
"react": "^16.5.2",
"react-dimensions": "^1.3.1",
"react-dom": "^16.7.0",
- "react-fontawesome": "^1.6.1",
"react-golden-layout": "^1.0.6",
"react-image-lightbox": "^5.1.0",
"react-jsx-parser": "^1.13.0",
@@ -117,4 +116,4 @@
"url-loader": "^1.1.2",
"uuid": "^3.3.2"
}
-}
+} \ No newline at end of file
diff --git a/src/PreviewTextCursor.tsx b/src/PreviewTextCursor.tsx
deleted file mode 100644
index 6818bf28c..000000000
--- a/src/PreviewTextCursor.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import React = require("react");
-import { observer } from "mobx-react";
-
-@observer
-export class PreviewTextCursor extends React.Component {
-
- render() {
- return (
- <div>
-
- </div>
- )
- };
-
-} \ No newline at end of file
diff --git a/src/client/util/SelectionManager.ts b/src/client/util/SelectionManager.ts
index c349e7631..1a711ae64 100644
--- a/src/client/util/SelectionManager.ts
+++ b/src/client/util/SelectionManager.ts
@@ -8,7 +8,6 @@ export namespace SelectionManager {
@action
SelectDoc(doc: DocumentView, ctrlPressed: boolean): void {
-
// if doc is not in SelectedDocuments, add it
if (!ctrlPressed) {
manager.SelectedDocuments = [];
diff --git a/src/client/views/collections/CollectionFreeFormView.tsx b/src/client/views/collections/CollectionFreeFormView.tsx
index cd88c931b..63ecec0df 100644
--- a/src/client/views/collections/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/CollectionFreeFormView.tsx
@@ -2,8 +2,6 @@ import { observable, action, computed } from "mobx";
import { observer } from "mobx-react";
import { Document } from "../../../fields/Document";
import { FieldWaiting } from "../../../fields/Field";
-import { Server } from "tls";
-import { RichTextField } from "../../../fields/RichTextField";
import { KeyStore } from "../../../fields/KeyStore";
import { ListField } from "../../../fields/ListField";
import { TextField } from "../../../fields/TextField";
@@ -12,7 +10,6 @@ import { Transform } from "../../util/Transform";
import { undoBatch } from "../../util/UndoManager";
import { CollectionDockingView } from "../collections/CollectionDockingView";
import { CollectionSchemaView } from "../collections/CollectionSchemaView";
-import { CollectionTreeView } from "../collections/CollectionTreeView";
import { CollectionView } from "../collections/CollectionView";
import { CollectionFreeFormDocumentView } from "../nodes/CollectionFreeFormDocumentView";
import { DocumentView } from "../nodes/DocumentView";
@@ -41,8 +38,6 @@ export class CollectionFreeFormView extends CollectionViewBase {
@observable
private _previewCursorVisible: boolean = false;
- @computed get colFocus(): boolean { return this.props.CollectionView.isFocusOn() }
-
@computed get panX(): number { return this.props.Document.GetNumber(KeyStore.PanX, 0) }
@computed get panY(): number { return this.props.Document.GetNumber(KeyStore.PanY, 0) }
@computed get scale(): number { return this.props.Document.GetNumber(KeyStore.Scale, 1); }
@@ -165,7 +160,6 @@ export class CollectionFreeFormView extends CollectionViewBase {
@action
onKeyDown = (e: React.KeyboardEvent<Element>) => {
- console.log("KEY PRESSED");
//if not these keys, make a textbox if preview cursor is active!
if (!e.ctrlKey && !e.altKey && !e.shiftKey) {
if (this._previewCursorVisible) {
@@ -174,9 +168,7 @@ export class CollectionFreeFormView extends CollectionViewBase {
let newBox = Documents.TextDocument({ width: 200, height: 100, x: x, y: y, title: "new" });
//set text to be the typed key and get focus on text box
this.props.CollectionView.addDocument(newBox);
- newBox.SetText(KeyStore.Data, e.key);
newBox.SetNumber(KeyStore.SelectOnLoaded, 1);
-
//remove cursor from screen
this._previewCursorVisible = false;
}
diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx
index 11cc6d28e..35ac48177 100644
--- a/src/client/views/collections/CollectionView.tsx
+++ b/src/client/views/collections/CollectionView.tsx
@@ -11,7 +11,6 @@ import { CollectionFreeFormView } from "./CollectionFreeFormView";
import { CollectionDockingView } from "./CollectionDockingView";
import { CollectionSchemaView } from "./CollectionSchemaView";
import { CollectionViewProps } from "./CollectionViewBase";
-var ReactDOM = require('react-dom');
import { CollectionTreeView } from "./CollectionTreeView";
import { Field } from "../../../fields/Field";
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index 9f80c4e3a..50dc9ddc1 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -113,14 +113,12 @@ export class DocumentView extends React.Component<DocumentViewProps> {
}
}
-
onPointerMove = (e: PointerEvent): void => {
if (e.cancelBubble) {
this._contextMenuCanOpen = false;
return;
}
if (Math.abs(this._downX - e.clientX) > 3 || Math.abs(this._downY - e.clientY) > 3) {
-
this._contextMenuCanOpen = false;
if (this._mainCont.current != null && !this.topMost) {
this._contextMenuCanOpen = false;
diff --git a/src/client/views/nodes/FormattedTextBox.tsx b/src/client/views/nodes/FormattedTextBox.tsx
index 63d00a310..a92821ed6 100644
--- a/src/client/views/nodes/FormattedTextBox.tsx
+++ b/src/client/views/nodes/FormattedTextBox.tsx
@@ -2,24 +2,22 @@ import { action, IReactionDisposer, reaction } from "mobx";
import { baseKeymap } from "prosemirror-commands";
import { history, redo, undo } from "prosemirror-history";
import { keymap } from "prosemirror-keymap";
+const { exampleSetup } = require("prosemirror-example-setup")
import { schema } from "prosemirror-schema-basic";
-import { Transform } from "prosemirror-transform";
-import { EditorState, Transaction } from "prosemirror-state";
+import { EditorState, Transaction, } from "prosemirror-state";
import { EditorView } from "prosemirror-view";
-import { Node } from "prosemirror-model";
import { Opt, FieldWaiting, FieldValue } from "../../../fields/Field";
import "./FormattedTextBox.scss";
import { KeyStore } from "../../../fields/KeyStore";
import React = require("react")
import { RichTextField } from "../../../fields/RichTextField";
import { FieldViewProps, FieldView } from "./FieldView";
-import { CollectionFreeFormDocumentView } from "./CollectionFreeFormDocumentView";
-import { observer } from "mobx-react";
-import { Schema, DOMParser } from "prosemirror-model"
import { Plugin } from 'prosemirror-state'
import { Decoration, DecorationSet } from 'prosemirror-view'
+
+
// FormattedTextBox: Displays an editable plain text node that maps to a specified Key of a Document
//
// HTML Markup: <FormattedTextBox Doc={Document's ID} FieldKey={Key's name + "Key"}
@@ -42,7 +40,6 @@ export class FormattedTextBox extends React.Component<FieldViewProps> {
private _ref: React.RefObject<HTMLDivElement>;
private _editorView: Opt<EditorView>;
private _reactionDisposer: Opt<IReactionDisposer>;
- private _lastTextState = "";
constructor(props: FieldViewProps) {
super(props);
@@ -58,24 +55,9 @@ export class FormattedTextBox extends React.Component<FieldViewProps> {
this._editorView.updateState(state);
const { doc, fieldKey } = this.props;
doc.SetData(fieldKey, JSON.stringify(state.toJSON()), RichTextField);
- this._lastTextState = JSON.stringify(state.toJSON);
}
}
- //enables textboxes to be created with preexisting text or placeholder text
- //this method is passed in as part of the config the editor state in componentDidMount()
- placeholderPlugin(text: string) {
- return new Plugin({
- props: {
- decorations(state) {
- let doc = state.doc
- if (doc.childCount == 1 && doc.firstChild && doc.firstChild.isTextblock && doc.firstChild.content.size == 0)
- return DecorationSet.create(doc, [Decoration.widget(1, document.createTextNode(text))])
- }
- }
- })
- }
-
componentDidMount() {
let state: EditorState;
const { doc, fieldKey } = this.props;
@@ -85,8 +67,8 @@ export class FormattedTextBox extends React.Component<FieldViewProps> {
history(),
keymap({ "Mod-z": undo, "Mod-y": redo }),
keymap(baseKeymap),
- //sets the placeholder text to what's in KeyStore.Text!
]
+
};
let field = doc.GetT(fieldKey, RichTextField);
@@ -134,7 +116,6 @@ export class FormattedTextBox extends React.Component<FieldViewProps> {
@action
onChange(e: React.ChangeEvent<HTMLInputElement>) {
const { fieldKey, doc } = this.props;
- this._lastTextState = e.target.value;
doc.SetData(fieldKey, e.target.value, RichTextField);
}
onPointerDown = (e: React.PointerEvent): void => {
diff --git a/src/fields/KeyStore.ts b/src/fields/KeyStore.ts
index 6b5fafe05..662574396 100644
--- a/src/fields/KeyStore.ts
+++ b/src/fields/KeyStore.ts
@@ -26,10 +26,7 @@ export namespace KeyStore {
export const Caption = new Key("Caption");
export const ActiveFrame = new Key("ActiveFrame");
export const DocumentText = new Key("DocumentText");
- //used for setting the text of a text document
- export const Text = new Key("Text");
//determines whether doc views will be selected when they are first loaded
- //should be NumberField where 0 = false and 1 = true
//currently only implemented for FormattedTextView
export const SelectOnLoaded = new Key("SelectOnLoaded");
}
diff --git a/src/server/database.ts b/src/server/database.ts
index dbf335c0a..07c5819ab 100644
--- a/src/server/database.ts
+++ b/src/server/database.ts
@@ -1,6 +1,6 @@
import { action, configure } from 'mobx';
-import * as mongodb from "mongodb"
-import { ObjectID } from "mongodb"
+import * as mongodb from 'mongodb';
+import { ObjectID } from 'mongodb';
import { Transferable } from './Message';
import { Utils } from '../Utils';
@@ -8,15 +8,10 @@ export class Database {
public static Instance = new Database()
private MongoClient = mongodb.MongoClient;
private url = 'mongodb://localhost:27017/Dash';
-
private db?: mongodb.Db;
constructor() {
this.MongoClient.connect(this.url, (err, client) => {
- if (err) {
- console.log(err.message);
- throw err;
- }
this.db = client.db()
})
}
@@ -83,4 +78,4 @@ export class Database {
public print() {
console.log("db says hi!")
}
-} \ No newline at end of file
+}