From 11ab323298929254f1a43f2a1b07089b77923965 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Mon, 30 Oct 2017 14:00:03 +0100 Subject: [PATCH] plugin proxy provides meta information about project --- .../src/main/js/plugin/MinervaPluginProxy.js | 31 ++++++++++++ .../test/js/plugin/MinervaPluginProxy-test.js | 49 +++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/frontend-js/src/main/js/plugin/MinervaPluginProxy.js b/frontend-js/src/main/js/plugin/MinervaPluginProxy.js index 5e72c1e755..820bc0694b 100644 --- a/frontend-js/src/main/js/plugin/MinervaPluginProxy.js +++ b/frontend-js/src/main/js/plugin/MinervaPluginProxy.js @@ -1,5 +1,6 @@ "use strict"; +var Annotation = require('../map/data/Annotation'); var IdentifiedElement = require('../map/data/IdentifiedElement'); var UserDbOverlay = require('../map/overlay/UserDbOverlay'); var Configuration = require('../Configuration'); @@ -131,6 +132,36 @@ function createProjectData(options) { param = [param]; } return getReactionsForElements(param, map); + }, + getProjectId: function () { + return map.getProject().getProjectId(); + }, + getName: function () { + return map.getProject().getName(); + }, + getVersion: function () { + return map.getProject().getVersion(); + }, + getDisease: function () { + if (map.getProject().getDisease() !== undefined) { + return new Annotation(map.getProject().getDisease()); + } else { + return null; + } + }, + getOrganism: function () { + if (map.getProject().getOrganism() !== undefined) { + return new Annotation(map.getProject().getOrganism()); + } else { + return null; + } + }, + getModels: function () { + var result = [{modelId: map.getId()}]; + for (var i = 0; i < map.getSubmaps().length; i++) { + result.push({modelId: map.getSubmaps()[i].getId()}); + } + return result; } }; } diff --git a/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js b/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js index 7d75b82467..4efd86fa13 100644 --- a/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js +++ b/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js @@ -300,5 +300,54 @@ describe('MinervaPluginProxy', function () { }); }); + it("getProjectId", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.equal("sample", proxy.project.data.getProjectId()); + map.destroy(); + }); + }); + it("getName", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.equal("UNKNOWN DISEASE MAP", proxy.project.data.getName()); + map.destroy(); + }); + }); + it("getVersion", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.equal("0", proxy.project.data.getVersion()); + map.destroy(); + }); + }); + it("getDisease", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.ok(proxy.project.data.getDisease()); + map.destroy(); + }); + }); + it("getOrganism", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.ok(proxy.project.data.getOrganism()); + map.destroy(); + }); + }); + it("getModels", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.equal(1, proxy.project.data.getModels().length); + map.destroy(); + }); + }); + }); -- GitLab