aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/client')
-rw-r--r--src/client/util/Import & Export/ImageUtils.ts26
-rw-r--r--src/client/views/collections/CollectionView.tsx2
2 files changed, 5 insertions, 23 deletions
diff --git a/src/client/util/Import & Export/ImageUtils.ts b/src/client/util/Import & Export/ImageUtils.ts
index bf482aea8..c9abf38fa 100644
--- a/src/client/util/Import & Export/ImageUtils.ts
+++ b/src/client/util/Import & Export/ImageUtils.ts
@@ -21,31 +21,11 @@ export namespace ImageUtils {
return data !== undefined;
};
- export type Hierarchy = { [id: string]: string | Hierarchy };
-
- export const ExportHierarchyToFileSystem = async (doc: Doc): Promise<void> => {
- const hierarchy: Hierarchy = {};
- await HierarchyTraverserRecursive(doc, hierarchy);
+ export const ExportHierarchyToFileSystem = async (collection: Doc): Promise<void> => {
const a = document.createElement("a");
- a.href = Utils.prepend(`${RouteStore.imageHierarchyExport}/${JSON.stringify(hierarchy)}`);
- a.download = `Full Export of ${StrCast(doc.title)}`;
+ a.href = Utils.prepend(`${RouteStore.imageHierarchyExport}/${collection[Id]}`);
+ a.download = `Dash Export [${StrCast(collection.title)}].zip`;
a.click();
};
- const HierarchyTraverserRecursive = async (collection: Doc, hierarchy: Hierarchy) => {
- const children = await DocListCastAsync(collection.data);
- if (children) {
- const local: Hierarchy = {};
- hierarchy[collection[Id]] = local;
- for (const child of children) {
- let imageData: Opt<ImageField>;
- if (imageData = Cast(child.data, ImageField)) {
- local[child[Id]] = imageData.url.href;
- } else {
- await HierarchyTraverserRecursive(child, local);
- }
- }
- }
- };
-
} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx
index 534246326..893763840 100644
--- a/src/client/views/collections/CollectionView.tsx
+++ b/src/client/views/collections/CollectionView.tsx
@@ -18,6 +18,7 @@ import { CollectionSchemaView } from "./CollectionSchemaView";
import { CollectionStackingView } from './CollectionStackingView';
import { CollectionTreeView } from "./CollectionTreeView";
import { CollectionViewBaseChrome } from './CollectionViewChromes';
+import { ImageUtils } from '../../util/Import & Export/ImageUtils';
export const COLLECTION_BORDER_WIDTH = 2;
library.add(faTh, faTree, faSquare, faProjectDiagram, faSignature, faThList, faFingerprint, faColumns, faEllipsisV, faImage, faEye as any, faCopy);
@@ -123,6 +124,7 @@ export class CollectionView extends React.Component<FieldViewProps> {
let layoutItems: ContextMenuProps[] = existing && "subitems" in existing ? existing.subitems : [];
layoutItems.push({ description: `${this.props.Document.forceActive ? "Select" : "Force"} Contents Active`, event: () => this.props.Document.forceActive = !this.props.Document.forceActive, icon: "project-diagram" });
!existing && ContextMenu.Instance.addItem({ description: "Layout...", subitems: layoutItems, icon: "hand-point-right" });
+ ContextMenu.Instance.addItem({ description: "Export Image Hierarchy", icon: "columns", event: () => ImageUtils.ExportHierarchyToFileSystem(this.props.Document) });
}
}