diff options
author | flo-mic <florianmichel@hotmail.de> | 2021-02-21 11:55:31 +0300 |
---|---|---|
committer | flo-mic <florianmichel@hotmail.de> | 2021-02-21 11:55:31 +0300 |
commit | 4b641d4b1884f1a1086386c650cd578777e8c42a (patch) | |
tree | e3ed9d5c49de1af0a5d7741bde271e9a841e8a1d /src/js/Manager/RecommendationManager.js | |
parent | 8664883c07dff86a25fd30513246f9b15605142d (diff) |
apply requested changes from reviewer
Diffstat (limited to 'src/js/Manager/RecommendationManager.js')
-rw-r--r-- | src/js/Manager/RecommendationManager.js | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src/js/Manager/RecommendationManager.js b/src/js/Manager/RecommendationManager.js index f3e8f0a..e534861 100644 --- a/src/js/Manager/RecommendationManager.js +++ b/src/js/Manager/RecommendationManager.js @@ -40,7 +40,7 @@ class RecommendationManager { initRecommendationOptions() { this.options = { searchQuery: "host", maxResults: 8 } - SettingsService.getValue('search.recommendation.option') + SettingsService.getValue('search.recommendation.mode') .then((value) => { if(value) { this.options.searchQuery = value; @@ -83,20 +83,7 @@ class RecommendationManager { let query = new SearchQuery('or'); query - .where( - // search by domain - (this.options.searchQuery === "domain" ? query.field('host').contains(this.getSearchDomainFromHost(url.host)): - // search by hostname - (this.options.searchQuery === "host" ? query.field('host').startsWith(url.host.split(':')[0]): - // search by hostname and port - (this.options.searchQuery === "hostport" ? query.field('host').equals(url.host): - // search exact - (this.options.searchQuery === "exact" ? query.field('url').equals(url.protocol + "//" + url.host + (url.pathname.length > 1 ? url.pathname: "")): - "") - ) - ) - ) - ) + .where(this.getFilterQuery(query, url)) .type('password') .score(0.3) .limit(this.options.maxRows) @@ -112,6 +99,24 @@ class RecommendationManager { } /** + * @param {SearchQuery} query + * @param {String} url + */ + getFilterQuery(query, url) { + let mode = this.options.searchQuery; + if(mode === 'domain') { + return query.field('host').contains(this.getSearchDomainFromHost(url.host)); + } else if(mode === 'host') { + return query.field('host').startsWith(url.host.split(':')[0]); + } else if(mode === 'hostport') { + return query.field('host').equals(url.host); + } else { + return query.field('url').equals(url.protocol + "//" + url.host + (url.pathname.length > 1 ? url.pathname: "")); + } + } + + + /** * @param {String} host */ getSearchDomainFromHost(host) { |