diff options
-rw-r--r-- | src/mobile/MobileInkOverlay.tsx | 15 | ||||
-rw-r--r-- | src/mobile/MobileInterface.tsx | 8 | ||||
-rw-r--r-- | src/server/Message.ts | 1 |
3 files changed, 17 insertions, 7 deletions
diff --git a/src/mobile/MobileInkOverlay.tsx b/src/mobile/MobileInkOverlay.tsx index ed4cca5b9..9f810424a 100644 --- a/src/mobile/MobileInkOverlay.tsx +++ b/src/mobile/MobileInkOverlay.tsx @@ -4,10 +4,11 @@ import { MobileInkOverlayContent, GestureContent, UpdateMobileInkOverlayPosition import { observable, action } from "mobx"; import { GestureUtils } from "../pen-gestures/GestureUtils"; import "./MobileInkOverlay.scss"; -import { StrCast } from '../new_fields/Types'; +import { StrCast, Cast } from '../new_fields/Types'; import { DragManager } from "../client/util/DragManager"; import { DocServer } from '../client/DocServer'; -import { Doc } from '../new_fields/Doc'; +import { Doc, DocListCastAsync } from '../new_fields/Doc'; +import { listSpec } from '../new_fields/Schema'; @observer @@ -87,7 +88,7 @@ export default class MobileInkOverlay extends React.Component { } uploadDocument = async (content: MobileDocumentUploadContent) => { - const { docId } = content; + const { docId, asCollection } = content; console.log("receive upload document id", docId); const doc = await DocServer.GetRefField(docId); @@ -97,7 +98,13 @@ export default class MobileInkOverlay extends React.Component { const target = document.elementFromPoint(this._x + 10, this._y + 10); console.log("the target is", target); - const dragData = new DragManager.DocumentDragData([doc]); + let uploadDocs = [doc]; + if (!asCollection) { + const children = await DocListCastAsync(doc.data); + console.log("uploading children", children); + uploadDocs = children ? children : []; + } + const dragData = new DragManager.DocumentDragData(uploadDocs); const complete = new DragManager.DragCompleteEvent(false, dragData); console.log("the drag data is", dragData); diff --git a/src/mobile/MobileInterface.tsx b/src/mobile/MobileInterface.tsx index a1ef0a5d1..e21258c62 100644 --- a/src/mobile/MobileInterface.tsx +++ b/src/mobile/MobileInterface.tsx @@ -203,7 +203,7 @@ export default class MobileInterface extends React.Component { } } - upload = async (e: React.MouseEvent) => { + upload = async (e: React.MouseEvent, asCollection: boolean) => { if (this.mainContainer) { const data = Cast(this.mainContainer.data, listSpec(Doc)); if (data) { @@ -212,7 +212,8 @@ export default class MobileInterface extends React.Component { console.log("UPLOADING DOCUMENT FROM MOBILE", uploadDoc[Id], StrCast(uploadDoc.proto!.title)); if (uploadDoc) { DocServer.Mobile.dispatchMobileDocumentUpload({ - docId: uploadDoc[Id] + docId: uploadDoc[Id], + asCollection: asCollection }); } } @@ -230,7 +231,8 @@ export default class MobileInterface extends React.Component { <button className="mobileInterface-button cancel" onClick={this.onBack} title="Back">BACK</button> </div> <div className="uploadSettings"> - <button className="mobileInterface-button" onClick={this.upload} title="Shift left">UPLOAD</button> + <button className="mobileInterface-button" onClick={e => this.upload(e, false)} title="Upload">UPLOAD</button> + <button className="mobileInterface-button" onClick={e => this.upload(e, true)} title="Upload">UPLOAD AS COLLECTION</button> </div> </div> <DocumentView diff --git a/src/server/Message.ts b/src/server/Message.ts index c23a2f0a8..6dac37a46 100644 --- a/src/server/Message.ts +++ b/src/server/Message.ts @@ -65,6 +65,7 @@ export interface UpdateMobileInkOverlayPositionContent { export interface MobileDocumentUploadContent { readonly docId: string; + readonly asCollection: boolean; } export namespace MessageStore { |