diff --git a/components/VFBMain.js b/components/VFBMain.js
index 56ebdda25..09c393466 100644
--- a/components/VFBMain.js
+++ b/components/VFBMain.js
@@ -33,6 +33,7 @@ class VFBMain extends React.Component {
constructor (props) {
super(props);
+ this.datasourceConfiguration = require('./configuration/VFBMain/searchConfiguration').datasourceConfiguration;
this.state = {
canvasAvailable: false,
@@ -54,7 +55,8 @@ class VFBMain extends React.Component {
UIUpdated: true,
wireframeVisible: false,
downloadContentsVisible : true,
- uploaderContentsVisible : true
+ uploaderContentsVisible : true,
+ searchDataSourceConfiguration : this.datasourceConfiguration
};
this.addVfbId = this.addVfbId.bind(this);
@@ -72,6 +74,7 @@ class VFBMain extends React.Component {
this.handlerInstanceUpdate = this.handlerInstanceUpdate.bind(this);
this.handleSceneAndTermInfoCallback = this.handleSceneAndTermInfoCallback.bind(this);
this.instancesFromDifferentTemplates = this.instancesFromDifferentTemplates.bind(this);
+ this.filterSelection = this.filterSelection.bind(this);
this.vfbLoadBuffer = [];
this.tutorialRender = undefined;
@@ -100,7 +103,6 @@ class VFBMain extends React.Component {
this.searchStyle = require('./configuration/VFBMain/searchConfiguration').searchStyle;
this.searchConfiguration = require('./configuration/VFBMain/searchConfiguration').searchConfiguration;
- this.datasourceConfiguration = require('./configuration/VFBMain/searchConfiguration').datasourceConfiguration;
this.queryResultsColMeta = require('./configuration/VFBMain/queryBuilderConfiguration').queryResultsColMeta;
this.queryResultsColumns = require('./configuration/VFBMain/queryBuilderConfiguration').queryResultsColumns;
@@ -1639,6 +1641,45 @@ class VFBMain extends React.Component {
}
}
}
+
+ lookupFilter (item, bq, filterValue){
+ let lookup = "facets_annotation:" + item.key;
+ let re = new RegExp(lookup, 'g');
+ let found = bq.match(re);
+ if ( found ){
+ return bq.replace(found[0] + filterValue, "");
+ }
+ return bq;
+ }
+
+ filterSelection (item) {
+ let bq = this.state.searchDataSourceConfiguration.query_settings.bq;
+
+ switch (item.enabled) {
+ case "disabled":
+ bq = this.lookupFilter(item, bq, this.searchConfiguration.filter_positive);
+ bq = this.lookupFilter(item, bq, this.searchConfiguration.filter_negative);
+ break;
+ case "positive":
+ bq = this.lookupFilter(item, bq, this.searchConfiguration.filter_negative);
+ bq += " facets_annotation:" + item.key + "^100";
+ break;
+ case "negative":
+ bq = this.lookupFilter(item, bq, this.searchConfiguration.filter_positive);
+ bq += " facets_annotation:" + item.key + "^0.001";
+ break;
+ default:
+ break;
+ }
+ let updatedConfiguration = Object.assign(this.state.searchDataSourceConfiguration, {
+ query_settings : {
+ ...this.state.searchDataSourceConfiguration.query_settings,
+ bq : bq
+ }
+ });
+ this.setState({ searchDataSourceConfiguration : updatedConfiguration })
+
+ }
render () {
if ((this.state.tutorialWidgetVisible == true) && (this.tutorialRender == undefined)) {
@@ -1759,9 +1800,10 @@ class VFBMain extends React.Component {
+ datasourceConfiguration={this.state.searchDataSourceConfiguration} />
diff --git a/components/configuration/VFBMain/searchConfiguration.js b/components/configuration/VFBMain/searchConfiguration.js
index 859ef3327..cbc7189bd 100644
--- a/components/configuration/VFBMain/searchConfiguration.js
+++ b/components/configuration/VFBMain/searchConfiguration.js
@@ -60,7 +60,7 @@ var searchStyle = {
singleResult: {
"color": "white",
"fontSize": "18px",
-
+ "whiteSpace" : "normal",
":hover": {
"color": "#11bffe",
"background-color": "#252323",
@@ -107,9 +107,12 @@ var searchConfiguration = {
"resultsMapping":
{
"name": "label",
- "id": "short_form"
+ "id": "short_form",
+ "labels" : "facets_annotation"
},
"filters_expanded": true,
+ "filter_positive" : "^100",
+ "filter_negative" : "^0.001",
"filters": [
{
"key": "facets_annotation",