aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-09-09 20:47:34 -0400
committerSam Wilkins <samwilkins333@gmail.com>2019-09-09 20:47:34 -0400
commitb24c475d8cd36af860fc374b0c5621b0d096be1d (patch)
treee046019a983133a5abb38db08d2b9679adc7a18f /src/client
parent0c987a119fc6baa344cd6a8d229556c02af64898 (diff)
nearly finished transferring images between text notes and google docs
Diffstat (limited to 'src/client')
-rw-r--r--src/client/apis/google_docs/GooglePhotosClientUtils.ts23
-rw-r--r--src/client/util/Import & Export/DirectoryImportBox.tsx2
-rw-r--r--src/client/views/MainView.tsx6
-rw-r--r--src/client/views/collections/CollectionSubView.tsx2
-rw-r--r--src/client/views/nodes/DocumentView.tsx2
5 files changed, 22 insertions, 13 deletions
diff --git a/src/client/apis/google_docs/GooglePhotosClientUtils.ts b/src/client/apis/google_docs/GooglePhotosClientUtils.ts
index 5f5b39b14..fddcf3aa5 100644
--- a/src/client/apis/google_docs/GooglePhotosClientUtils.ts
+++ b/src/client/apis/google_docs/GooglePhotosClientUtils.ts
@@ -51,17 +51,26 @@ export namespace GooglePhotosClientUtils {
description: string;
}
- export const UploadImageDocuments = async (sources: Doc[], album?: AlbumReference, descriptionKey = "caption") => {
+ export const UploadImages = async (sources: (Doc | string)[], album?: AlbumReference, descriptionKey = "caption") => {
if (album && "title" in album) {
album = await (await endpoint()).albums.create(album.title);
}
const media: MediaInput[] = [];
- sources.forEach(document => {
- const data = Cast(Doc.GetProto(document).data, ImageField);
- data && media.push({
- url: data.url.href,
- description: parseDescription(document, descriptionKey),
- });
+ sources.forEach(source => {
+ let url: string;
+ let description: string;
+ if (source instanceof Doc) {
+ const data = Cast(Doc.GetProto(source).data, ImageField);
+ if (!data) {
+ return;
+ }
+ url = data.url.href;
+ description = parseDescription(source, descriptionKey);
+ } else {
+ url = source;
+ description = Utils.GenerateGuid();
+ }
+ media.push({ url, description });
});
if (media.length) {
return PostToServer(RouteStore.googlePhotosMediaUpload, { media, album });
diff --git a/src/client/util/Import & Export/DirectoryImportBox.tsx b/src/client/util/Import & Export/DirectoryImportBox.tsx
index 7693a388f..a19fd39b7 100644
--- a/src/client/util/Import & Export/DirectoryImportBox.tsx
+++ b/src/client/util/Import & Export/DirectoryImportBox.tsx
@@ -117,7 +117,7 @@ export default class DirectoryImportBox extends React.Component<FieldViewProps>
console.log(`(${this.quota - this.remaining}/${this.quota}) ${upload.name}`);
}));
- await GooglePhotosClientUtils.UploadImageDocuments(docs, { title: directory });
+ await GooglePhotosClientUtils.UploadImages(docs, { title: directory });
console.log("Finished upload!");
for (let i = 0; i < docs.length; i++) {
diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx
index 326c13424..0c0ed9072 100644
--- a/src/client/views/MainView.tsx
+++ b/src/client/views/MainView.tsx
@@ -155,7 +155,7 @@ export class MainView extends React.Component {
doc.caption = "Well isn't this a nice cat image!";
let photos = await GooglePhotosClientUtils.endpoint();
let albumId = (await photos.albums.list(50)).albums.filter((album: any) => album.title === "This is a generically created album!")[0].id;
- console.log(await GooglePhotosClientUtils.UploadImageDocuments([doc], { id: albumId }));
+ console.log(await GooglePhotosClientUtils.UploadImages([doc], { id: albumId }));
}
componentWillUnMount() {
@@ -470,7 +470,7 @@ export class MainView extends React.Component {
// let youtubeurl = "https://www.youtube.com/embed/TqcApsGRzWw";
// let addYoutubeSearcher = action(() => Docs.Create.YoutubeDocument(youtubeurl, { width: 600, height: 600, title: "youtube search" }));
- let googlePhotosSearch = () => GooglePhotosClientUtils.CollectionFromSearch(Docs.Create.MasonryDocument, { included: [GooglePhotosClientUtils.ContentCategories.LANDSCAPES] });
+ // let googlePhotosSearch = () => GooglePhotosClientUtils.CollectionFromSearch(Docs.Create.MasonryDocument, { included: [GooglePhotosClientUtils.ContentCategories.LANDSCAPES] });
let btns: [React.RefObject<HTMLDivElement>, IconName, string, () => Doc | Promise<Doc>][] = [
[React.createRef<HTMLDivElement>(), "object-group", "Add Collection", addColNode],
@@ -478,7 +478,7 @@ export class MainView extends React.Component {
[React.createRef<HTMLDivElement>(), "globe-asia", "Add Website", addWebNode],
[React.createRef<HTMLDivElement>(), "bolt", "Add Button", addButtonDocument],
[React.createRef<HTMLDivElement>(), "file", "Add Document Dragger", addDragboxNode],
- [React.createRef<HTMLDivElement>(), "object-group", "Test Google Photos Search", googlePhotosSearch],
+ // [React.createRef<HTMLDivElement>(), "object-group", "Test Google Photos Search", googlePhotosSearch],
[React.createRef<HTMLDivElement>(), "cloud-upload-alt", "Import Directory", addImportCollectionNode], //remove at some point in favor of addImportCollectionNode
//[React.createRef<HTMLDivElement>(), "play", "Add Youtube Searcher", addYoutubeSearcher],
];
diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx
index 99e5ab7b3..5fc4f36a7 100644
--- a/src/client/views/collections/CollectionSubView.tsx
+++ b/src/client/views/collections/CollectionSubView.tsx
@@ -253,7 +253,7 @@ export function CollectionSubView<T>(schemaCtor: (doc: Doc) => T) {
}).then(async (res: Response) => {
(await res.json()).map(action((file: any) => {
let full = { ...options, nativeWidth: type.indexOf("video") !== -1 ? 600 : 300, width: 300, title: dropFileName };
- let path = Utils.prepend(file);
+ let path = Utils.prepend(file.path);
Docs.Get.DocumentFromType(type, path, full).then(doc => doc && this.props.addDocument(doc));
}));
});
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index 4033ffd9c..cb9346a8b 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -591,7 +591,7 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
subitems.push({ description: "Open Fields", event: this.fieldsClicked, icon: "layer-group" });
cm.addItem({ description: "Open...", subitems: subitems, icon: "external-link-alt" });
if (Cast(this.props.Document.data, ImageField)) {
- cm.addItem({ description: "Export to Google Photos", event: () => GooglePhotosClientUtils.UploadImageDocuments([this.props.Document]), icon: "caret-square-right" });
+ cm.addItem({ description: "Export to Google Photos", event: () => GooglePhotosClientUtils.UploadImages([this.props.Document]), icon: "caret-square-right" });
}
let existingMake = ContextMenu.Instance.findByDescription("Make...");
let makes: ContextMenuProps[] = existingMake && "subitems" in existingMake ? existingMake.subitems : [];