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

searches separated by semicolon are always separated (semicolon cannot be part of the name)

parent dc292557
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