Skip to content
Snippets Groups Projects
Commit 0dbf5984 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

Merge branch '281-search-with-two-queries' into 'master'

Resolve "Search with two queries"

Closes #281

See merge request piotr.gawron/minerva!209
parents dc292557 a198011a
No related branches found
No related tags found
1 merge request!209Resolve "Search with two queries"
Pipeline #
......@@ -2,6 +2,7 @@
/* exported logger */
// noinspection JSUnusedLocalSymbols
var logger = require('../../logger');
var Promise = require("bluebird");
......@@ -43,7 +44,7 @@ AbstractDbOverlay.prototype.constructor = AbstractDbOverlay;
AbstractDbOverlay.QueryType = {
SEARCH_BY_COORDINATES: "SEARCH_BY_COORDINATES",
SEARCH_BY_TARGET: "SEARCH_BY_TARGET",
SEARCH_BY_QUERY: "SEARCH_BY_QUERY",
SEARCH_BY_QUERY: "SEARCH_BY_QUERY"
};
AbstractDbOverlay.prototype.encodeQuery = function (type, arg0, arg1, arg2) {
......@@ -90,33 +91,48 @@ AbstractDbOverlay.prototype.searchByQuery = function (originalQuery, perfect, fi
var res;
var encodedQueries = [];
return self.searchBySingleQuery(originalQuery, perfect).then(function (results) {
if (results.length > 0) {
encodedQueries.push(query);
return [results];
} else {
var queries = self.splitQuery(originalQuery);
var promises = [];
for (var i = 0; i < queries.length; i++) {
encodedQueries.push(self.encodeQuery(AbstractDbOverlay.QueryType.SEARCH_BY_QUERY, queries[i], perfect));
promises.push(self.searchBySingleQuery(queries[i], perfect));
}
return Promise.all(promises);
var resultPromise;
if (originalQuery.indexOf(";") >= 0) {
var queries = self.splitQuery(originalQuery);
var promises = [];
for (var i = 0; i < queries.length; i++) {
encodedQueries.push(self.encodeQuery(AbstractDbOverlay.QueryType.SEARCH_BY_QUERY, queries[i], perfect));
promises.push(self.searchBySingleQuery(queries[i], perfect));
}
}).then(function (results) {
resultPromise = Promise.all(promises);
} else {
resultPromise = self.searchBySingleQuery(originalQuery, perfect).then(function (results) {
if (results.length > 0) {
encodedQueries.push(query);
return [results];
} else {
var queries = self.splitQuery(originalQuery);
var promises = [];
for (var i = 0; i < queries.length; i++) {
encodedQueries.push(self.encodeQuery(AbstractDbOverlay.QueryType.SEARCH_BY_QUERY, queries[i], perfect));
promises.push(self.searchBySingleQuery(queries[i], perfect));
}
return Promise.all(promises);
}
});
}
return resultPromise.then(function (results) {
self.setQueries(encodedQueries);
res = results;
return self.callListeners('onSearch', {
fitBounds: fitBounds,
identifiedElements: res,
type: AbstractDbOverlay.QueryType.SEARCH_BY_QUERY,
type: AbstractDbOverlay.QueryType.SEARCH_BY_QUERY
});
}).then(function () {
return res;
});
};
}
;
AbstractDbOverlay.prototype.setQueries = function (queries) {
this._queries = queries;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment