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

list of publications contain also information about element

parent c3c7a934
No related branches found
No related tags found
1 merge request!5Frontend refactor
"use strict"; "use strict";
var Promise = require("bluebird");
/* exported logger */ /* exported logger */
var AbstractGuiElement = require('./AbstractGuiElement'); var AbstractGuiElement = require('./AbstractGuiElement');
var Alias = require('../map/data/Alias');
var GuiConnector = require('../GuiConnector'); var GuiConnector = require('../GuiConnector');
var IdentifiedElement = require('../map/data/IdentifiedElement');
var Reaction = require('../map/data/Reaction');
var Functions = require('../functions'); var Functions = require('../functions');
var logger = require('../logger'); var logger = require('../logger');
...@@ -15,6 +20,8 @@ function PublicationListDialog(params) { ...@@ -15,6 +20,8 @@ function PublicationListDialog(params) {
$(self.getElement()).dialog({ $(self.getElement()).dialog({
autoOpen : false, autoOpen : false,
resizable : false, resizable : false,
width : window.innerWidth / 2,
height : window.innerHeight / 2,
}); });
} }
...@@ -49,34 +56,55 @@ PublicationListDialog.prototype.createPublicationListDialogGui = function() { ...@@ -49,34 +56,55 @@ PublicationListDialog.prototype.createPublicationListDialogGui = function() {
}; };
PublicationListDialog.prototype._dataTableAjaxCall = function(data, callback, settings) { PublicationListDialog.prototype._dataTableAjaxCall = function(data, callback, settings) {
logger.debug(data); var self = this;
return ServerConnector.getPublications({ return ServerConnector.getPublications({
start : data.start, start : data.start,
length : data.length length : data.length
}).then(function(publicationList) { })
var out = []; .then(
console.log(publicationList); function(publicationList) {
for (var i=0;i<publicationList.data.length;i++) { var out = [];
var publication = publicationList.data[i].publication; var allElements = [];
for (var i = 0; i < publicationList.data.length; i++) {
var row = []; var publication = publicationList.data[i].publication;
row[0] = "<a href='"+publication.link+"'>"+publication.id+"</a>"; var elements = publicationList.data[i].elements;
row[1] = publication.title;
row[2] = publication.authors.join(); var row = [];
row[3] = publication.journal; row[0] = "<a href='" + publication.link + "'>" + publication.id + "</a>";
row[4] = publication.year; row[1] = publication.title;
row[5] = "xxx"; row[2] = publication.authors.join();
out.push(row); row[3] = publication.journal;
} row[4] = publication.year;
logger.debug(out); row[5] = "<div>";
callback({ for (var j = 0; j < elements.length; j++) {
draw : data.draw, row[5] += "<a name='" + elements[j].id + "' href='#'>" + elements[j].type + ":" + elements[j].id
recordsTotal : publicationList.totalSize, + "</a>, ";
recordsFiltered : publicationList.totalSize, allElements.push(new IdentifiedElement(elements[j]));
data : out, }
}); row[5] += "</div>";
return null; out.push(row);
}); }
callback({
draw : data.draw,
recordsTotal : publicationList.totalSize,
recordsFiltered : publicationList.totalSize,
data : out,
});
var promises = [];
allElements.forEach(function(element) {
promises.push(self.getMap().getSubmodelById(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);
});
}; };
PublicationListDialog.prototype.show = function() { PublicationListDialog.prototype.show = function() {
......
...@@ -50,12 +50,14 @@ describe('ProjectInfoPanel', function() { ...@@ -50,12 +50,14 @@ describe('ProjectInfoPanel', function() {
}); });
it('show publication list', function() { it('show publication list', function() {
var div = testDiv; return ServerConnector.getProject().then(function(project) {
var panel = new ProjectInfoPanel({ var div = testDiv;
element : div, var panel = new ProjectInfoPanel({
customMap : helper.createCustomMap(), element : div,
customMap : helper.createCustomMap(project),
});
return panel.showPublicationListDialog();
}); });
return panel.showPublicationListDialog();
}); });
}); });
...@@ -27,22 +27,24 @@ describe('PublicationListDialog', function() { ...@@ -27,22 +27,24 @@ describe('PublicationListDialog', function() {
customMap : map customMap : map
}); });
assert.equal(logger.getWarnings().length, 0); assert.equal(logger.getWarnings().length, 0);
dialog.destroy(); dialog.destroy();
}); });
it('_dataTableAjaxCall', function() { it('_dataTableAjaxCall', function() {
var div = testDiv; return ServerConnector.getProject().then(function(project) {
var dialog = new PublicationListDialog({ var div = testDiv;
element : div, var dialog = new PublicationListDialog({
customMap : helper.createCustomMap(), element : div,
}); customMap : helper.createCustomMap(project),
return dialog._dataTableAjaxCall({ });
start : 0, return dialog._dataTableAjaxCall({
length : 10 start : 0,
}, function() { length : 10
}, {}).then(function(){ }, function() {
dialog.destroy(); }, {}).then(function() {
dialog.destroy();
});
}); });
}); });
......
[{"formerSymbols":[],"references":[],"modelId":15781,"synonyms":[],"description":"","type":"Protein","name":"gfsdhj","bounds":{"x":160.0,"y":332.0,"width":119.0,"height":63.0},"id":329171},{"symbol":"CNC","formerSymbols":[],"references":[{"name":"REACT_20130","type":"Reactome","link":"http://www.reactome.org/PathwayBrowser/#REACT_20130","idObject":860342},{"name":"2141","type":"HGNC","link":"http://www.genenames.org/cgi-bin/gene_symbol_report?hgnc_id\u003d2141","idObject":860343},{"name":"6546","type":"Kegg Genes","idObject":860344},{"name":"NP_001106272.1","type":"RefSeq","link":"http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?val\u003dNP_001106272.1","idObject":860345},{"name":"NP_001106271.1","type":"RefSeq","link":"http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?val\u003dNP_001106271.1","idObject":860346},{"name":"NP_001106273.1","type":"RefSeq","link":"http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?val\u003dNP_001106273.1","idObject":860347},{"name":"NP_001239553.1","type":"RefSeq","link":"http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?val\u003dNP_001239553.1","idObject":860348},{"name":"PA314","type":"PharmGKB Pathways","link":"http://www.pharmgkb.org/pathway/PA314","idObject":860349},{"name":"NP_066920.1","type":"RefSeq","link":"http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?val\u003dNP_066920.1","idObject":860350},{"name":"6546","type":"Entrez Gene","link":"http://www.ncbi.nlm.nih.gov/gene/6546","idObject":860351}],"modelId":15781,"synonyms":["CNC","NCX1"],"description":"ymbol: CNC\r\nghfjkghfdjkghkdf\r\nfdghjkfdhgjkdfgjhdf\r\njdsfkljsdklfjsdf\r\nsjdkfjsdklfjkl\r\ndsjfkjl\r\nsdfkkjfskldjfkls\r\n\nRecName: Full\u003dSodium/calcium exchanger 1; AltName: Full\u003dNa(+)/Ca(2+)-exchange protein 1; Flags: Precursor;","fullName":"Carney complex, multiple neoplasia and lentiginosis","type":"Protein","name":"CNC","bounds":{"x":11.0,"y":236.0,"width":118.0,"height":66.0},"id":329166}]
\ No newline at end of file
{"version":"0","idObject":14898,"name":"UNKNOWN DISEASE MAP","projectId":"sample","description":"","map":{"name":"UNKNOWN DISEASE MAP2","idObject":15781,"tileSize":256,"width":1305,"height":473,"minZoom":2,"maxZoom":5,"layouts":[{"modelId":15781,"name":"Pathways and compartments","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_nested0","creator":"","inputDataAvailable":"false","idObject":14081},{"modelId":15781,"name":"Network","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_normal0","creator":"","inputDataAvailable":"false","idObject":14082},{"modelId":15781,"name":"Empty","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_empty0","creator":"","inputDataAvailable":"false","idObject":14083}],"submodels":[],"centerLatLng":{"lat":79.18277721779353,"lng":-135.06093781915757},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":81.26928406550978,"lng":-90.0}},"overviewImageViews":[]} {"version":"0","idObject":15781,"name":"UNKNOWN DISEASE MAP","projectId":"sample","description":"","map":{"name":"UNKNOWN DISEASE MAP2","idObject":15781,"tileSize":256,"width":1305,"height":473,"minZoom":2,"maxZoom":5,"layouts":[{"modelId":15781,"name":"Pathways and compartments","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_nested0","creator":"","inputDataAvailable":"false","idObject":14081},{"modelId":15781,"name":"Network","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_normal0","creator":"","inputDataAvailable":"false","idObject":14082},{"modelId":15781,"name":"Empty","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_empty0","creator":"","inputDataAvailable":"false","idObject":14083}],"submodels":[],"centerLatLng":{"lat":79.18277721779353,"lng":-135.06093781915757},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":81.26928406550978,"lng":-90.0}},"overviewImageViews":[]}
\ No newline at end of file \ No newline at end of file
[{"modelId":15781,"reactants":"329166","reactionId":"re21","id":153508,"type":"State transition","lines":[{"start":{"x":129.00000000000003,"y":269.9853478599471},"end":{"x":217.3857151822324,"y":271.4614610007049},"type":"START"},{"start":{"x":217.3857151822324,"y":271.4614610007049},"end":{"x":217.98919008325365,"y":297.73178548394236},"type":"MIDDLE"},{"start":{"x":218.17291548409574,"y":305.7296755167626},"end":{"x":218.77639038511697,"y":332.0},"type":"END"}],"modifiers":"","centerPoint":{"x":218.0810527836747,"y":301.7307305003525},"products":"329171"}]
\ No newline at end of file
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