From 03adc5f7ed70f2ecd151336dbde526dac9b7737e Mon Sep 17 00:00:00 2001 From: usodhi <61431818+usodhi@users.noreply.github.com> Date: Tue, 6 Apr 2021 00:02:08 -0400 Subject: dashboard filters end when dashboard not selected + current collection option doesn't display if not collection + changed filterDocs parameter --- src/client/views/collections/CollectionSubView.tsx | 12 ++++++------ src/client/views/nodes/FilterBox.tsx | 20 +++++++++++++++++--- 2 files changed, 23 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx index c17adad32..57e1a50bb 100644 --- a/src/client/views/collections/CollectionSubView.tsx +++ b/src/client/views/collections/CollectionSubView.tsx @@ -82,7 +82,7 @@ export function CollectionSubView(schemaCtor: (doc: Doc) => T, moreProps?: return Cast(this.dataField, listSpec(Doc)); } docFilters = () => { - return [...this.props.docFilters(), ...Cast(FilterBox._filterScope === "Current Collection" ? this.props.Document?._docFilters : CurrentUserUtils.ActiveDashboard?._docFilters, listSpec("string"), [])]; + return [...this.props.docFilters(), ...Cast(this.props.Document?._docFilters, listSpec("string"), [])]; } docRangeFilters = () => { return [...this.props.docRangeFilters(), ...Cast(this.props.Document._docRangeFilters, listSpec("string"), [])]; @@ -115,9 +115,9 @@ export function CollectionSubView(schemaCtor: (doc: Doc) => T, moreProps?: } // console.log(CurrentUserUtils.ActiveDashboard._docFilters); - if (!this.props.Document._docFilters && this.props.Document.currentFilter) { - (this.props.Document.currentFilter as Doc).filterBoolean = (this.props.ContainingCollectionDoc?.currentFilter as Doc)?.filterBoolean; - } + // if (!this.props.Document._docFilters && this.props.Document.currentFilter) { + // (this.props.Document.currentFilter as Doc).filterBoolean = (this.props.ContainingCollectionDoc?.currentFilter as Doc)?.filterBoolean; + // } const docsforFilter: Doc[] = []; childDocs.forEach((d) => { // if (DocUtils.Excluded(d, docFilters)) return; @@ -129,13 +129,13 @@ export function CollectionSubView(schemaCtor: (doc: Doc) => T, moreProps?: let subDocs = DocListCast(data); if (subDocs.length > 0) { let newarray: Doc[] = []; - notFiltered = notFiltered || (!searchDocs.length && DocUtils.FilterDocs(subDocs, docFilters, docRangeFilters, viewSpecScript, this.props.Document).length); + notFiltered = notFiltered || (!searchDocs.length && DocUtils.FilterDocs(subDocs, docFilters, docRangeFilters, viewSpecScript, d).length); while (subDocs.length > 0 && !notFiltered) { newarray = []; subDocs.forEach((t) => { const fieldKey = Doc.LayoutFieldKey(t); const annos = !Field.toString(Doc.LayoutField(t) as Field).includes("CollectionView"); - notFiltered = notFiltered || ((!searchDocs.length || searchDocs.includes(t)) && ((!docFilters.length && !docRangeFilters.length) || DocUtils.FilterDocs([t], docFilters, docRangeFilters, viewSpecScript, this.props.Document).length)); + notFiltered = notFiltered || ((!searchDocs.length || searchDocs.includes(t)) && ((!docFilters.length && !docRangeFilters.length) || DocUtils.FilterDocs([t], docFilters, docRangeFilters, viewSpecScript, d).length)); DocListCast(t[annos ? fieldKey + "-annotations" : fieldKey]).forEach((newdoc) => newarray.push(newdoc)); }); subDocs = newarray; diff --git a/src/client/views/nodes/FilterBox.tsx b/src/client/views/nodes/FilterBox.tsx index 501d02dc4..ae5b79aec 100644 --- a/src/client/views/nodes/FilterBox.tsx +++ b/src/client/views/nodes/FilterBox.tsx @@ -170,7 +170,6 @@ export class FilterBox extends ViewBoxBaseComponent { - console.log("remove filter"); const targetDoc = FilterBox.targetDoc; const filterDoc = targetDoc.currentFilter as Doc; const attributes = DocListCast(filterDoc["data"]); @@ -282,10 +281,22 @@ export class FilterBox extends ViewBoxBaseComponent { + if (FilterBox._filterScope === "Current Dashboard" && e.currentTarget.value === "Current Collection") { + const temp = CurrentUserUtils.ActiveDashboard._docFilters; + CurrentUserUtils.ActiveDashboard._docFilters = new List(); + (CurrentUserUtils.ActiveDashboard.currentFilter as Doc)._docFilterList = temp; + } + else if (FilterBox._filterScope === "Current Collection" && e.currentTarget.value === "Current Dashboard") { + const temp = (CurrentUserUtils.ActiveDashboard.currentFilter as Doc)._docFilterList; + (CurrentUserUtils.ActiveDashboard.currentFilter as Doc)._docFilterList = undefined; + CurrentUserUtils.ActiveDashboard._docFilters = temp; + } FilterBox._filterScope = e.currentTarget.value; } @@ -393,7 +404,10 @@ export class FilterBox extends ViewBoxBaseComponent {/* */} - + {SelectionManager.Views()?.[0].Document.type === DocumentType.COL ? + + : (null)} + -- cgit v1.2.3-70-g09d2