Skip to content
Snippets Groups Projects

when publication id was invalid there was an error raised

3 files
+ 121
88
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -93,70 +93,81 @@ PublicationListDialog.prototype._dataTableAjaxCall = function (data, callback) {
search: data.search.value,
modelId: self.getSubmapFilterValue()
}).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 = [];
var submaps = {};
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>";
row[6] = "<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]));
var modelId = elements[j].modelId;
if (submaps[modelId] === undefined) {
row[6] += self.getMap().getSubmapById(modelId).getModel().getName() + ", ";
submaps[elements[j].modelId] = true;
var out = [];
var allElements = [];
for (var i = 0; i < publicationList.data.length; i++) {
var article = publicationList.data[i].publication.article;
var elements = publicationList.data[i].elements;
var row = [];
var submaps = {};
if (article !== null && article !== undefined) {
row[0] = "<a href='" + article.link + "'>" + article.id + "</a>";
row[1] = article.title;
row[2] = article.authors.join();
row[3] = article.journal;
row[4] = article.year;
} else {
row[0] = publicationList.data[i].publication.id;
row[1] = "N/A";
row[2] = "N/A";
row[3] = "N/A";
row[4] = "N/A";
}
}
row[5] += "</div>";
row[6] += "</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();
row[5] = "<div>";
row[6] = "<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]));
var modelId = elements[j].modelId;
if (submaps[modelId] === undefined) {
row[6] += self.getMap().getSubmapById(modelId).getModel().getName() + ", ";
submaps[elements[j].modelId] = true;
}
}
$("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();
row[5] += "</div>";
row[6] += "</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();
}
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);
});
};
$("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);
}
)
;
}
;
/**
*
@@ -275,22 +286,29 @@ PublicationListDialog.prototype.publicationListToArray = function (publicationLi
var elementsToFetch = [];
publicationList.data.map(function (entry) {
var publication = entry.publication.article;
var elements = entry.elements;
for (var j = 0; j < elements.length; j++) {
elementsToFetch.push(new IdentifiedElement(elements[j]));
}
});
return self.getProject().getBioEntitiesByIdentifiedElements(elementsToFetch).then(function () {
return self.getProject().getBioEntitiesByIdentifiedElements(elementsToFetch, false).then(function () {
return Promise.all(publicationList.data.map(function (entry) {
var publication = entry.publication.article;
var article = entry.publication.article;
var elements = entry.elements;
var row = [];
row[0] = publication.id;
row[1] = publication.title;
row[2] = publication.authors.join();
row[3] = publication.journal;
row[4] = publication.year;
if (article !== null && article !== undefined) {
row[0] = article.id;
row[1] = article.title;
row[2] = article.authors.join();
row[3] = article.journal;
row[4] = article.year;
} else {
row[0] = entry.publication.id;
row[1] = "N/A";
row[2] = "N/A";
row[3] = "N/A";
row[4] = "N/A";
}
row[5] = "";
row[6] = "";
Loading