aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMonika Hedman <monika_hedman@brown.edu>2019-03-05 17:52:15 -0500
committerMonika Hedman <monika_hedman@brown.edu>2019-03-05 17:52:15 -0500
commit46948b5eee468f45f2ff67b1915a97950eb495a1 (patch)
tree0337eb6faa091701a6570f7f84554e7c193e7f2a /src
parentbb1d3120f11a47e9d493202c1003dae52bf6667f (diff)
almost there
Diffstat (limited to 'src')
-rw-r--r--src/client/views/collections/CollectionViewBase.tsx57
-rw-r--r--src/server/index.ts16
2 files changed, 56 insertions, 17 deletions
diff --git a/src/client/views/collections/CollectionViewBase.tsx b/src/client/views/collections/CollectionViewBase.tsx
index 0a3b965f2..47c9e0986 100644
--- a/src/client/views/collections/CollectionViewBase.tsx
+++ b/src/client/views/collections/CollectionViewBase.tsx
@@ -11,6 +11,7 @@ import { Documents, DocumentOptions } from "../../documents/Documents";
import { Key } from "../../../fields/Key";
import { Transform } from "../../util/Transform";
import { CollectionView } from "./CollectionView";
+import * as request from "request";
export interface CollectionViewProps {
fieldKey: Key;
@@ -61,6 +62,7 @@ export class CollectionViewBase extends React.Component<SubCollectionViewProps>
@action
protected onDrop(e: React.DragEvent, options: DocumentOptions): void {
+ console.log("DRRRRROOOOPPPPPP");
e.stopPropagation()
e.preventDefault()
let that = this;
@@ -68,13 +70,17 @@ export class CollectionViewBase extends React.Component<SubCollectionViewProps>
let html = e.dataTransfer.getData("text/html");
let text = e.dataTransfer.getData("text/plain");
if (html && html.indexOf("<img") != 0) {
+ console.log("not good");
let htmlDoc = Documents.HtmlDocument(html, { ...options, width: 300, height: 300 });
htmlDoc.SetText(KeyStore.DocumentText, text);
this.props.addDocument(htmlDoc);
return;
}
+ console.log(e.dataTransfer.items.length);
+
for (let i = 0; i < e.dataTransfer.items.length; i++) {
+ const upload = window.location.origin + "/upload";
let item = e.dataTransfer.items[i];
if (item.kind === "string" && item.type.indexOf("uri") != -1) {
e.dataTransfer.items[i].getAsString(function (s) {
@@ -93,29 +99,46 @@ export class CollectionViewBase extends React.Component<SubCollectionViewProps>
})
}
- if (item.kind == "file" && item.type.indexOf("image")) {
+ if (item.kind == "file" && item.type.indexOf("image") !== -1) {
let fReader = new FileReader()
let file = item.getAsFile();
-
- fReader.addEventListener("load", action("drop", () => {
- if (fReader.result) {
- let url = "" + fReader.result;
- let doc = Documents.ImageDocument(url, options)
- let docs = that.props.Document.GetT(KeyStore.Data, ListField);
- if (docs != FieldWaiting) {
- if (!docs) {
- docs = new ListField<Document>();
- that.props.Document.Set(KeyStore.Data, docs)
- }
- docs.Data.push(doc);
- }
- }
- }), false)
+ let formData = new FormData()
if (file) {
- fReader.readAsDataURL(file)
+ formData.append('file', file)
}
+
+ fetch(upload, {
+ method: 'POST',
+ body: formData
+ })
+ // fReader.addEventListener("load", action("drop", () => {
+ // if (fReader.result) {
+ // let form = request.post(upload).form();
+ // form.append('file', fReader.result);
+ // // let url = "" + fReader.result;
+ // // let doc = Documents.ImageDocument(url, options)
+ // // let docs = that.props.Document.GetT(KeyStore.Data, ListField);
+ // // if (docs != FieldWaiting) {
+ // // if (!docs) {
+ // // docs = new ListField<Document>();
+ // // that.props.Document.Set(KeyStore.Data, docs)
+ // // }
+ // // docs.Data.push(doc);
+ // // }
+ // }
+ // }), false)
+ // if (file) {
+ // fReader.readAsBinaryString(file)
+ // }
+
}
+ // request.post(upload, {
+ // body: {
+ // test: "DEAR GOD PLEASE SEND! (NEITHER)",
+ // },
+ // json: true
+ // })
}
}
}
diff --git a/src/server/index.ts b/src/server/index.ts
index 56881e254..89a2793e8 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -4,6 +4,7 @@ import * as webpack from 'webpack'
import * as wdm from 'webpack-dev-middleware';
import * as whm from 'webpack-hot-middleware';
import * as path from 'path'
+import * as formidable from 'formidable'
import * as passport from 'passport';
import { MessageStore, Message, SetFieldArgs, GetFieldArgs, Transferable } from "./Message";
import { Client } from './Client';
@@ -74,6 +75,21 @@ app.post("/signup", postSignup);
app.get("/login", getLogin);
app.post("/login", postLogin);
+// IMAGE UPLOADING HANDLER
+
+app.post("/upload", (req, res, err) => {
+ new formidable.IncomingForm().parse(req, (err, fields, files) => {
+ for (const name in files) {
+ let file = files[name];
+ file.path = __dirname + "/files/" + file.name;
+ console.log(file.path);
+ }
+ });
+ //request.get(url).pipe(fs.createWriteStream(__dirname + "/public/images"));
+})
+
+app.use(express.static(__dirname + '/public'));
+
let FieldStore: ObservableMap<FieldId, Field> = new ObservableMap();
// define a route handler for the default home page