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

link on element provides to search results on the map

parent 05a1b6c1
No related branches found
No related tags found
1 merge request!99Resolve "Link from literature file to the related reaction in the map does not work"
......@@ -64,51 +64,62 @@ PublicationListDialog.prototype._dataTableAjaxCall = function(data, callback) {
sortColumn : self.getColumnsDefinition()[data.order[0].column].name,
sortOrder : data.order[0].dir,
search : data.search.value,
})
.then(
function(publicationList) {
var out = [];
var allElements = [];
for (var i = 0; i < publicationList.data.length; i++) {
var publication = publicationList.data[i].publication.article;
var elements = publicationList.data[i].elements;
var row = [];
row[0] = "<a href='" + publication.link + "'>" + publication.id + "</a>";
row[1] = publication.title;
row[2] = publication.authors.join();
row[3] = publication.journal;
row[4] = publication.year;
row[5] = "<div>";
for (var j = 0; j < elements.length; j++) {
row[5] += "<a name='" + elements[j].id + "' href='#'>" + elements[j].type + ":" + elements[j].id
+ "</a>, ";
allElements.push(new IdentifiedElement(elements[j]));
}
row[5] += "</div>";
out.push(row);
}
callback({
draw : data.draw,
recordsTotal : publicationList.totalSize,
recordsFiltered : publicationList.filteredSize,
data : out,
});
var promises = [];
allElements.forEach(function(element) {
promises.push(self.getMap().getSubmapById(element.getModelId()).getModel().getByIdentifiedElement(
element, true).then(function(elementData) {
var name = null;
if (elementData instanceof Alias) {
name = elementData.getName();
} else if (elementData instanceof Reaction) {
name = elementData.getReactionId();
}
$("a[name=" + elementData.getId() + "]", $(self.getElement())).html(name);
}));
});
return Promise.all(promises);
});
}).then(function(publicationList) {
var out = [];
var allElements = [];
for (var i = 0; i < publicationList.data.length; i++) {
var publication = publicationList.data[i].publication.article;
var elements = publicationList.data[i].elements;
var row = [];
row[0] = "<a href='" + publication.link + "'>" + publication.id + "</a>";
row[1] = publication.title;
row[2] = publication.authors.join();
row[3] = publication.journal;
row[4] = publication.year;
row[5] = "<div>";
for (var j = 0; j < elements.length; j++) {
row[5] += "<a name='" + elements[j].id + "' href='#'>" + elements[j].type + ":" + elements[j].id + "</a>, ";
allElements.push(new IdentifiedElement(elements[j]));
}
row[5] += "</div>";
out.push(row);
}
callback({
draw : data.draw,
recordsTotal : publicationList.totalSize,
recordsFiltered : publicationList.filteredSize,
data : out,
});
var promises = [];
allElements.forEach(function(element) {
var model = self.getMap().getSubmapById(element.getModelId()).getModel();
promises.push(model.getByIdentifiedElement(element, true).then(function(elementData) {
var name = null;
if (elementData instanceof Alias) {
name = elementData.getName();
} else if (elementData instanceof Reaction) {
name = elementData.getReactionId();
}
$("a[name=" + elementData.getId() + "]", $(self.getElement())).html(name);
var onclick = function() {
var searchOverlay = self.getMap().getOverlayByName("search");
var query;
if (element.getType() === "ALIAS") {
query = "element:" + element.getId();
} else {
query = "reaction:" + element.getId();
}
self.getMap().openSubmap(elementData.getModelId());
return searchOverlay.searchByQuery(query, true, true).then(function() {
$(self.getElement()).dialog("close");
}).then(null, GuiConnector.alert);
}
$("a[name=" + elementData.getId() + "]", $(self.getElement())).click(onclick);
}));
});
return Promise.all(promises);
});
};
PublicationListDialog.prototype.show = function() {
......
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