aboutsummaryrefslogtreecommitdiff
path: root/src/mobile/ImageUpload.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/mobile/ImageUpload.tsx')
-rw-r--r--src/mobile/ImageUpload.tsx58
1 files changed, 26 insertions, 32 deletions
diff --git a/src/mobile/ImageUpload.tsx b/src/mobile/ImageUpload.tsx
index b66f0461d..744a45507 100644
--- a/src/mobile/ImageUpload.tsx
+++ b/src/mobile/ImageUpload.tsx
@@ -15,6 +15,8 @@ import { List } from '../fields/List';
import { Scripting } from '../client/util/Scripting';
import MainViewModal from '../client/views/MainViewModal';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
+import { MobileInterface } from './MobileInterface';
+import { CurrentUserUtils } from '../client/util/CurrentUserUtils';
export interface ImageUploadProps {
Document: Doc;
@@ -29,7 +31,7 @@ export interface ImageUploadProps {
const inputRef = React.createRef<HTMLInputElement>();
@observer
-export class Uploader extends React.Component {
+export class Uploader extends React.Component<ImageUploadProps> {
@observable error: string = "";
@observable status: string = "";
@observable nm: string = "Choose files";
@@ -39,25 +41,22 @@ export class Uploader extends React.Component {
try {
await Docs.Prototypes.initialize();
const imgPrev = document.getElementById("img_preview");
+ // Slab 1
const slab1 = document.getElementById("slab1");
- if (slab1) {
- slab1.style.opacity = "1";
- }
+ if (slab1) slab1.style.opacity = "1";
if (imgPrev) {
const files: FileList | null = inputRef.current!.files;
+ // Slab 2
const slab2 = document.getElementById("slab2");
- if (slab2) {
- slab2.style.opacity = "1";
- }
+ if (slab2) slab2.style.opacity = "1";
if (files && files.length !== 0) {
this.process = "Uploading Files";
for (let index = 0; index < files.length; ++index) {
const file = files[index];
const res = await Networking.UploadFilesToServer(file);
+ // Slab 3
const slab3 = document.getElementById("slab3");
- if (slab3) {
- slab3.style.opacity = "1";
- }
+ if (slab3) slab3.style.opacity = "1";
res.map(async ({ result }) => {
const name = file.name;
if (result instanceof Error) {
@@ -67,16 +66,15 @@ export class Uploader extends React.Component {
let doc = null;
console.log("type: " + file.type);
if (file.type === "video/mp4") {
- doc = Docs.Create.VideoDocument(path, { _nativeWidth: 200, _width: 200, title: name });
+ doc = Docs.Create.VideoDocument(path, { _nativeWidth: 400, _width: 400, title: name });
} else if (file.type === "application/pdf") {
- doc = Docs.Create.PdfDocument(path, { _width: 200, title: name });
+ doc = Docs.Create.PdfDocument(path, { _nativeWidth: 400, _width: 400, title: name });
} else {
- doc = Docs.Create.ImageDocument(path, { _nativeWidth: 200, _width: 200, title: name });
+ doc = Docs.Create.ImageDocument(path, { _nativeWidth: 400, _width: 400, title: name });
}
+ // Slab 4
const slab4 = document.getElementById("slab4");
- if (slab4) {
- slab4.style.opacity = "1";
- }
+ if (slab4) slab4.style.opacity = "1";
const res = await rp.get(Utils.prepend("/getUserDocumentId"));
if (!res) {
throw new Error("No user id returned");
@@ -84,30 +82,23 @@ export class Uploader extends React.Component {
const field = await DocServer.GetRefField(res);
let pending: Opt<Doc>;
if (field instanceof Doc) {
- pending = await Cast(field.rightSidebarCollection, Doc);
+ const parent = await Cast(this.props.Document.data, listSpec(Doc));
+ const u = CurrentUserUtils.setupMobileUpload(this.props.Document);
+ if (parent && !parent.includes(u)) parent.push(u);
+ pending = await Cast(u, Doc);
}
if (pending) {
const data = await Cast(pending.data, listSpec(Doc));
- if (data) {
- data.push(doc);
- } else {
- pending.data = new List([doc]);
- }
+ if (data) data.push(doc);
+ else pending.data = new List([doc]);
this.status = "finished";
const slab5 = document.getElementById("slab5");
- if (slab5) {
- slab5.style.opacity = "1";
- }
+ if (slab5) slab5.style.opacity = "1";
this.process = "File " + (index + 1).toString() + " Uploaded";
const slab6 = document.getElementById("slab6");
- if (slab6) {
- slab6.style.opacity = "1";
- }
+ if (slab6) slab6.style.opacity = "1";
const slab7 = document.getElementById("slab7");
- if (slab7) {
- slab7.style.opacity = "1";
- }
-
+ if (slab7) slab7.style.opacity = "1";
}
});
}
@@ -178,6 +169,9 @@ export class Uploader extends React.Component {
private get uploadInterface() {
return (
<div className="imgupload_cont">
+ <div className="closeUpload" onClick={MobileInterface.Instance.toggleUpload}>
+ <FontAwesomeIcon icon="window-close" size={"lg"} />
+ </div>
<input type="file" accept="application/pdf, video/*,image/*" className="inputFile" id="input_image_file" ref={inputRef} onChange={this.inputLabel} multiple></input>
<label className="file" id="label" htmlFor="input_image_file">{this.nm}</label>
<div className="upload_label" onClick={this.onClick}>