diff --git a/README.md b/README.md index ebefb9ef5ec76f5bf38e152f5aca93d1c6982b9f..861648d99c5e64126470d7438abf13c19892bd67 100644 --- a/README.md +++ b/README.md @@ -98,6 +98,16 @@ curl -X GET --cookie "MINERVA_AUTH_TOKEN=xxxxxxxx" http://pg-sandbox.uni.lu/mine ``` #### (sub)Maps +* List of (sub)maps in a project + * URL: `/projects/{projectId}/models/` + * Method: GET + * Parameters: + * `projectId` - identifier of the project + * Example: +``` +curl -X GET --cookie "MINERVA_AUTH_TOKEN=xxxxxxxx" "http://pg-sandbox.uni.lu/minerva/api/projects/pdmap_dec15/models/" +``` + * Download map as a model file (ie. in CellDesigner format) * URL: `/projects/{projectId}/models/{modelId}:downloadModel` * Method: GET diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js index 45af28dfb1affff12ce7a34172a04a7d620ab6b9..88b8109a4d4e84649e92eba0f963f543d44feb37 100644 --- a/frontend-js/src/main/js/ServerConnector.js +++ b/frontend-js/src/main/js/ServerConnector.js @@ -21,6 +21,7 @@ var InvalidCredentialsError = require('./InvalidCredentialsError'); var LayoutAlias = require('./map/data/LayoutAlias'); var LayoutData = require('./map/data/LayoutData'); var LayoutReaction = require('./map/data/LayoutReaction'); +var MapModel = require('./map/data/MapModel'); var MiRna = require('./map/data/MiRna'); var NetworkError = require('./NetworkError'); var Project = require('./map/data/Project'); @@ -624,6 +625,23 @@ ServerConnector.getConfigurationParam = function(paramId) { }); }; +ServerConnector.getModels = function(projectId) { + var queryParams = {}; + var filterParams = {}; + var project; + var self = this; + return self.getProjectId(projectId).then(function(result) { + queryParams.projectId = result; + return self.readFile(self.getModelsUrl(queryParams, filterParams)); + }).then(function(content) { + var models = []; + var parsedJson = JSON.parse(content); + for (var i = 0; i < parsedJson.length; i++) { + models.push(new MapModel(parsedJson[i])); + } + return models; + }); +}; ServerConnector.getProject = function(projectId) { var queryParams = {}; var filterParams = {}; @@ -634,6 +652,9 @@ ServerConnector.getProject = function(projectId) { return self.readFile(self.getProjectsUrl(queryParams, filterParams)); }).then(function(content) { project = new Project(content); + return self.getModels(projectId); + }).then(function(models) { + project.setModel(models[0]); return self.getOverlays(projectId); }).then(function(overlays) { project.getModel().addLayouts(overlays); diff --git a/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js b/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js index 0c5c96d604ec7d3806ef80ebfa7abd7044d099d3..391ba195a7ff15e8676951f8a6988cb737df3f14 100644 --- a/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js +++ b/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js @@ -228,7 +228,9 @@ ProjectInfoPanel.prototype.refresh = function() { projectNameText.innerHTML = project.getName(); projectVersionText.innerHTML = project.getVersion(); projectDescriptionText.innerHTML = project.getDescription(); - projectPublicationsText.innerHTML = project.getPublicationCount(); + return ServerConnector.getProjectStatistics(); + }).then(function(statistics) { + projectPublicationsText.innerHTML = statistics.getPublicationCount(); return ServerConnector.getLoggedUser(); }).then(function(user) { self.showUserProfilePage(user); diff --git a/frontend-js/src/main/js/map/data/Project.js b/frontend-js/src/main/js/map/data/Project.js index 8abcdd1b5265bc3c8432ce6b75c092cc4cdeb505..85c8b64da14a8553eceaf4cf340c7ba1c023a057 100644 --- a/frontend-js/src/main/js/map/data/Project.js +++ b/frontend-js/src/main/js/map/data/Project.js @@ -5,6 +5,8 @@ var ObjectWithListeners = require('../../ObjectWithListeners'); var Annotation = require("./Annotation"); var Model = require('./MapModel'); +var logger = require('../../logger'); + function Project(data) { // call super constructor ObjectWithListeners.call(this); @@ -53,8 +55,6 @@ Project.prototype.loadFromData = function(data) { this.setOrganism(data.organism); this.setPublicationCount(data.publicationCount); - this.setModel(new Model(data.map)); - this.callListeners("onreload"); } }; diff --git a/frontend-js/src/main/js/map/data/ProjectStatistics.js b/frontend-js/src/main/js/map/data/ProjectStatistics.js index d905df46d6122a4f7b4b30f4360a90da862f0bba..e30fe8b0cbb34f7021b6e3fabec5dd60cc5bda45 100644 --- a/frontend-js/src/main/js/map/data/ProjectStatistics.js +++ b/frontend-js/src/main/js/map/data/ProjectStatistics.js @@ -12,6 +12,7 @@ function ProjectStatistics(data, configuration) { this.setReactionAnnotations(data.reactionAnnotations, configuration); this.setElementAnnotations(data.elementAnnotations, configuration); + this.setPublicationCount(data.publications, configuration); } ProjectStatistics.prototype = Object.create(ObjectWithListeners.prototype); @@ -49,4 +50,11 @@ ProjectStatistics.prototype.getElementAnnotations = function() { return this._elementAnnotations; }; +ProjectStatistics.prototype.setPublicationCount = function(count) { + this._publicationsCount = count; +}; +ProjectStatistics.prototype.getPublicationCount = function() { + return this._publicationsCount; +}; + module.exports = ProjectStatistics; diff --git a/frontend-js/src/test/js/ServerConnector-test.js b/frontend-js/src/test/js/ServerConnector-test.js index a4bfb5cc62b4a8e0766b4cb2679789abf7e20a5f..730bca8fa4bf409b466d4fc8e62d3f2e90c18eac 100644 --- a/frontend-js/src/test/js/ServerConnector-test.js +++ b/frontend-js/src/test/js/ServerConnector-test.js @@ -9,6 +9,7 @@ var HttpStatus = require('http-status-codes'); var Alias = require('../../main/js/map/data/Alias'); var Configuration = require('../../main/js/Configuration'); var LayoutAlias = require('../../main/js/map/data/LayoutAlias'); +var MapModel = require('../../main/js/map/data/MapModel'); var NetworkError = require('../../main/js/NetworkError'); var Project = require('../../main/js/map/data/Project'); var Reaction = require('../../main/js/map/data/Reaction'); @@ -34,6 +35,13 @@ describe('ServerConnector', function() { }); }); + it('getModels', function() { + return ServerConnector.getModels("sample").then(function(models) { + assert.equal(1, models.length); + assert.ok(models[0] instanceof MapModel); + }); + }); + it('getPublications', function() { return ServerConnector.getPublications().then(function(result) { assert.equal(result.totalSize, 1); diff --git a/frontend-js/src/test/js/gui/OverviewDialog-test.js b/frontend-js/src/test/js/gui/OverviewDialog-test.js index f38ec2696df1b51fd8ef8380b736ced13285ad12..02fd8ab3ae0fc51989d32cce3beb388b34976e03 100644 --- a/frontend-js/src/test/js/gui/OverviewDialog-test.js +++ b/frontend-js/src/test/js/gui/OverviewDialog-test.js @@ -15,8 +15,8 @@ var logger = require('../logger'); describe('OverviewDialog', function() { it('open image', function() { - return ServerConnector.readFile("testFiles/projectWithImages.json").then(function(fileContent) { - var project = new Project(JSON.parse(fileContent)); + helper.setUrl("http://test/?id=complex_model_with_images"); + return ServerConnector.getProject().then(function(project) { var options = helper.createOptions(project); var map = new CustomMap(options); @@ -31,8 +31,8 @@ describe('OverviewDialog', function() { }); it('open invalid image', function() { - return ServerConnector.readFile("testFiles/projectWithImages.json").then(function(fileContent) { - var project = new Project(JSON.parse(fileContent)); + helper.setUrl("http://test/?id=complex_model_with_images"); + return ServerConnector.getProject().then(function(project) { var options = helper.createOptions(project); var map = new CustomMap(options); @@ -48,8 +48,8 @@ describe('OverviewDialog', function() { describe('openLink', function() { it('link to map', function() { - return ServerConnector.readFile("testFiles/projectWithImages.json").then(function(fileContent) { - var project = new Project(JSON.parse(fileContent)); + helper.setUrl("http://test/?id=complex_model_with_images"); + return ServerConnector.getProject().then(function(project) { var options = helper.createOptions(project); var map = new CustomMap(options); diff --git a/frontend-js/src/test/js/map/data/Project-test.js b/frontend-js/src/test/js/map/data/Project-test.js index 169244b48a1131b378b33f36307fc6e0fd9efd62..e2857d6e12091c92a1132fc01f45f5e7cbf5881b 100644 --- a/frontend-js/src/test/js/map/data/Project-test.js +++ b/frontend-js/src/test/js/map/data/Project-test.js @@ -8,70 +8,38 @@ var chai = require('chai'); var assert = chai.assert; describe('Project', function() { - it("contructor", function() { - return ServerConnector.readFile("testFiles/project.json").then(function(res) { - var project = new Project(res); - assert.ok(project); - - assert.equal(project.getVersion(), "0"); - assert.equal(project.getId(), 14898); - assert.equal(project.getName(), "UNKNOWN DISEASE MAP"); - assert.equal(project.getProjectId(), "sample"); - assert.equal(project.getDescription(), ""); - assert.deepEqual(project.getOverviewImages(), []); - - var model = project.getModel(); - assert.equal(model.getName(), "UNKNOWN DISEASE MAP2"); - assert.equal(model.getId(), 15781); - assert.equal(model.getTileSize(), 256); - assert.equal(model.getWidth(), 1305); - assert.equal(model.getHeight(), 473); - assert.equal(model.getMinZoom(), 2); - assert.equal(model.getMaxZoom(), 5); - assert.equal(model.getLayoutsData().length, 3); - - assert.equal(model.getCenterLatLng().lat(), 79.18277721779353); - assert.equal(model.getCenterLatLng().lng(), -135.06093781915757); - assert.equal(model.getTopLeftLatLng().lat(), 85.05112877980659); - assert.equal(model.getTopLeftLatLng().lng(), -180.0); - assert.equal(model.getBottomRightLatLng().lat(), 81.26928406550978); - assert.equal(model.getBottomRightLatLng().lng(), -90.0); - - assert.equal(logger.getWarnings().length, 0); + describe("constructor", function() { + it("default", function() { + return ServerConnector.readFile("testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID&").then(function(res) { + var project = new Project(res); + assert.ok(project); + + assert.equal(project.getVersion(), "0"); + assert.equal(project.getId(), 14898); + assert.equal(project.getName(), "UNKNOWN DISEASE MAP"); + assert.equal(project.getProjectId(), "sample"); + assert.equal(project.getDescription(), ""); + assert.deepEqual(project.getOverviewImages(), []); + + assert.equal(logger.getWarnings().length, 0); + }); }); - }); - it("contructor from Project obj", function() { - return ServerConnector.readFile("testFiles/project.json").then(function(res) { - var tmpProject = new Project(res); - - var project = new Project(tmpProject); - assert.ok(project); - - assert.equal(project.getVersion(), "0"); - assert.equal(project.getId(), 14898); - assert.equal(project.getName(), "UNKNOWN DISEASE MAP"); - assert.equal(project.getProjectId(), "sample"); - assert.equal(project.getDescription(), ""); - assert.deepEqual(project.getOverviewImages(), []); - - var model = project.getModel(); - assert.equal(model.getName(), "UNKNOWN DISEASE MAP2"); - assert.equal(model.getId(), 15781); - assert.equal(model.getTileSize(), 256); - assert.equal(model.getWidth(), 1305); - assert.equal(model.getHeight(), 473); - assert.equal(model.getMinZoom(), 2); - assert.equal(model.getMaxZoom(), 5); - assert.equal(model.getLayoutsData().length, 3); - - assert.equal(model.getCenterLatLng().lat(), 79.18277721779353); - assert.equal(model.getCenterLatLng().lng(), -135.06093781915757); - assert.equal(model.getTopLeftLatLng().lat(), 85.05112877980659); - assert.equal(model.getTopLeftLatLng().lng(), -180.0); - assert.equal(model.getBottomRightLatLng().lat(), 81.26928406550978); - assert.equal(model.getBottomRightLatLng().lng(), -90.0); - - assert.equal(logger.getWarnings().length, 0); + it("from Project obj", function() { + return ServerConnector.readFile("testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID&").then(function(res) { + var tmpProject = new Project(res); + + var project = new Project(tmpProject); + assert.ok(project); + + assert.equal(project.getVersion(), "0"); + assert.equal(project.getId(), 14898); + assert.equal(project.getName(), "UNKNOWN DISEASE MAP"); + assert.equal(project.getProjectId(), "sample"); + assert.equal(project.getDescription(), ""); + assert.deepEqual(project.getOverviewImages(), []); + + assert.equal(logger.getWarnings().length, 0); + }); }); }); }); diff --git a/frontend-js/src/test/js/minerva-test.js b/frontend-js/src/test/js/minerva-test.js index 9425790ab9708720eff2d41940ace5093fffc956..6d989ae49367d46f79e121cd6197df6d322d0d2f 100644 --- a/frontend-js/src/test/js/minerva-test.js +++ b/frontend-js/src/test/js/minerva-test.js @@ -55,8 +55,8 @@ describe('minerva global', function() { }); it('create with overview', function() { - return ServerConnectorMock.readFile("testFiles/projectWithImages.json").then(function(fileContent) { - var project = new Project(JSON.parse(fileContent)); + helper.setUrl("http://test/?id=complex_model_with_images"); + return ServerConnectorMock.getProject().then(function(project) { var options = helper.createOptions(project); return minerva.create(options); diff --git a/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/models/all/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/models/all/token=MOCK_TOKEN_ID& new file mode 100644 index 0000000000000000000000000000000000000000..f71a795beacd84a38018bf292dc4d7906885f882 --- /dev/null +++ b/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/models/all/token=MOCK_TOKEN_ID& @@ -0,0 +1 @@ +[{"version":null,"name":"main","idObject":19397,"tileSize":256,"width":495,"height":357,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":17987,"modelId":19397,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested0","creator":"","inputDataAvailable":"false"},{"idObject":17988,"modelId":19397,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal0","creator":"","inputDataAvailable":"false"},{"idObject":17989,"modelId":19397,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty0","creator":"","inputDataAvailable":"false"}],"submodels":[{"version":null,"name":"s3","idObject":19399,"tileSize":256,"width":421,"height":315,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":17978,"modelId":19399,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested3","creator":"","inputDataAvailable":"false"},{"idObject":17979,"modelId":19399,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal3","creator":"","inputDataAvailable":"false"},{"idObject":17980,"modelId":19399,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty3","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19139766235872,"lng":-135.10688836104512},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":74.06362505154212,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s2","idObject":19400,"tileSize":256,"width":451,"height":253,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":17984,"modelId":19400,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested2","creator":"","inputDataAvailable":"false"},{"idObject":17985,"modelId":19400,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal2","creator":"","inputDataAvailable":"false"},{"idObject":17986,"modelId":19400,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty2","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19006423440219,"lng":-135.09977827050997},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":78.0903352323621,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s1","idObject":19398,"tileSize":256,"width":571,"height":276,"minZoom":2,"maxZoom":4,"layouts":[{"idObject":17981,"modelId":19398,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested1","creator":"","inputDataAvailable":"false"},{"idObject":17982,"modelId":19398,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal1","creator":"","inputDataAvailable":"false"},{"idObject":17983,"modelId":19398,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty1","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.18613072613702,"lng":-135.07880910683014},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":79.44906929997262,"lng":-90.0},"submodelType":"PATHWAY"}],"centerLatLng":{"lat":79.18840067864828,"lng":-135.0909090909091},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":74.71754541589858,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s3","idObject":19399,"tileSize":256,"width":421,"height":315,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":17978,"modelId":19399,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested3","creator":"","inputDataAvailable":"false"},{"idObject":17979,"modelId":19399,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal3","creator":"","inputDataAvailable":"false"},{"idObject":17980,"modelId":19399,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty3","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19139766235872,"lng":-135.10688836104512},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":74.06362505154212,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s2","idObject":19400,"tileSize":256,"width":451,"height":253,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":17984,"modelId":19400,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested2","creator":"","inputDataAvailable":"false"},{"idObject":17985,"modelId":19400,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal2","creator":"","inputDataAvailable":"false"},{"idObject":17986,"modelId":19400,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty2","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19006423440219,"lng":-135.09977827050997},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":78.0903352323621,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s1","idObject":19398,"tileSize":256,"width":571,"height":276,"minZoom":2,"maxZoom":4,"layouts":[{"idObject":17981,"modelId":19398,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested1","creator":"","inputDataAvailable":"false"},{"idObject":17982,"modelId":19398,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal1","creator":"","inputDataAvailable":"false"},{"idObject":17983,"modelId":19398,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty1","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.18613072613702,"lng":-135.07880910683014},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":79.44906929997262,"lng":-90.0},"submodelType":"UNKNOWN"}] \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/statistics/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/statistics/token=MOCK_TOKEN_ID& new file mode 100644 index 0000000000000000000000000000000000000000..0e57e7d5d1106a9458b581f9737c13c30df655a7 --- /dev/null +++ b/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/statistics/token=MOCK_TOKEN_ID& @@ -0,0 +1 @@ +{"reactionAnnotations":{"UNKNOWN":0,"MI_R_BASE_SEQUENCE":0,"WORM_BASE":0,"COG":0,"HGNC":0,"MIR_TAR_BASE_MATURE_SEQUENCE":0,"CHEBI":0,"DRUGBANK_TARGET_V4":0,"KEGG_ORTHOLOGY":0,"KEGG_COMPOUND":0,"PUBMED":0,"PHARM":0,"CAS":0,"REFSEQ":0,"WIKIPATHWAYS":0,"UNIPROT_ISOFORM":0,"OMIM":0,"UNIGENE":0,"TOXICOGENOMIC_CHEMICAL":0,"MESH_2012":0,"WIKIPEDIA":0,"HGNC_SYMBOL":0,"ENTREZ":0,"MI_R_BASE_MATURE_SEQUENCE":0,"CHEMBL_COMPOUND":0,"MGD":0,"PANTHER":0,"GO":0,"UNIPROT":0,"SGD":0,"WIKIDATA":0,"CCDS":0,"PUBCHEM":0,"EC":0,"HMDB":0,"INTERPRO":0,"DRUGBANK":0,"KEGG_PATHWAY":0,"TAXONOMY":0,"ENSEMBL_PLANTS":0,"TAIR_LOCUS":0,"KEGG_GENES":0,"REACTOME":0,"ENSEMBL":0,"KEGG_REACTION":0,"PUBCHEM_SUBSTANCE":0,"CHEMSPIDER":0,"PFAM":0,"CHEMBL_TARGET":0},"elementAnnotations":{"UNKNOWN":0,"MI_R_BASE_SEQUENCE":0,"WORM_BASE":0,"COG":0,"HGNC":0,"MIR_TAR_BASE_MATURE_SEQUENCE":0,"CHEBI":0,"DRUGBANK_TARGET_V4":0,"KEGG_ORTHOLOGY":0,"KEGG_COMPOUND":0,"PUBMED":0,"PHARM":0,"CAS":0,"REFSEQ":0,"WIKIPATHWAYS":0,"UNIPROT_ISOFORM":0,"OMIM":0,"UNIGENE":0,"TOXICOGENOMIC_CHEMICAL":0,"MESH_2012":0,"WIKIPEDIA":0,"HGNC_SYMBOL":0,"ENTREZ":0,"MI_R_BASE_MATURE_SEQUENCE":0,"CHEMBL_COMPOUND":0,"MGD":0,"PANTHER":0,"GO":0,"UNIPROT":0,"SGD":0,"WIKIDATA":0,"CCDS":0,"PUBCHEM":0,"EC":0,"HMDB":0,"INTERPRO":0,"DRUGBANK":0,"KEGG_PATHWAY":0,"TAXONOMY":0,"ENSEMBL_PLANTS":0,"TAIR_LOCUS":0,"KEGG_GENES":0,"REACTOME":0,"ENSEMBL":0,"KEGG_REACTION":0,"PUBCHEM_SUBSTANCE":0,"CHEMSPIDER":0,"PFAM":0,"CHEMBL_TARGET":0},"publications":0} \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/token=MOCK_TOKEN_ID& index e8518f0cb3b6d40abeee366be090671826e24444..9693fbe4938f164fba86283f3d950368e5bfc432 100644 --- a/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/token=MOCK_TOKEN_ID& +++ b/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/token=MOCK_TOKEN_ID& @@ -1 +1 @@ -{"version":"0","disease":null,"organism":null,"idObject":18115,"name":"UNKNOWN DISEASE MAP","projectId":"complex_model_with_images","description":"","map":{"version":null,"name":"main","idObject":19397,"tileSize":256,"width":495,"height":357,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":17987,"modelId":19397,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested0","creator":"","inputDataAvailable":"false"},{"idObject":17988,"modelId":19397,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal0","creator":"","inputDataAvailable":"false"},{"idObject":17989,"modelId":19397,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty0","creator":"","inputDataAvailable":"false"}],"submodels":[{"version":null,"name":"s3","idObject":19399,"tileSize":256,"width":421,"height":315,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":17978,"modelId":19399,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested3","creator":"","inputDataAvailable":"false"},{"idObject":17979,"modelId":19399,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal3","creator":"","inputDataAvailable":"false"},{"idObject":17980,"modelId":19399,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty3","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19139766235872,"lng":-135.10688836104512},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":74.06362505154212,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s2","idObject":19400,"tileSize":256,"width":451,"height":253,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":17984,"modelId":19400,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested2","creator":"","inputDataAvailable":"false"},{"idObject":17985,"modelId":19400,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal2","creator":"","inputDataAvailable":"false"},{"idObject":17986,"modelId":19400,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty2","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19006423440219,"lng":-135.09977827050997},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":78.0903352323621,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s1","idObject":19398,"tileSize":256,"width":571,"height":276,"minZoom":2,"maxZoom":4,"layouts":[{"idObject":17981,"modelId":19398,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested1","creator":"","inputDataAvailable":"false"},{"idObject":17982,"modelId":19398,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal1","creator":"","inputDataAvailable":"false"},{"idObject":17983,"modelId":19398,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty1","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.18613072613702,"lng":-135.07880910683014},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":79.44906929997262,"lng":-90.0},"submodelType":"PATHWAY"}],"centerLatLng":{"lat":79.18840067864828,"lng":-135.0909090909091},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":74.71754541589858,"lng":-90.0},"submodelType":"UNKNOWN"},"publicationCount":0,"overviewImageViews":[{"idObject":1261,"filename":"fbdbe43de73fe38f62889b89cb863adb/sub_image.png","width":963,"height":639,"links":[{"idObject":2369,"polygon":[{"x":200.0,"y":200.0},{"x":200.0,"y":400.0},{"x":400.0,"y":400.0},{"x":400.0,"y":200.0}],"zoomLevel":1,"latLng":{"lat":84.89177465079632,"lng":-161.8181818181818},"modelLinkId":19397,"imageLinkId":null,"query":null,"type":"OverviewModelLink"}]},{"idObject":1262,"filename":"fbdbe43de73fe38f62889b89cb863adb/test.png","width":963,"height":639,"links":[{"idObject":2370,"polygon":[{"x":10.0,"y":10.0},{"x":100.0,"y":10.0},{"x":100.0,"y":100.0},{"x":10.0,"y":100.0}],"zoomLevel":null,"latLng":null,"modelLinkId":null,"imageLinkId":1261,"query":null,"type":"OverviewImageLink"},{"idObject":2371,"polygon":[{"x":200.0,"y":200.0},{"x":200.0,"y":400.0},{"x":400.0,"y":400.0},{"x":400.0,"y":200.0}],"zoomLevel":0,"latLng":{"lat":84.89177465079632,"lng":-178.1818181818182},"modelLinkId":19397,"imageLinkId":null,"query":null,"type":"OverviewModelLink"}]}],"topOverviewImage":{"idObject":1262,"filename":"fbdbe43de73fe38f62889b89cb863adb/test.png","width":963,"height":639,"links":[{"idObject":2370,"polygon":[{"x":10.0,"y":10.0},{"x":100.0,"y":10.0},{"x":100.0,"y":100.0},{"x":10.0,"y":100.0}],"zoomLevel":null,"latLng":null,"modelLinkId":null,"imageLinkId":1261,"query":null,"type":"OverviewImageLink"},{"idObject":2371,"polygon":[{"x":200.0,"y":200.0},{"x":200.0,"y":400.0},{"x":400.0,"y":400.0},{"x":400.0,"y":200.0}],"zoomLevel":0,"latLng":{"lat":84.89177465079632,"lng":-178.1818181818182},"modelLinkId":19397,"imageLinkId":null,"query":null,"type":"OverviewModelLink"}]}} \ No newline at end of file +{"version":"0","disease":null,"organism":null,"idObject":18115,"name":"UNKNOWN DISEASE MAP","projectId":"complex_model_with_images","description":"","overviewImageViews":[{"idObject":1261,"filename":"fbdbe43de73fe38f62889b89cb863adb/sub_image.png","width":963,"height":639,"links":[{"idObject":2369,"polygon":[{"x":200.0,"y":200.0},{"x":200.0,"y":400.0},{"x":400.0,"y":400.0},{"x":400.0,"y":200.0}],"zoomLevel":1,"latLng":{"lat":84.89177465079632,"lng":-161.8181818181818},"modelLinkId":19397,"imageLinkId":null,"query":null,"type":"OverviewModelLink"}]},{"idObject":1262,"filename":"fbdbe43de73fe38f62889b89cb863adb/test.png","width":963,"height":639,"links":[{"idObject":2370,"polygon":[{"x":10.0,"y":10.0},{"x":100.0,"y":10.0},{"x":100.0,"y":100.0},{"x":10.0,"y":100.0}],"zoomLevel":null,"latLng":null,"modelLinkId":null,"imageLinkId":1261,"query":null,"type":"OverviewImageLink"},{"idObject":2371,"polygon":[{"x":200.0,"y":200.0},{"x":200.0,"y":400.0},{"x":400.0,"y":400.0},{"x":400.0,"y":200.0}],"zoomLevel":0,"latLng":{"lat":84.89177465079632,"lng":-178.1818181818182},"modelLinkId":19397,"imageLinkId":null,"query":null,"type":"OverviewModelLink"}]}],"topOverviewImage":{"idObject":1262,"filename":"fbdbe43de73fe38f62889b89cb863adb/test.png","width":963,"height":639,"links":[{"idObject":2370,"polygon":[{"x":10.0,"y":10.0},{"x":100.0,"y":10.0},{"x":100.0,"y":100.0},{"x":10.0,"y":100.0}],"zoomLevel":null,"latLng":null,"modelLinkId":null,"imageLinkId":1261,"query":null,"type":"OverviewImageLink"},{"idObject":2371,"polygon":[{"x":200.0,"y":200.0},{"x":200.0,"y":400.0},{"x":400.0,"y":400.0},{"x":400.0,"y":200.0}],"zoomLevel":0,"latLng":{"lat":84.89177465079632,"lng":-178.1818181818182},"modelLinkId":19397,"imageLinkId":null,"query":null,"type":"OverviewModelLink"}]}} \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/projects/complex_model_with_submaps/models/all/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/complex_model_with_submaps/models/all/token=MOCK_TOKEN_ID& new file mode 100644 index 0000000000000000000000000000000000000000..19fa38ecdf18b5a74896e1113d84f726663b9f9b --- /dev/null +++ b/frontend-js/testFiles/apiCalls/projects/complex_model_with_submaps/models/all/token=MOCK_TOKEN_ID& @@ -0,0 +1 @@ +[{"version":null,"name":"main","idObject":16728,"tileSize":256,"width":515,"height":362,"minZoom":2,"maxZoom":4,"layouts":[{"idObject":14959,"modelId":16728,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_nested0","creator":"","inputDataAvailable":"false"},{"idObject":14960,"modelId":16728,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_normal0","creator":"","inputDataAvailable":"false"},{"idObject":14961,"modelId":16728,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_empty0","creator":"","inputDataAvailable":"false"},{"idObject":18083,"modelId":16728,"name":"C:\\fakepath\\a.txt","description":"","status":"OK","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/.18083","creator":"","inputDataAvailable":"true"}],"submodels":[{"version":null,"name":"s1","idObject":16729,"tileSize":256,"width":571,"height":276,"minZoom":2,"maxZoom":4,"layouts":[{"idObject":14953,"modelId":16729,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_nested3","creator":"","inputDataAvailable":"false"},{"idObject":14954,"modelId":16729,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_normal3","creator":"","inputDataAvailable":"false"},{"idObject":14955,"modelId":16729,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_empty3","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.18613072613702,"lng":-135.07880910683014},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":79.44906929997262,"lng":-90.0},"submodelType":"PATHWAY"},{"version":null,"name":"s2","idObject":16731,"tileSize":256,"width":451,"height":253,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":14956,"modelId":16731,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_nested1","creator":"","inputDataAvailable":"false"},{"idObject":14957,"modelId":16731,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_normal1","creator":"","inputDataAvailable":"false"},{"idObject":14958,"modelId":16731,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_empty1","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19006423440219,"lng":-135.09977827050997},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":78.0903352323621,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s3","idObject":16730,"tileSize":256,"width":421,"height":315,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":14950,"modelId":16730,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_nested2","creator":"","inputDataAvailable":"false"},{"idObject":14951,"modelId":16730,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_normal2","creator":"","inputDataAvailable":"false"},{"idObject":14952,"modelId":16730,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_empty2","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19139766235872,"lng":-135.10688836104512},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":74.06362505154212,"lng":-90.0},"submodelType":"UNKNOWN"}],"centerLatLng":{"lat":79.18773841616675,"lng":-135.0873786407767},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":75.1456787592211,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s1","idObject":16729,"tileSize":256,"width":571,"height":276,"minZoom":2,"maxZoom":4,"layouts":[{"idObject":14953,"modelId":16729,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_nested3","creator":"","inputDataAvailable":"false"},{"idObject":14954,"modelId":16729,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_normal3","creator":"","inputDataAvailable":"false"},{"idObject":14955,"modelId":16729,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_empty3","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.18613072613702,"lng":-135.07880910683014},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":79.44906929997262,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s2","idObject":16731,"tileSize":256,"width":451,"height":253,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":14956,"modelId":16731,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_nested1","creator":"","inputDataAvailable":"false"},{"idObject":14957,"modelId":16731,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_normal1","creator":"","inputDataAvailable":"false"},{"idObject":14958,"modelId":16731,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_empty1","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19006423440219,"lng":-135.09977827050997},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":78.0903352323621,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s3","idObject":16730,"tileSize":256,"width":421,"height":315,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":14950,"modelId":16730,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_nested2","creator":"","inputDataAvailable":"false"},{"idObject":14951,"modelId":16730,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_normal2","creator":"","inputDataAvailable":"false"},{"idObject":14952,"modelId":16730,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_empty2","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19139766235872,"lng":-135.10688836104512},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":74.06362505154212,"lng":-90.0},"submodelType":"UNKNOWN"}] \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/projects/complex_model_with_submaps/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/complex_model_with_submaps/token=MOCK_TOKEN_ID& index c5458476d93a09c500629a6926e4ed1fc194db12..b1da9104535a9829b0168df81a6e76e5ad56ebe0 100644 --- a/frontend-js/testFiles/apiCalls/projects/complex_model_with_submaps/token=MOCK_TOKEN_ID& +++ b/frontend-js/testFiles/apiCalls/projects/complex_model_with_submaps/token=MOCK_TOKEN_ID& @@ -1 +1 @@ -{"version":"0","disease":null,"organism":null,"idObject":15763,"name":"UNKNOWN DISEASE MAP","projectId":"complex_model_with_submaps","description":"","map":{"version":null,"name":"main","idObject":16728,"tileSize":256,"width":515,"height":362,"minZoom":2,"maxZoom":4,"layouts":[{"idObject":14959,"modelId":16728,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_nested0","creator":"","inputDataAvailable":"false"},{"idObject":14960,"modelId":16728,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_normal0","creator":"","inputDataAvailable":"false"},{"idObject":14961,"modelId":16728,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_empty0","creator":"","inputDataAvailable":"false"},{"idObject":18083,"modelId":16728,"name":"C:\\fakepath\\a.txt","description":"","status":"OK","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/.18083","creator":"","inputDataAvailable":"true"}],"submodels":[{"version":null,"name":"s1","idObject":16729,"tileSize":256,"width":571,"height":276,"minZoom":2,"maxZoom":4,"layouts":[{"idObject":14953,"modelId":16729,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_nested3","creator":"","inputDataAvailable":"false"},{"idObject":14954,"modelId":16729,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_normal3","creator":"","inputDataAvailable":"false"},{"idObject":14955,"modelId":16729,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_empty3","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.18613072613702,"lng":-135.07880910683014},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":79.44906929997262,"lng":-90.0},"submodelType":"PATHWAY"},{"version":null,"name":"s2","idObject":16731,"tileSize":256,"width":451,"height":253,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":14956,"modelId":16731,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_nested1","creator":"","inputDataAvailable":"false"},{"idObject":14957,"modelId":16731,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_normal1","creator":"","inputDataAvailable":"false"},{"idObject":14958,"modelId":16731,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_empty1","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19006423440219,"lng":-135.09977827050997},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":78.0903352323621,"lng":-90.0},"submodelType":"UNKNOWN"},{"version":null,"name":"s3","idObject":16730,"tileSize":256,"width":421,"height":315,"minZoom":2,"maxZoom":3,"layouts":[{"idObject":14950,"modelId":16730,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_nested2","creator":"","inputDataAvailable":"false"},{"idObject":14951,"modelId":16730,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_normal2","creator":"","inputDataAvailable":"false"},{"idObject":14952,"modelId":16730,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"0e6072e4c8d73a05d8bd8ec873761725/_empty2","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.19139766235872,"lng":-135.10688836104512},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":74.06362505154212,"lng":-90.0},"submodelType":"UNKNOWN"}],"centerLatLng":{"lat":79.18773841616675,"lng":-135.0873786407767},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":75.1456787592211,"lng":-90.0},"submodelType":"UNKNOWN"},"publicationCount":0,"overviewImageViews":[],"topOverviewImage":null} \ No newline at end of file +{"version":"0","disease":null,"organism":null,"idObject":15763,"name":"UNKNOWN DISEASE MAP","projectId":"complex_model_with_submaps","description":"","overviewImageViews":[],"topOverviewImage":null} \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/projects/drug_target_sample/models/all/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/drug_target_sample/models/all/token=MOCK_TOKEN_ID& new file mode 100644 index 0000000000000000000000000000000000000000..467d548b152ac46815ebc2a84145cc57e5cf5726 --- /dev/null +++ b/frontend-js/testFiles/apiCalls/projects/drug_target_sample/models/all/token=MOCK_TOKEN_ID& @@ -0,0 +1 @@ +[{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":20637,"tileSize":256,"width":1305,"height":473,"minZoom":2,"maxZoom":5,"layouts":[{"idObject":19771,"modelId":20637,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"77aacd78e20c6a6610f696eb1f1aa4b0/_nested0","creator":"","inputDataAvailable":"false"},{"idObject":19772,"modelId":20637,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"77aacd78e20c6a6610f696eb1f1aa4b0/_normal0","creator":"","inputDataAvailable":"false"},{"idObject":19773,"modelId":20637,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"77aacd78e20c6a6610f696eb1f1aa4b0/_empty0","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.18277721779353,"lng":-135.06093781915757},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":81.26928406550978,"lng":-90.0},"submodelType":"UNKNOWN"}] \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/projects/drug_target_sample/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/drug_target_sample/token=MOCK_TOKEN_ID& index 685f9b480c96e79a9b15dcbc156de9be0b8e0d01..d75e17d06d3be7226cd2b024dec6fa18a18ddc46 100644 --- a/frontend-js/testFiles/apiCalls/projects/drug_target_sample/token=MOCK_TOKEN_ID& +++ b/frontend-js/testFiles/apiCalls/projects/drug_target_sample/token=MOCK_TOKEN_ID& @@ -1 +1 @@ -{"version":"0","disease":null,"organism":{"resource":"9606","link":"http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=9606","id":1104514,"type":"TAXONOMY"},"idObject":19186,"name":"UNKNOWN DISEASE MAP","projectId":"drug_target_sample","description":"","map":{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":20637,"tileSize":256,"width":1305,"height":473,"minZoom":2,"maxZoom":5,"layouts":[{"idObject":19771,"modelId":20637,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"77aacd78e20c6a6610f696eb1f1aa4b0/_nested0","creator":"","inputDataAvailable":"false"},{"idObject":19772,"modelId":20637,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"77aacd78e20c6a6610f696eb1f1aa4b0/_normal0","creator":"","inputDataAvailable":"false"},{"idObject":19773,"modelId":20637,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"77aacd78e20c6a6610f696eb1f1aa4b0/_empty0","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.18277721779353,"lng":-135.06093781915757},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":81.26928406550978,"lng":-90.0},"submodelType":"UNKNOWN"},"publicationCount":1,"overviewImageViews":[],"topOverviewImage":null} \ No newline at end of file +{"version":"0","disease":null,"organism":{"resource":"9606","link":"http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=9606","id":1104514,"type":"TAXONOMY"},"idObject":19186,"name":"UNKNOWN DISEASE MAP","projectId":"drug_target_sample","description":"","overviewImageViews":[],"topOverviewImage":null} \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/projects/empty/models/all/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/empty/models/all/token=MOCK_TOKEN_ID& new file mode 100644 index 0000000000000000000000000000000000000000..f8279f50e7be0d3d028d263f8b48e72c2d1263cc --- /dev/null +++ b/frontend-js/testFiles/apiCalls/projects/empty/models/all/token=MOCK_TOKEN_ID& @@ -0,0 +1 @@ +[{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":20638,"tileSize":256,"width":600,"height":400,"minZoom":2,"maxZoom":4,"layouts":[{"idObject":19774,"modelId":20638,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"a2e4822a98337283e39f7b60acf85ec9/_nested0","creator":"","inputDataAvailable":"false"},{"idObject":19775,"modelId":20638,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"a2e4822a98337283e39f7b60acf85ec9/_normal0","creator":"","inputDataAvailable":"false"},{"idObject":19776,"modelId":20638,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"a2e4822a98337283e39f7b60acf85ec9/_empty0","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.17133464081945,"lng":-135.0},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":75.95934455387827,"lng":-90.0},"submodelType":"UNKNOWN"}] \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/projects/empty/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/empty/token=MOCK_TOKEN_ID& index 077f4046876b04b2dfe564856ee549086d9e321c..6660298ee7b57a49c063c5521f5afde74fc2d644 100644 --- a/frontend-js/testFiles/apiCalls/projects/empty/token=MOCK_TOKEN_ID& +++ b/frontend-js/testFiles/apiCalls/projects/empty/token=MOCK_TOKEN_ID& @@ -1 +1 @@ -{"version":"0","disease":null,"organism":null,"idObject":19187,"name":"UNKNOWN DISEASE MAP","projectId":"empty","description":"","map":{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":20638,"tileSize":256,"width":600,"height":400,"minZoom":2,"maxZoom":4,"layouts":[{"idObject":19774,"modelId":20638,"name":"Pathways and compartments","description":null,"status":"Not available","progress":"0.00","directory":"a2e4822a98337283e39f7b60acf85ec9/_nested0","creator":"","inputDataAvailable":"false"},{"idObject":19775,"modelId":20638,"name":"Network","description":null,"status":"Not available","progress":"0.00","directory":"a2e4822a98337283e39f7b60acf85ec9/_normal0","creator":"","inputDataAvailable":"false"},{"idObject":19776,"modelId":20638,"name":"Empty","description":null,"status":"Not available","progress":"0.00","directory":"a2e4822a98337283e39f7b60acf85ec9/_empty0","creator":"","inputDataAvailable":"false"}],"submodels":[],"centerLatLng":{"lat":79.17133464081945,"lng":-135.0},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":75.95934455387827,"lng":-90.0},"submodelType":"UNKNOWN"},"publicationCount":0,"overviewImageViews":[],"topOverviewImage":null} \ No newline at end of file +{"version":"0","disease":null,"organism":null,"idObject":19187,"name":"UNKNOWN DISEASE MAP","projectId":"empty","description":"","overviewImageViews":[],"topOverviewImage":null} \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/projects/sample/models/all/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/models/all/token=MOCK_TOKEN_ID& new file mode 100644 index 0000000000000000000000000000000000000000..ffb8ec95f2a609c97a1b0d277e0062d9dea90941 --- /dev/null +++ b/frontend-js/testFiles/apiCalls/projects/sample/models/all/token=MOCK_TOKEN_ID& @@ -0,0 +1 @@ +[{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":15781,"tileSize":256,"width":1305,"height":473,"minZoom":2,"maxZoom":5,"layouts":[{"idObject":14081,"modelId":15781,"name":"Pathways and compartments","description":"","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_nested0","creator":"","inputDataAvailable":"false"},{"idObject":14082,"modelId":15781,"name":"Network","description":"","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_normal0","creator":"","inputDataAvailable":"false"},{"idObject":14083,"modelId":15781,"name":"Empty","description":"","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_empty0","creator":"","inputDataAvailable":"false"},{"idObject":18076,"modelId":15781,"name":"C:\\fakepath\\test.txt","description":"xxx","status":"OK","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/.18076","creator":"","inputDataAvailable":"true"},{"idObject":18077,"modelId":15781,"name":"xxx","description":"yyy","status":"OK","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/.18077","creator":"","inputDataAvailable":"true"}],"submodels":[],"centerLatLng":{"lat":79.18277721779353,"lng":-135.06093781915757},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":81.26928406550978,"lng":-90.0},"submodelType":"UNKNOWN"}] \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/projects/sample/statistics/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/statistics/token=MOCK_TOKEN_ID& index 929cc68f9c59295ea64afef542c1b3a3ef16caa7..e486585b45d892ed464f93acc9ccc8d3eeed2fff 100644 --- a/frontend-js/testFiles/apiCalls/projects/sample/statistics/token=MOCK_TOKEN_ID& +++ b/frontend-js/testFiles/apiCalls/projects/sample/statistics/token=MOCK_TOKEN_ID& @@ -1 +1 @@ -{"reactionAnnotations":{"SGD":0,"HGNC_SYMBOL":0,"GO":0,"MI_R_BASE_SEQUENCE":0,"MIR_TAR_BASE_MATURE_SEQUENCE":0,"REACTOME":2,"ENSEMBL":0,"OMIM":0,"CHEBI":0,"KEGG_COMPOUND":0,"DRUGBANK":0,"UNIGENE":0,"KEGG_ORTHOLOGY":0,"CHEMBL_TARGET":0,"WORM_BASE":0,"ENSEMBL_PLANTS":0,"REFSEQ":0,"ENTREZ":0,"UNKNOWN":0,"MI_R_BASE_MATURE_SEQUENCE":0,"UNIPROT_ISOFORM":0,"COG":0,"TAXONOMY":0,"KEGG_REACTION":0,"TOXICOGENOMIC_CHEMICAL":0,"CHEMSPIDER":0,"TAIR_LOCUS":0,"UNIPROT":0,"PHARM":0,"CCDS":0,"HGNC":0,"WIKIPEDIA":0,"HMDB":0,"PANTHER":0,"WIKIDATA":0,"PUBCHEM_SUBSTANCE":0,"CAS":0,"KEGG_PATHWAY":0,"MGD":0,"PUBMED":1,"CHEMBL_COMPOUND":0,"PFAM":0,"MESH_2012":0,"EC":0,"PUBCHEM":0,"DRUGBANK_TARGET_V4":0,"WIKIPATHWAYS":0,"INTERPRO":0,"KEGG_GENES":0},"elementAnnotations":{"SGD":0,"HGNC_SYMBOL":0,"GO":0,"MI_R_BASE_SEQUENCE":0,"MIR_TAR_BASE_MATURE_SEQUENCE":0,"REACTOME":4,"ENSEMBL":0,"OMIM":0,"CHEBI":0,"KEGG_COMPOUND":0,"DRUGBANK":0,"UNIGENE":0,"KEGG_ORTHOLOGY":0,"CHEMBL_TARGET":0,"WORM_BASE":0,"ENSEMBL_PLANTS":0,"REFSEQ":5,"ENTREZ":2,"UNKNOWN":0,"MI_R_BASE_MATURE_SEQUENCE":0,"UNIPROT_ISOFORM":0,"COG":0,"TAXONOMY":0,"KEGG_REACTION":0,"TOXICOGENOMIC_CHEMICAL":0,"CHEMSPIDER":0,"TAIR_LOCUS":0,"UNIPROT":0,"PHARM":1,"CCDS":0,"HGNC":1,"WIKIPEDIA":0,"HMDB":0,"PANTHER":0,"WIKIDATA":0,"PUBCHEM_SUBSTANCE":0,"CAS":0,"KEGG_PATHWAY":0,"MGD":0,"PUBMED":0,"CHEMBL_COMPOUND":0,"PFAM":0,"MESH_2012":0,"EC":0,"PUBCHEM":0,"DRUGBANK_TARGET_V4":0,"WIKIPATHWAYS":0,"INTERPRO":0,"KEGG_GENES":1}} \ No newline at end of file +{"reactionAnnotations":{"UNKNOWN":0,"MI_R_BASE_SEQUENCE":0,"WORM_BASE":0,"COG":0,"HGNC":0,"MIR_TAR_BASE_MATURE_SEQUENCE":0,"CHEBI":0,"DRUGBANK_TARGET_V4":0,"KEGG_ORTHOLOGY":0,"KEGG_COMPOUND":0,"PUBMED":1,"PHARM":0,"CAS":0,"REFSEQ":0,"WIKIPATHWAYS":0,"UNIPROT_ISOFORM":0,"OMIM":0,"UNIGENE":0,"TOXICOGENOMIC_CHEMICAL":0,"MESH_2012":0,"WIKIPEDIA":0,"HGNC_SYMBOL":0,"ENTREZ":0,"MI_R_BASE_MATURE_SEQUENCE":0,"CHEMBL_COMPOUND":0,"MGD":0,"PANTHER":0,"GO":0,"UNIPROT":0,"SGD":0,"WIKIDATA":0,"CCDS":0,"PUBCHEM":0,"EC":0,"HMDB":0,"INTERPRO":0,"DRUGBANK":0,"KEGG_PATHWAY":0,"TAXONOMY":0,"ENSEMBL_PLANTS":0,"TAIR_LOCUS":0,"KEGG_GENES":0,"REACTOME":2,"ENSEMBL":0,"KEGG_REACTION":0,"PUBCHEM_SUBSTANCE":0,"CHEMSPIDER":0,"PFAM":0,"CHEMBL_TARGET":0},"elementAnnotations":{"UNKNOWN":0,"MI_R_BASE_SEQUENCE":0,"WORM_BASE":0,"COG":0,"HGNC":1,"MIR_TAR_BASE_MATURE_SEQUENCE":0,"CHEBI":0,"DRUGBANK_TARGET_V4":0,"KEGG_ORTHOLOGY":0,"KEGG_COMPOUND":0,"PUBMED":0,"PHARM":1,"CAS":0,"REFSEQ":5,"WIKIPATHWAYS":0,"UNIPROT_ISOFORM":0,"OMIM":0,"UNIGENE":0,"TOXICOGENOMIC_CHEMICAL":0,"MESH_2012":0,"WIKIPEDIA":0,"HGNC_SYMBOL":0,"ENTREZ":2,"MI_R_BASE_MATURE_SEQUENCE":0,"CHEMBL_COMPOUND":0,"MGD":0,"PANTHER":0,"GO":0,"UNIPROT":0,"SGD":0,"WIKIDATA":0,"CCDS":0,"PUBCHEM":0,"EC":0,"HMDB":0,"INTERPRO":0,"DRUGBANK":0,"KEGG_PATHWAY":0,"TAXONOMY":0,"ENSEMBL_PLANTS":0,"TAIR_LOCUS":0,"KEGG_GENES":1,"REACTOME":4,"ENSEMBL":0,"KEGG_REACTION":0,"PUBCHEM_SUBSTANCE":0,"CHEMSPIDER":0,"PFAM":0,"CHEMBL_TARGET":0},"publications":1} \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID& index de46921fd2d951aa249b764d214c912789761b19..2854eb409636931a81242b5c1ea33fbc3b784969 100644 --- a/frontend-js/testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID& +++ b/frontend-js/testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID& @@ -1 +1 @@ -{"version":"0","disease":{"resource":"D010300","link":"http://bioportal.bioontology.org/ontologies/1351?p=terms&conceptid=D010300","id":1104479,"type":"MESH_2012"},"organism":{"resource":"1570291","link":"http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=1570291","id":1104480,"type":"TAXONOMY"},"idObject":14898,"name":"UNKNOWN DISEASE MAP","projectId":"sample","description":"","map":{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":15781,"tileSize":256,"width":1305,"height":473,"minZoom":2,"maxZoom":5,"layouts":[{"idObject":14081,"modelId":15781,"name":"Pathways and compartments","description":"","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_nested0","creator":"","inputDataAvailable":"false"},{"idObject":14082,"modelId":15781,"name":"Network","description":"","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_normal0","creator":"","inputDataAvailable":"false"},{"idObject":14083,"modelId":15781,"name":"Empty","description":"","status":"Not available","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/_empty0","creator":"","inputDataAvailable":"false"},{"idObject":18076,"modelId":15781,"name":"C:\\fakepath\\test.txt","description":"xxx","status":"OK","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/.18076","creator":"","inputDataAvailable":"true"},{"idObject":18077,"modelId":15781,"name":"xxx","description":"yyy","status":"OK","progress":"0.00","directory":"5e8ff9bf55ba3508199d22e984129be6/.18077","creator":"","inputDataAvailable":"true"}],"submodels":[],"centerLatLng":{"lat":79.18277721779353,"lng":-135.06093781915757},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":81.26928406550978,"lng":-90.0},"submodelType":"UNKNOWN"},"publicationCount":1,"overviewImageViews":[],"topOverviewImage":null} \ No newline at end of file +{"version":"0","disease":{"resource":"D010300","link":"http://bioportal.bioontology.org/ontologies/1351?p=terms&conceptid=D010300","id":1104479,"type":"MESH_2012"},"organism":{"resource":"1570291","link":"http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=1570291","id":1104480,"type":"TAXONOMY"},"idObject":14898,"name":"UNKNOWN DISEASE MAP","projectId":"sample","description":"","overviewImageViews":[],"topOverviewImage":null} \ No newline at end of file diff --git a/frontend-js/testFiles/project.json b/frontend-js/testFiles/project.json deleted file mode 100644 index fa052d1df622691b47b04d680c0f29b38e866157..0000000000000000000000000000000000000000 --- a/frontend-js/testFiles/project.json +++ /dev/null @@ -1 +0,0 @@ -{"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":[]} \ No newline at end of file diff --git a/frontend-js/testFiles/projectWithImages.json b/frontend-js/testFiles/projectWithImages.json deleted file mode 100644 index b989ec48df62f47ce57be130dd7028861f6240a5..0000000000000000000000000000000000000000 --- a/frontend-js/testFiles/projectWithImages.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"0","idObject":18115,"name":"UNKNOWN DISEASE MAP","projectId":"complex_model_with_images","description":"","map":{"name":"main","idObject":19397,"tileSize":256,"width":495,"height":357,"minZoom":2,"maxZoom":3,"layouts":[{"modelId":19397,"name":"Pathways and compartments","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested0","creator":"","inputDataAvailable":"false","idObject":17987},{"modelId":19397,"name":"Network","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal0","creator":"","inputDataAvailable":"false","idObject":17988},{"modelId":19397,"name":"Empty","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty0","creator":"","inputDataAvailable":"false","idObject":17989}],"submodels":[{"name":"s2","idObject":19400,"tileSize":256,"width":451,"height":253,"minZoom":2,"maxZoom":3,"layouts":[{"modelId":19400,"name":"Pathways and compartments","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested2","creator":"","inputDataAvailable":"false","idObject":17984},{"modelId":19400,"name":"Network","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal2","creator":"","inputDataAvailable":"false","idObject":17985},{"modelId":19400,"name":"Empty","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty2","creator":"","inputDataAvailable":"false","idObject":17986}],"submodels":[],"centerLatLng":{"lat":79.19006423440219,"lng":-135.09977827050997},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":78.0903352323621,"lng":-90.0}},{"name":"s3","idObject":19399,"tileSize":256,"width":421,"height":315,"minZoom":2,"maxZoom":3,"layouts":[{"modelId":19399,"name":"Pathways and compartments","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested3","creator":"","inputDataAvailable":"false","idObject":17978},{"modelId":19399,"name":"Network","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal3","creator":"","inputDataAvailable":"false","idObject":17979},{"modelId":19399,"name":"Empty","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty3","creator":"","inputDataAvailable":"false","idObject":17980}],"submodels":[],"centerLatLng":{"lat":79.19139766235872,"lng":-135.10688836104512},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":74.06362505154212,"lng":-90.0}},{"name":"s1","idObject":19398,"tileSize":256,"width":571,"height":276,"minZoom":2,"maxZoom":4,"layouts":[{"modelId":19398,"name":"Pathways and compartments","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_nested1","creator":"","inputDataAvailable":"false","idObject":17981},{"modelId":19398,"name":"Network","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_normal1","creator":"","inputDataAvailable":"false","idObject":17982},{"modelId":19398,"name":"Empty","status":"Not available","progress":"0.00","directory":"fbdbe43de73fe38f62889b89cb863adb/_empty1","creator":"","inputDataAvailable":"false","idObject":17983}],"submodels":[],"centerLatLng":{"lat":79.18613072613702,"lng":-135.07880910683014},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":79.44906929997262,"lng":-90.0}}],"centerLatLng":{"lat":79.18840067864828,"lng":-135.0909090909091},"topLeftLatLng":{"lat":85.05112877980659,"lng":-180.0},"bottomRightLatLng":{"lat":74.71754541589858,"lng":-90.0}},"overviewImageViews":[{"filename":"fbdbe43de73fe38f62889b89cb863adb/sub_image.png","width":963,"height":639,"links":[{"polygon":[{"x":200.0,"y":200.0},{"x":200.0,"y":400.0},{"x":400.0,"y":400.0},{"x":400.0,"y":200.0}],"zoomLevel":1,"latLng":{"lat":84.89177465079632,"lng":-161.8181818181818},"modelLinkId":19397,"type":"OverviewModelLink","idObject":2369}],"idObject":1261},{"filename":"fbdbe43de73fe38f62889b89cb863adb/test.png","width":963,"height":639,"links":[{"polygon":[{"x":10.0,"y":10.0},{"x":100.0,"y":10.0},{"x":100.0,"y":100.0},{"x":10.0,"y":100.0}],"imageLinkId":1261,"type":"OverviewImageLink","idObject":2370},{"polygon":[{"x":200.0,"y":200.0},{"x":200.0,"y":400.0},{"x":400.0,"y":400.0},{"x":400.0,"y":200.0}],"zoomLevel":0,"latLng":{"lat":84.89177465079632,"lng":-178.1818181818182},"modelLinkId":19397,"type":"OverviewModelLink","idObject":2371}],"idObject":1262}],"topOverviewImage":{"filename":"fbdbe43de73fe38f62889b89cb863adb/test.png","width":963,"height":639,"links":[{"polygon":[{"x":10.0,"y":10.0},{"x":100.0,"y":10.0},{"x":100.0,"y":100.0},{"x":10.0,"y":100.0}],"imageLinkId":1261,"type":"OverviewImageLink","idObject":2370},{"polygon":[{"x":200.0,"y":200.0},{"x":200.0,"y":400.0},{"x":400.0,"y":400.0},{"x":400.0,"y":200.0}],"zoomLevel":0,"latLng":{"lat":84.89177465079632,"lng":-178.1818181818182},"modelLinkId":19397,"type":"OverviewModelLink","idObject":2371}],"idObject":1262}} \ No newline at end of file diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java index 56071ddde9682e481a222acbb34b1021b3363bad..ac78d8b8d3665ee9c2839b91150ed323cc98d978 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java @@ -26,6 +26,7 @@ import lcsb.mapviewer.model.map.reaction.Reaction; import lcsb.mapviewer.model.map.species.Element; import lcsb.mapviewer.services.SecurityException; import lcsb.mapviewer.services.interfaces.IModelService; +import lcsb.mapviewer.services.interfaces.IProjectService; import lcsb.mapviewer.services.interfaces.IUserService; import lcsb.mapviewer.services.search.ElementMatcher; import lcsb.mapviewer.services.search.data.ElementIdentifier.ElementIdentifierType; @@ -33,7 +34,7 @@ import lcsb.mapviewer.services.view.AnnotationView; @Transactional(value = "txManager") public abstract class BaseRestImpl { - + /** * Default class logger. */ @@ -42,6 +43,9 @@ public abstract class BaseRestImpl { @Autowired private IModelService modelService; + @Autowired + private IProjectService projectService; + @Autowired private IUserService userService; @@ -262,4 +266,20 @@ public abstract class BaseRestImpl { } } + /** + * @return the projectService + * @see #projectService + */ + public IProjectService getProjectService() { + return projectService; + } + + /** + * @param projectService the projectService to set + * @see #projectService + */ + public void setProjectService(IProjectService projectService) { + this.projectService = projectService; + } + } diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectMetaData.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectMetaData.java index 8b4e0560e0a125cd69f1b7e2cb29b18c2378e795..58365826a5a547972bb6fe8a927ff2aa6c017c76 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectMetaData.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectMetaData.java @@ -47,10 +47,6 @@ public class ProjectMetaData implements Serializable { */ private String description; - private ModelMetaData map; - - private Integer publicationCount; - /** * List of overview images attached to this model. */ @@ -169,23 +165,6 @@ public class ProjectMetaData implements Serializable { this.projectId = projectId; } - /** - * @return the map - * @see #map - */ - public ModelMetaData getMap() { - return map; - } - - /** - * @param map - * the map to set - * @see #map - */ - public void setMap(ModelMetaData map) { - this.map = map; - } - /** * @return the idObject * @see #idObject @@ -236,22 +215,4 @@ public class ProjectMetaData implements Serializable { public void setOrganism(Map<String, Object> organism) { this.organism = organism; } - - /** - * @return the publicationCount - * @see #publicationCount - */ - public Integer getPublicationCount() { - return publicationCount; - } - - /** - * @param publicationCount - * the publicationCount to set - * @see #publicationCount - */ - public void setPublicationCount(Integer publicationCount) { - this.publicationCount = publicationCount; - } - } diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java index a64ef7f781d081252867ed3badc89b2f645c2a27..6f4f9a1d17c8a19eb9d1a9963ea161389d02424a 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java @@ -129,7 +129,7 @@ public class ProjectRestImpl extends BaseRestImpl { result.setVersion(model.getMapVersion()); result.setDescription(model.getNotes()); - Set<OverviewImage> set = new HashSet<OverviewImage>(); + Set<OverviewImage> set = new HashSet<>(); set.addAll(model.getOverviewImages()); for (OverviewImage image : model.getOverviewImages()) { for (OverviewLink ol : image.getLinks()) { @@ -144,13 +144,6 @@ public class ProjectRestImpl extends BaseRestImpl { logger.warn("Cannot determine top level image. Taking first one. " + model.getOverviewImages().get(0).getFilename()); result.setTopOverviewImage(factory.create(model.getOverviewImages().get(0))); } - result.setMap(new ModelMetaData(model)); - - List<Model> models = new ArrayList<>(); - models.add(model); - models.addAll(model.getSubmodels()); - result.setPublicationCount(publicationsRestImpl.getPublications(models).size()); - } return result; @@ -434,6 +427,8 @@ public class ProjectRestImpl extends BaseRestImpl { } result.put("reactionAnnotations", reactionAnnotations); + + result.put("publications", publicationsRestImpl.getPublications(models).size()); return result; } diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelController.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelController.java new file mode 100644 index 0000000000000000000000000000000000000000..1cecb23458d9dbb5021a4df738b7d44872f1474d --- /dev/null +++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelController.java @@ -0,0 +1,44 @@ +package lcsb.mapviewer.api.projects.models; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.CookieValue; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import lcsb.mapviewer.api.BaseController; +import lcsb.mapviewer.api.ObjectNotFoundException; +import lcsb.mapviewer.common.Configuration; +import lcsb.mapviewer.services.SecurityException; + +@RestController +public class ModelController extends BaseController { + @Autowired + private ModelRestImpl modelController; + + @RequestMapping(value = "/projects/{projectId:.+}/models/", method = { RequestMethod.GET }, produces = { MediaType.APPLICATION_JSON_VALUE }) + public List<ModelMetaData> getModels(// + @PathVariable(value = "projectId") String projectId, // + @CookieValue(value = Configuration.AUTH_TOKEN) String token // + ) throws SecurityException, ObjectNotFoundException { + return modelController.getModels(projectId, token); + } + + @RequestMapping(value = "/projects/{projectId:.+}/models/{modelId:.+}", method = { RequestMethod.GET }, produces = { MediaType.APPLICATION_JSON_VALUE }) + public Object getModel(// + @PathVariable(value = "modelId") String modelId, // + @PathVariable(value = "projectId") String projectId, // + @CookieValue(value = Configuration.AUTH_TOKEN) String token // + ) throws SecurityException, ObjectNotFoundException { + if (modelId.equals("*")) { + return modelController.getModels(projectId, token); + } else { + return modelController.getModel(projectId, modelId, token); + } + } + +} \ No newline at end of file diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ModelMetaData.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelMetaData.java similarity index 94% rename from rest-api/src/main/java/lcsb/mapviewer/api/projects/ModelMetaData.java rename to rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelMetaData.java index 273364a57e42d047251b7e1cf358cce2bcb69a54..62181d0b379a22f618a5cb6fa1d51622a282704e 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ModelMetaData.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelMetaData.java @@ -1,4 +1,4 @@ -package lcsb.mapviewer.api.projects; +package lcsb.mapviewer.api.projects.models; import java.awt.geom.Point2D; import java.io.Serializable; diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelRestImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..e2a747e9973f376d5fb3dd2c05c4f6796c3d3045 --- /dev/null +++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelRestImpl.java @@ -0,0 +1,58 @@ +package lcsb.mapviewer.api.projects.models; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; +import org.springframework.transaction.annotation.Transactional; + +import lcsb.mapviewer.api.BaseRestImpl; +import lcsb.mapviewer.api.ObjectNotFoundException; +import lcsb.mapviewer.model.Project; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.services.SecurityException; +import lcsb.mapviewer.services.view.AuthenticationToken; + +@Transactional(value = "txManager") +public class ModelRestImpl extends BaseRestImpl { + + /** + * Default class logger. + */ + @SuppressWarnings("unused") + private Logger logger = Logger.getLogger(ModelRestImpl.class); + + public List<ModelMetaData> getModels(String projectId, String token) throws SecurityException, ObjectNotFoundException { + AuthenticationToken authenticationToken = getUserService().getToken(token); + Project project = getProjectService().getProjectByProjectId(projectId, authenticationToken); + if (project == null) { + throw new ObjectNotFoundException("Project with given id doesn't exist"); + } + List<ModelMetaData> result = createData(project, authenticationToken); + return result; + } + + public ModelMetaData getModel(String projectId, String modelId, String token) throws SecurityException, ObjectNotFoundException { + AuthenticationToken authenticationToken = getUserService().getToken(token); + Model model = getModelService().getLastModelByProjectId(projectId, authenticationToken); + Model submodel = model.getSubmodelById(modelId); + if (submodel == null) { + return null; + } else { + return new ModelMetaData(submodel); + } + } + + private List<ModelMetaData> createData(Project project, AuthenticationToken token) { + List<ModelMetaData> result = new ArrayList<>(); + Model model = getModelService().getLastModelByProjectId(project.getProjectId(), token); + + List<Model> models = new ArrayList<>(); + models.add(model); + models.addAll(model.getSubmodels()); + for (Model model2 : models) { + result.add(new ModelMetaData(model2)); + } + return result; + } +} diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImpl.java index ace3974815517e448e1de1e8908cd432a6c0854f..0d3e0349126edced91c82d2ad674c564cbd97505 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImpl.java @@ -1,6 +1,7 @@ package lcsb.mapviewer.api.projects.models.publications; import java.util.ArrayList; +import java.util.Collection; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; @@ -56,7 +57,7 @@ public class PublicationsRestImpl extends BaseRestImpl { @Autowired private OverviewImageViewFactory factory; - public SortedMap<MiriamData, List<BioEntity>> getPublications(List<Model> models) { + public SortedMap<MiriamData, List<BioEntity>> getPublications(Collection<Model> models) { SortedMap<MiriamData, List<BioEntity>> publications = new TreeMap<>(); for (Model modelData : models) { for (Element element : modelData.getElements()) { diff --git a/rest-api/src/main/resources/applicationContext-rest.xml b/rest-api/src/main/resources/applicationContext-rest.xml index 5cbacb6fc6473c8ce69a2acb2117cc956ad83528..2642267ee9757e4925f78b5142c8022365264033 100644 --- a/rest-api/src/main/resources/applicationContext-rest.xml +++ b/rest-api/src/main/resources/applicationContext-rest.xml @@ -15,6 +15,7 @@ <bean id="CommentRestImpl" class="lcsb.mapviewer.api.projects.comments.CommentRestImpl"/> <bean id="ProjectRestImpl" class="lcsb.mapviewer.api.projects.ProjectRestImpl"/> + <bean id="ModelRestImpl" class="lcsb.mapviewer.api.projects.models.ModelRestImpl"/> <bean id="BioEntitiesRestImpl" class="lcsb.mapviewer.api.projects.models.bioEntities.BioEntitiesRestImpl"/> <bean id="ChemicalRestImpl" class="lcsb.mapviewer.api.projects.chemicals.ChemicalRestImpl"/> <bean id="ElementsRestImpl" class="lcsb.mapviewer.api.projects.models.bioEntities.elements.ElementsRestImpl"/> diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/ModelMetaDataTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/ModelMetaDataTest.java index 521d3701fe25873c35726f782374abdef87d39f8..243de1dad24d1043b65385b0ad480c7f711c2be0 100644 --- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/ModelMetaDataTest.java +++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/ModelMetaDataTest.java @@ -9,7 +9,7 @@ import org.junit.Test; import com.google.gson.Gson; -import lcsb.mapviewer.api.projects.ModelMetaData; +import lcsb.mapviewer.api.projects.models.ModelMetaData; import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.model.map.model.ModelFullIndexed; diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/AllModelsTests.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/AllModelsTests.java index 58bce555cf36a931dfc0b2cc6857edcb846f6004..3cb26a74c6f9c5eded78255a02e75de3bd9b137f 100644 --- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/AllModelsTests.java +++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/AllModelsTests.java @@ -10,7 +10,8 @@ import lcsb.mapviewer.api.projects.models.publications.AllPublicationsTests; @RunWith(Suite.class) @SuiteClasses({ // AllBioeEntitiesTests.class, // - AllPublicationsTests.class// + AllPublicationsTests.class, // + ModelRestImplTest.class,// }) public class AllModelsTests { diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/ModelRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/ModelRestImplTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8340abe87ecc4061b61e2ab7a6dcd37e9a994217 --- /dev/null +++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/ModelRestImplTest.java @@ -0,0 +1,58 @@ +package lcsb.mapviewer.api.projects.models; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; + +import java.util.List; +import java.util.Map; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; + +import lcsb.mapviewer.api.RestTestFunctions; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.services.interfaces.IModelService; + +public class ModelRestImplTest extends RestTestFunctions { + + @Autowired + ModelRestImpl _projectRestImpl; + + @AfterClass + public static void tearDownAfterClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testModels() throws Exception { + try { + ModelRestImpl modelRest = createMockProjectRest("testFiles/model/sample.xml"); + List<ModelMetaData> result = modelRest.getModels("sample", token.getId()); + assertEquals(1, result.size()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + private ModelRestImpl createMockProjectRest(String string) throws Exception { + Model model = super.getModelForFile(string, true); + IModelService mockModelService = Mockito.mock(IModelService.class); + Mockito.when(mockModelService.getLastModelByProjectId(anyString(), any())).thenReturn(model); + _projectRestImpl.setModelService(mockModelService); + return _projectRestImpl; + } + +}