aboutsummaryrefslogtreecommitdiff
path: root/src/client/views
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views')
-rw-r--r--src/client/views/collections/CollectionPivotView.tsx30
-rw-r--r--src/client/views/collections/CollectionSubView.tsx10
-rw-r--r--src/client/views/collections/CollectionTreeView.tsx2
3 files changed, 32 insertions, 10 deletions
diff --git a/src/client/views/collections/CollectionPivotView.tsx b/src/client/views/collections/CollectionPivotView.tsx
index 546fa3744..f31f1aba6 100644
--- a/src/client/views/collections/CollectionPivotView.tsx
+++ b/src/client/views/collections/CollectionPivotView.tsx
@@ -9,7 +9,7 @@ import { CollectionFreeFormView } from "./collectionFreeForm/CollectionFreeFormV
import { CollectionTreeView } from "./CollectionTreeView";
import { Cast, StrCast, NumCast } from "../../../new_fields/Types";
import { Docs } from "../../documents/Documents";
-import { ScriptField } from "../../../new_fields/ScriptField";
+import { ScriptField, ComputedField } from "../../../new_fields/ScriptField";
import { CompileScript, Scripting } from "../../util/Scripting";
import { anchorPoints, Flyout } from "../TemplateMenu";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
@@ -25,7 +25,7 @@ export class CollectionPivotView extends CollectionSubView(doc => doc) {
}
componentDidMount() {
this.props.Document.freeformLayoutEngine = "pivot";
- if (true || !this.props.Document.facetCollection) {
+ if (!this.props.Document.facetCollection) {
const facetCollection = Docs.Create.FreeformDocument([], { title: "facetFilters", yMargin: 0, treeViewHideTitle: true });
facetCollection.target = this.props.Document;
@@ -38,7 +38,6 @@ export class CollectionPivotView extends CollectionSubView(doc => doc) {
if (script.compiled) {
facetCollection.onCheckedClick = new ScriptField(script);
}
-
this._narrativeDisposer = reaction(() => this.props.Document.childDetailed,
(childDetailed) =>
DocCastAsync(childDetailed).then(childDetailed => {
@@ -78,17 +77,32 @@ export class CollectionPivotView extends CollectionSubView(doc => doc) {
/**
* Responds to clicking the check box in the flyout menu
*/
- facetClick = (facet: string) => {
- const facetCollection = this.props.Document.facetCollection;
+ facetClick = (facetHeader: string) => {
+ const { Document, fieldKey } = this.props;
+ const facetCollection = Document.facetCollection;
if (facetCollection instanceof Doc) {
- const found = DocListCast(facetCollection.data).findIndex(doc => doc.title === facet);
+ const found = DocListCast(facetCollection.data).findIndex(doc => doc.title === facetHeader);
if (found !== -1) {
//Doc.RemoveDocFromList(facetCollection, "data", DocListCast(facetCollection.data)[found]);
(facetCollection.data as List<Doc>).splice(found, 1);
} else {
- const newFacet = Docs.Create.FreeformDocument([], { title: facet, treeViewOpen: true, isFacetFilter: true });
+ const newFacet = Docs.Create.FreeformDocument([], { title: facetHeader, treeViewOpen: true, isFacetFilter: true });
Doc.AddDocToList(facetCollection, "data", newFacet);
- newFacet.data = ScriptField.MakeFunction("readFacetData()", { params: {} });
+ const { dataDoc } = this;
+ const capturedVariables = {
+ layoutDoc: Document,
+ dataDoc,
+ dataKey: fieldKey,
+ facetHeader
+ };
+ const params = {
+ layoutDoc: Doc.name,
+ dataDoc: Doc.name,
+ dataKey: "string",
+ facetHeader: "string"
+ };
+ newFacet.container = dataDoc;
+ newFacet.data = ComputedField.MakeFunction("readFacetData(layoutDoc, dataDoc, dataKey, facetHeader)", params, capturedVariables);
}
}
}
diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx
index 5f4ee3669..9357b0507 100644
--- a/src/client/views/collections/CollectionSubView.tsx
+++ b/src/client/views/collections/CollectionSubView.tsx
@@ -90,7 +90,15 @@ export function CollectionSubView<T>(schemaCtor: (doc: Doc) => T) {
// to its children which may be templates.
// If 'annotationField' is specified, then all children exist on that field of the extension document, otherwise, they exist directly on the data document under 'fieldKey'
@computed get dataField() {
- return this.props.annotationsKey ? (this.extensionDoc ? this.extensionDoc[this.props.annotationsKey] : undefined) : this.dataDoc[this.props.fieldKey];
+ const { annotationsKey, fieldKey } = this.props;
+ const { extensionDoc, dataDoc } = this;
+ if (annotationsKey) {
+ if (extensionDoc) {
+ return extensionDoc[annotationsKey];
+ }
+ return undefined;
+ }
+ return dataDoc[fieldKey];
}
get childLayoutPairs(): { layout: Doc; data: Doc; }[] {
diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx
index 2e9f0379c..ffaad2ddd 100644
--- a/src/client/views/collections/CollectionTreeView.tsx
+++ b/src/client/views/collections/CollectionTreeView.tsx
@@ -377,7 +377,7 @@ class TreeView extends React.Component<TreeViewProps> {
ScriptCast(this.props.onCheckedClick).script.run({
this: this.props.document.isTemplateField && this.props.dataDoc ? this.props.dataDoc : this.props.document,
heading: this.props.containingCollection.title,
- checked: this.props.document.treeViewChecked === "check" ? false : this.props.document.treeViewChecked === "x" ? "x" : "none",
+ checked: this.props.document.treeViewChecked === "check" ? "x" : this.props.document.treeViewChecked === "x" ? undefined : "check",
context: this.props.treeViewId,
}, console.log);
} else {