aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/collections/CollectionTreeView.tsx
diff options
context:
space:
mode:
authorbob <bcz@cs.brown.edu>2020-01-22 12:08:20 -0500
committerbob <bcz@cs.brown.edu>2020-01-22 12:08:20 -0500
commit5a6f6868dc25b2b24c6c7f4a7bc25670e6a35f47 (patch)
tree31cf7400f701dd215c6004a02a59bb72fb2ea3d0 /src/client/views/collections/CollectionTreeView.tsx
parent17c4ca6f517ab786f3c6b269c95a9b5ae4b0ff9a (diff)
fixed template/scripting problem. added collectionDoc parameter for onClick scripts. made buxton layout update hero image on click.
Diffstat (limited to 'src/client/views/collections/CollectionTreeView.tsx')
-rw-r--r--src/client/views/collections/CollectionTreeView.tsx13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx
index 48b5d91e9..2433cc40e 100644
--- a/src/client/views/collections/CollectionTreeView.tsx
+++ b/src/client/views/collections/CollectionTreeView.tsx
@@ -633,19 +633,20 @@ export class CollectionTreeView extends CollectionSubView(Document) {
}
ContextMenu.Instance.addItem({
description: "Buxton Layout", icon: "eye", event: () => {
- const { TextDocument, ImageDocument } = Docs.Create;
+ const { TextDocument, ImageDocument, MulticolumnDocument } = Docs.Create;
const { Document } = this.props;
const fallback = "http://www.cs.brown.edu/~bcz/face.gif";
+ const imageRack = MulticolumnDocument([], { title: "data", height: 100 });
const wrapper = Docs.Create.StackingDocument([
ImageDocument(fallback, { title: "hero" }),
+ imageRack,
...["short_description", "year", "company", "degrees_of_freedom"].map(key => TextDocument({ title: key }))
- ], { autoHeight: true, chromeStatus: "disabled" });
- wrapper.disableLOD = true;
- wrapper.isTemplateDoc = makeTemplate(wrapper, true);
+ ], { autoHeight: true, chromeStatus: "disabled", disableLOD: true, title: "detailed layout stack" });
+ wrapper.isTemplateDoc = makeTemplate(wrapper);
+ imageRack.onChildClick = ScriptField.MakeFunction(`containingCollection.resolvedDataDoc.hero = copyField(this.data)`, { containingCollection: Doc.name });
const cardLayout = ImageDocument(fallback);
- const proto = Doc.GetProto(cardLayout);
- proto.layout = ImageBox.LayoutString("hero");
+ cardLayout.proto!.layout = ImageBox.LayoutString("hero");
cardLayout.showTitle = "title";
cardLayout.showTitleHover = "titlehover";
cardLayout.isTemplateField = true; // make this document act like a template field