aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreperelm2 <emily_perelman@brown.edu>2023-07-31 12:58:32 -0400
committereperelm2 <emily_perelman@brown.edu>2023-07-31 12:58:32 -0400
commitaf5377f0e5bc69488c1620ae72b960f2a0f5d8f9 (patch)
treef1d3ad88c89f3328b9dbec2ca8bfc794511aad33
parentad9e20dbd54658a891e6f7180d65ebf456665a15 (diff)
filters - fixed bug on reload
-rw-r--r--package-lock.json91
-rw-r--r--src/client/views/FilterPanel.tsx47
2 files changed, 118 insertions, 20 deletions
diff --git a/package-lock.json b/package-lock.json
index 082531ea0..e08568816 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6902,12 +6902,97 @@
"strip-ansi": "^7.0.1"
}
},
+ "string-width-cjs": {
+ "version": "npm:string-width@4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
+ }
+ },
"strip-ansi": {
"version": "7.1.0",
"bundled": true,
"requires": {
"ansi-regex": "^6.0.1"
}
+ },
+ "strip-ansi-cjs": {
+ "version": "npm:strip-ansi@6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ }
+ }
+ },
+ "wrap-ansi-cjs": {
+ "version": "npm:wrap-ansi@7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
+ }
}
}
},
@@ -8412,7 +8497,7 @@
}
},
"string-width-cjs": {
- "version": "npm:string-width@4.2.3",
+ "version": "npm:string-width-cjs@4.2.3",
"bundled": true,
"requires": {
"emoji-regex": "^8.0.0",
@@ -8435,7 +8520,7 @@
}
},
"strip-ansi-cjs": {
- "version": "npm:strip-ansi@6.0.1",
+ "version": "npm:strip-ansi-cjs@6.0.1",
"bundled": true,
"requires": {
"ansi-regex": "^5.0.1"
@@ -8594,7 +8679,7 @@
}
},
"wrap-ansi-cjs": {
- "version": "npm:wrap-ansi@7.0.0",
+ "version": "npm:wrap-ansi-cjs@7.0.0",
"bundled": true,
"requires": {
"ansi-styles": "^4.0.0",
diff --git a/src/client/views/FilterPanel.tsx b/src/client/views/FilterPanel.tsx
index ccd5253ff..f85052ff2 100644
--- a/src/client/views/FilterPanel.tsx
+++ b/src/client/views/FilterPanel.tsx
@@ -89,6 +89,7 @@ export class FilterPanel extends React.Component<filterProps> {
newarray = [];
subDocs.forEach(t => {
const facetVal = t[facetKey];
+ // console.log("facetVal " + facetVal)
if (facetVal instanceof RichTextField || typeof facetVal === 'string') rtFields++;
facetVal !== undefined && valueSet.add(Field.toString(facetVal as Field));
(facetVal === true || facetVal == false) && valueSet.add(Field.toString(!facetVal));
@@ -102,6 +103,7 @@ export class FilterPanel extends React.Component<filterProps> {
}
// }
// });
+
return { strings: Array.from(valueSet.keys()), rtFields };
}
@@ -114,14 +116,20 @@ export class FilterPanel extends React.Component<filterProps> {
@observable _chosenFacets = new ObservableMap<string, 'text' | 'checkbox' | 'slider' | 'range'>();
@observable _chosenFacetsCollapse = new ObservableMap<string, boolean>();
- @observable _currentActiveFilters = new ObservableMap<string, string>();
@observable _collapseReturnKeys = new Array();
- // @computed get _currentActiveFilters(){
- // return StrListCast(this.targetDoc.docFilters).map()
- // }
- // let returnKeys = [];
+ // this computed function gets the active filters and maps them to their headers
+
+ @computed get currentActiveFilterz(){
+ const filters = new Map<string, string>();
+ //this.targetDoc.docFilters
+ StrListCast(this.targetDoc?._childFilters).map(filter => filters.set(filter.split(Doc.FilterSep)[1] ,filter.split(Doc.FilterSep)[0] ))
+ console.log("what is wrong with filters " +filters )
+ return filters
+ }
+
+ // let returnKeys = [];
@computed get activeFacets() {
// console.log("chosen collpase " + this._chosenFacetsCollapse)
@@ -202,11 +210,11 @@ export class FilterPanel extends React.Component<filterProps> {
this._collapseReturnKeys.splice(0)
for (var key of this.facetValues(facetHeader)){
- console.log("key : " + key )
- if (this._currentActiveFilters.get(key)){
+ // console.log("key : " + key )
+ if (this.currentActiveFilterz.get(key)){
+ // console.log("WEREEE HERHEHHHHEHHHHEEE")
this._collapseReturnKeys.push(key)
}}
- // return "hello"
return (<div className = " filterbox-collpasedAndActive">
@@ -273,12 +281,21 @@ export class FilterPanel extends React.Component<filterProps> {
<div className = "filterBox-facetHeader-Header"> </div>
{facetHeader.charAt(0).toUpperCase() + facetHeader.slice(1)}
- {/* <div className = "filterBox-facetHeader-collapse"> */}
<div className = "filterBox-facetHeader-collapse"
onClick = {action((e) => {
+
+ for (const [key, value] of this.currentActiveFilterz) {
+
+ console.log("NEW KEY " + key + "NEW VAL " + value);
+
+ }
+ console.log("this is gather field values : " + this.gatherFieldValues(this.targetDocChildren, facetHeader))
+ console.log("this is current facets: " + this.currentFacets)
+
+ console.log("this is facet Header " + facetHeader + ". this is the get " + this.activeFacets.get(facetHeader))
const collapseBoolValue = this._chosenFacetsCollapse.get(facetHeader)
this._chosenFacetsCollapse.set(facetHeader, !collapseBoolValue )})}>
-
+
{this._chosenFacetsCollapse.get(facetHeader) ? <AiOutlinePlusSquare/> : <AiOutlineMinusSquare/> }
</div>
@@ -286,9 +303,8 @@ export class FilterPanel extends React.Component<filterProps> {
<div className='filterBox-facetHeader-remove'
onClick = {action((e) => {
for (var key of this.facetValues(facetHeader)){
- if (this._currentActiveFilters.get(key)){
+ if (this.currentActiveFilterz.get(key)){
Doc.setDocFilter(this.targetDoc, facetHeader, key, 'remove')
- this._currentActiveFilters.delete(key)
}}
this.activeFacets.delete(facetHeader)
@@ -332,6 +348,7 @@ export class FilterPanel extends React.Component<filterProps> {
case 'checkbox':
return this.facetValues(facetHeader).map(fval => {
+
const facetValue = fval;
return (
<div>
@@ -345,10 +362,7 @@ export class FilterPanel extends React.Component<filterProps> {
}
type={type}
onChange={undoable(e => Doc.setDocFilter(this.targetDoc, facetHeader, fval, e.target.checked ? 'check' : 'remove'), 'set filter')}
- onClick={undoable (e =>
- e.target.checked ? this._currentActiveFilters.set(fval, facetHeader) : this._currentActiveFilters.delete(fval) , 'set filter'
- ) }
-
+
/>
{facetValue}
@@ -360,4 +374,3 @@ export class FilterPanel extends React.Component<filterProps> {
}
-// NEED TO LEARN HOW TO RESET FILTERS WHEN WEBPAGE IS RELOADED \ No newline at end of file