Skip to content
Snippets Groups Projects

clicking on map without reaction produced error

Merged Piotr Gawron requested to merge 149-chrome-error into master
5 files
+ 98
69
Compare changes
  • Side-by-side
  • Inline
Files
5
@@ -119,8 +119,9 @@ SearchDbOverlay.prototype.searchByCoordinates = function(params) {
var searchResult = null;
var maxDistance;
var model = self.getMap().getSubmapById(modelId).getModel();
return ServerConnector.getMaxSearchDistance().then(function(distance) {
var maxZoom = self.getMap().getSubmapById(modelId).getModel().getMaxZoom();
var maxZoom = model.getMaxZoom();
var zoomDiff = maxZoom - zoom;
for (var i = 0; i < zoomDiff; i++) {
distance = distance * 1.5;
@@ -131,33 +132,42 @@ SearchDbOverlay.prototype.searchByCoordinates = function(params) {
coordinates : coordinates,
count : 1
});
}).then(
function(elements) {
var nestedOverlay = "Pathways and compartments";
if (self.getMap().getBackgroundDataOverlay().getName() === nestedOverlay) {
return self._getFirstVisibleParentOrObject(elements[0], zoom
- self.getMap().getSubmapById(modelId).getModel().getMinZoom());
} else {
return elements[0];
}
}).then(function(visibleObject) {
searchResult = [ visibleObject ];
if (searchResult[0].getType() === "REACTION") {
var model = self.getMap().getSubmapById(searchResult[0].getModelId()).getModel();
return model.getReactionById(searchResult[0].getId(), true).then(function(reaction) {
var i = 0;
var reactionElements = reaction.getElements();
for (i = 0; i < reactionElements.length; i++) {
searchResult.push(new IdentifiedElement(reactionElements[i]));
}
});
}).then(function(elements) {
var nestedOverlay = "Pathways and compartments";
if (elements.length === 0) {
return undefined;
} else {
if (self.getMap().getBackgroundDataOverlay().getName() === nestedOverlay) {
return self._getFirstVisibleParentOrObject(elements[0], zoom - model.getMinZoom());
} else {
return elements[0];
}
}
}).then(function(visibleObject) {
if (visibleObject !== undefined) {
searchResult = [ visibleObject ];
if (searchResult[0].getType() === "REACTION") {
return model.getReactionById(searchResult[0].getId(), true).then(function(reaction) {
var i = 0;
var reactionElements = reaction.getElements();
for (i = 0; i < reactionElements.length; i++) {
searchResult.push(new IdentifiedElement(reactionElements[i]));
}
});
}
} else {
searchResult = [];
}
}).then(function() {
return self.getMap().getDistance({
modelId : modelId,
coordinates : coordinates,
element : searchResult[0],
});
if (searchResult.length > 0) {
return self.getMap().getDistance({
modelId : modelId,
coordinates : coordinates,
element : searchResult[0],
});
} else {
return Number.POSITIVE_INFINITY;
}
}).then(function(distance) {
if (distance <= maxDistance) {
self._elementsByQuery[query] = searchResult;
Loading