diff --git a/examples/simple/search/index.html b/examples/simple/search/index.html
index c82f8c9..c9360f2 100644
--- a/examples/simple/search/index.html
+++ b/examples/simple/search/index.html
@@ -1,5 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gulpfile.webpack.js b/gulpfile.webpack.js
index 1491700..aef17ad 100644
--- a/gulpfile.webpack.js
+++ b/gulpfile.webpack.js
@@ -25,11 +25,6 @@ function getWebpackConf(_path) {
]
},
},
- {
- test: /\.js$/,
- loader: "eslint-loader",
- exclude: [ /node_modules/, /.test.js$/ ]
- },
{
test: /\.scss$/,
exclude: /node_modules/,
diff --git a/src/library/Services/Autocompleter.js b/src/library/Services/Autocompleter.js
index 7b0524e..cd7d1c3 100644
--- a/src/library/Services/Autocompleter.js
+++ b/src/library/Services/Autocompleter.js
@@ -16,7 +16,7 @@ class Autocompleter extends Requester {
this._mutators = []; // disable Requester mutator
this._acMutators = [];
- this.searcher = new Searcher({ siteId: defaultParams.pubId });
+ this.searcher = new Searcher({ siteId: defaultParams.pubId}, { apiEndpoint: '/api/search/autocomplete.json' });
}
mutated(cb) {
@@ -42,7 +42,11 @@ class Autocompleter extends Requester {
});
} else {
super.request(params).then(acData => {
- if(acData.terms && acData.terms.length) {
+
+ // TODO: Potential spot for autocomplete gate
+
+ // if(true || (acData.terms && acData.terms.length)) {
+ /*
acData.terms = (acData.terms || [])
.map(suggestion => suggestion.replace(/<\/?em>/g, ''))
.map(term => {
@@ -62,15 +66,22 @@ class Autocompleter extends Requester {
return ret;
});
+ */
- let query = acData.terms[0].raw;
+ acData.terms = []; // ignore Autocomplete query suggestions
+
+ // let query = (acData.terms && acData.terms.length > 0) ? acData.terms[0].raw : params.query;
+ let query = params.query;
this.searcher.request({ q: query }).then(searchData => {
cb(Object.assign({}, searchData, { terms: acData.terms }), Object.assign({}, params, { q: query }));
}, () => deferred.reject());
+
+ /*
} else {
deferred.reject();
}
+ */
});
}
diff --git a/src/library/Services/Searcher.js b/src/library/Services/Searcher.js
index 2e4dcae..6af8807 100644
--- a/src/library/Services/Searcher.js
+++ b/src/library/Services/Searcher.js
@@ -7,6 +7,7 @@ class Searcher extends Requester {
constructor(defaultParams, config) {
defaultParams = Object.assign({}, {
domain: encodeURIComponent(window.location.href),
+ experimentalMode: 'discrete-loose',
resultsFormat: 'native'
}, defaultParams || {});
diff --git a/widgets/simple/autocomplete/src/Components/Autocomplete.js b/widgets/simple/autocomplete/src/Components/Autocomplete.js
index f6d2f79..93f61e1 100644
--- a/widgets/simple/autocomplete/src/Components/Autocomplete.js
+++ b/widgets/simple/autocomplete/src/Components/Autocomplete.js
@@ -11,6 +11,7 @@ let Autocomplete = {
});
let search = (chunk, keep) => {
+
autocompleter.request(chunk).then(acData => {
state(Object.assign(acData, keep || {}, { chunk }));
}, () => {
@@ -64,7 +65,11 @@ let Autocomplete = {
};
this.isVisible = () => {
- return attrs.input.value && (state().results || []).length && (state().terms || []).length;
+
+ // TODO: Gate for autocomplete to not require terms
+ //return attrs.input.value && (state().results || []).length && (state().terms || []).length;
+ return attrs.input.value && (state().results || []).length;
+
};
});
},
diff --git a/widgets/simple/autocomplete/src/main.js b/widgets/simple/autocomplete/src/main.js
index bc470df..0017797 100644
--- a/widgets/simple/autocomplete/src/main.js
+++ b/widgets/simple/autocomplete/src/main.js
@@ -28,7 +28,6 @@ Widgets.register('simple/autocomplete', {
}));
document.body.addEventListener('click', () => {
- console.log('click body');
this.vm.focus(false);
});
diff --git a/widgets/simple/search/src/main.js b/widgets/simple/search/src/main.js
index 927e8a0..739aae0 100644
--- a/widgets/simple/search/src/main.js
+++ b/widgets/simple/search/src/main.js
@@ -23,6 +23,13 @@ Widgets.register('simple/search', {
}
searcher.request(request).then(response => {
+
+ // Redirect the shopper if so directed by merchandising directive
+ if (response.merchandising && response.merchandising.redirect) {
+ window.location.href = response.merchandising.redirect;
+ return;
+ }
+
state({ response, q });
});
};