diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/views/collections/CollectionViewBase.tsx | 57 | ||||
-rw-r--r-- | src/server/index.ts | 16 |
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 |