aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/documents/Documents.ts7
-rw-r--r--src/client/views/FilterPanel.tsx38
2 files changed, 44 insertions, 1 deletions
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index 5ef033e35..8cb4be72c 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -96,7 +96,7 @@ class NumInfo extends FInfo {
class StrInfo extends FInfo {
fieldType? = 'string';
values?: string[] = [];
- constructor(d: string, readOnly?: boolean, values?: string[]) {
+ constructor(d: string, readOnly?: boolean, values?: string[], filterable?:boolean) {
super(d, readOnly);
this.values = values;
}
@@ -138,9 +138,14 @@ class DateInfo extends FInfo {
fieldType? = 'date';
values?: DateField[] = [];
}
+class ListInfo extends FInfo {
+ fieldType? = 'list';
+ values?: List<any>[] = [];
+}
type BOOLt = BoolInfo | boolean;
type NUMt = NumInfo | number;
type STRt = StrInfo | string;
+type LISTt = ListInfo | List<any>;
type DOCt = DocInfo | Doc;
type DIMt = DimInfo | typeof DimUnit.Pixel | typeof DimUnit.Ratio;
type PEVt = PEInfo | 'none' | 'all';
diff --git a/src/client/views/FilterPanel.tsx b/src/client/views/FilterPanel.tsx
index b14e73208..ccd5253ff 100644
--- a/src/client/views/FilterPanel.tsx
+++ b/src/client/views/FilterPanel.tsx
@@ -117,6 +117,10 @@ export class FilterPanel extends React.Component<filterProps> {
@observable _currentActiveFilters = new ObservableMap<string, string>();
@observable _collapseReturnKeys = new Array();
+ // @computed get _currentActiveFilters(){
+ // return StrListCast(this.targetDoc.docFilters).map()
+ // }
+
// let returnKeys = [];
@computed get activeFacets() {
@@ -151,6 +155,40 @@ export class FilterPanel extends React.Component<filterProps> {
if (facetHeader === 'text' || (facetValues.rtFields / allCollectionDocs.length > 0.1 && facetValues.strings.length > 20)) {
this._chosenFacets.set(facetHeader, 'text');
} else if (facetHeader !== 'tags' && nonNumbers / facetValues.strings.length < 0.1) {
+
+ // const ranged = Doc.readDocRangeFilter(targetDoc, facetHeader);
+ // const extendedMinVal = minVal - Math.min(1, Math.floor(Math.abs(maxVal - minVal) * 0.1));
+ // const extendedMaxVal = Math.max(minVal + 1, maxVal + Math.min(1, Math.ceil(Math.abs(maxVal - minVal) * 0.05)));
+ // newFacet[newFacetField + '-min'] = ranged === undefined ? extendedMinVal : ranged[0];
+ // newFacet[newFacetField + '-max'] = ranged === undefined ? extendedMaxVal : ranged[1];
+ // const scriptText = `setDocRangeFilter(this?.target, "${facetHeader}", range)`;
+
+ // newFacet = Docs.Create.SliderDocument({
+ // title: facetHeader,
+ // system: true,
+ // target: targetDoc,
+ // _fitWidth: true,
+ // _height: 40,
+ // _stayInCollection: true,
+ // treeViewExpandedView: 'layout',
+ // _treeViewOpen: true,
+ // _forceActive: true,
+ // _overflow: 'visible',
+ // });
+ // const newFacetField = Doc.LayoutFieldKey(newFacet);
+ // const ranged = Doc.readDocRangeFilter(targetDoc, facetHeader);
+ // Doc.GetProto(newFacet).type = DocumentType.COL; // forces item to show an open/close button instead ofa checkbox
+ // const extendedMinVal = minVal - Math.min(1, Math.floor(Math.abs(maxVal - minVal) * 0.1));
+ // const extendedMaxVal = Math.max(minVal + 1, maxVal + Math.min(1, Math.ceil(Math.abs(maxVal - minVal) * 0.05)));
+ // newFacet[newFacetField + '-min'] = ranged === undefined ? extendedMinVal : ranged[0];
+ // newFacet[newFacetField + '-max'] = ranged === undefined ? extendedMaxVal : ranged[1];
+ // Doc.GetProto(newFacet)[newFacetField + '-minThumb'] = extendedMinVal;
+ // Doc.GetProto(newFacet)[newFacetField + '-maxThumb'] = extendedMaxVal;
+ // const scriptText = `setDocRangeFilter(this?.target, "${facetHeader}", range)`;
+ // newFacet.onThumbChanged = ScriptField.MakeScript(scriptText, { this: Doc.name, range: 'number' });
+ // newFacet.data = ComputedField.MakeFunction(`readNumFacetData(self.target, self, "${FilterBox.targetDocChildKey}", "${facetHeader}")`);
+
+
} else {
this._chosenFacets.set(facetHeader, 'checkbox');
}