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 }); }); };