From 08dfb08114d509ea50e55b87a1cd4511b4595b88 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Tue, 2 Apr 2019 16:38:12 +0200
Subject: [PATCH] MapModel contains information about authors

---
 frontend-js/src/main/js/map/data/MapModel.js  | 33 +++++++++++++++++++
 .../js/gui/admin/EditProjectDialog-test.js    |  2 +-
 .../src/test/js/map/data/MapModel-test.js     | 15 ++++-----
 .../models/all/token=MOCK_TOKEN_ID&           |  2 +-
 .../models/all/token=MOCK_TOKEN_ID&           |  2 +-
 .../models/all/token=MOCK_TOKEN_ID&           |  2 +-
 .../empty/models/all/token=MOCK_TOKEN_ID&     |  2 +-
 .../sample/models/all/token=ADMIN_TOKEN_ID&   |  2 +-
 .../sample/models/all/token=MOCK_TOKEN_ID&    |  2 +-
 9 files changed, 47 insertions(+), 15 deletions(-)

diff --git a/frontend-js/src/main/js/map/data/MapModel.js b/frontend-js/src/main/js/map/data/MapModel.js
index d8ea172a0a..851a82f0cd 100644
--- a/frontend-js/src/main/js/map/data/MapModel.js
+++ b/frontend-js/src/main/js/map/data/MapModel.js
@@ -11,6 +11,14 @@ var PointData = require('./PointData');
 var Point = require('../canvas/Point');
 var Reaction = require('./Reaction');
 
+/**
+ * @typedef {Object} Author
+ * @property {string} firstName
+ * @property {string} lastName
+ * @property {string} [organisation]
+ * @property {string} [email]
+ */
+
 /**
  * @typedef {Object} MapModelOptions
  * @property {number} idObject
@@ -25,6 +33,7 @@ var Reaction = require('./Reaction');
  * @property {number} defaultCenterY
  * @property {number} defaultZoomLevel
  * @property {Annotation[]|AnnotationOptions[]} references
+ * @property {Author[]} authors
  */
 
 /**
@@ -58,6 +67,7 @@ function MapModel(configuration) {
   this._sbmlFunctions = [];
   this._sbmlParameters = [];
   this._references = [];
+  this._authors = [];
 
 
   if (configuration !== undefined) {
@@ -74,6 +84,7 @@ function MapModel(configuration) {
       this.setDefaultCenterY(configuration.getDefaultCenterY());
       this.setDefaultZoomLevel(configuration.getDefaultZoomLevel());
       this.setReferences(configuration.getReferences());
+      this.setAuthors(configuration.getAuthors());
     } else {
       this.setId(configuration.idObject);
       this.setName(configuration.name);
@@ -87,6 +98,7 @@ function MapModel(configuration) {
       this.setDefaultCenterY(configuration.defaultCenterY);
       this.setDefaultZoomLevel(configuration.defaultZoomLevel);
       this.setReferences(configuration.references);
+      this.setAuthors(configuration.authors);
     }
   }
 }
@@ -898,5 +910,26 @@ MapModel.prototype.setReferences = function (references) {
   }
 };
 
+/**
+ *
+ * @returns {Author[]}
+ */
+MapModel.prototype.getAuthors = function () {
+  return this._authors;
+};
+
+/**
+ *
+ * @param {Author[]} authors
+ */
+MapModel.prototype.setAuthors = function (authors) {
+  if (authors === undefined) {
+    throw new Error("authors must be defined");
+  }
+  this._authors = [];
+  for (var i = 0; i < authors.length; i++) {
+    this._authors.push(authors[i]);
+  }
+};
 
 module.exports = MapModel;
diff --git a/frontend-js/src/test/js/gui/admin/EditProjectDialog-test.js b/frontend-js/src/test/js/gui/admin/EditProjectDialog-test.js
index 840128d973..52ea725632 100644
--- a/frontend-js/src/test/js/gui/admin/EditProjectDialog-test.js
+++ b/frontend-js/src/test/js/gui/admin/EditProjectDialog-test.js
@@ -125,7 +125,7 @@ describe('EditProjectDialog', function () {
       return dialog.openAddOverlayDialog();
     }).then(function (overlayDialog) {
       overlayDialog.setFileContent("Xyz");
-      return $("button:contains('UPLOAD')").click();
+      return $("button:contains('UPLOAD')", dialog.getElement()).click();
     }).then(function () {
       return dialog.destroy();
     });
diff --git a/frontend-js/src/test/js/map/data/MapModel-test.js b/frontend-js/src/test/js/map/data/MapModel-test.js
index 38a9cafcd4..102a312eb9 100644
--- a/frontend-js/src/test/js/map/data/MapModel-test.js
+++ b/frontend-js/src/test/js/map/data/MapModel-test.js
@@ -16,22 +16,21 @@ var assert = require('chai').assert;
 var logger = require('../../logger');
 
 describe('MapModel', function () {
+  var emptyData = {
+    idObject: 123,
+    references: [],
+    authors: []
+  };
 
   it("constructor", function () {
-    var model = new MapModel({
-      idObject: 123,
-      references: []
-    });
+    var model = new MapModel(emptyData);
 
     assert.equal(123, model.getId());
 
   });
 
   it("setReferences", function () {
-    var model = new MapModel({
-      idObject: 123,
-      references: []
-    });
+    var model = new MapModel(emptyData);
 
     model.setReferences([new Annotation({type: "", resource: ""})]);
     assert.equal(1, model.getReferences().length);
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&
index 5d9c3b8fd0..e474cf25d2 100644
--- 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&
@@ -1 +1 @@
-[{"version":null,"name":"main","idObject":19397,"tileSize":256,"width":495,"height":357,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":3,"submodelType":"UNKNOWN","references":[]},{"version":null,"name":"s1","idObject":19398,"tileSize":256,"width":571,"height":276,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":4,"submodelType":"UNKNOWN","references":[]},{"version":null,"name":"s3","idObject":19399,"tileSize":256,"width":421,"height":315,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":3,"submodelType":"UNKNOWN","references":[]},{"version":null,"name":"s2","idObject":19400,"tileSize":256,"width":451,"height":253,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":3,"submodelType":"UNKNOWN","references":[]}]
\ No newline at end of file
+[{"version":null,"name":"main","idObject":19397,"tileSize":256,"width":495,"height":357,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":3,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]},{"version":null,"name":"s1","idObject":19398,"tileSize":256,"width":571,"height":276,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":4,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]},{"version":null,"name":"s3","idObject":19399,"tileSize":256,"width":421,"height":315,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":3,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]},{"version":null,"name":"s2","idObject":19400,"tileSize":256,"width":451,"height":253,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":3,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]}]
\ 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&
index b433d77a29..419fd0d3dc 100644
--- 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&
@@ -1 +1 @@
-[{"version":null,"name":"main","idObject":16728,"tileSize":256,"width":515,"height":362,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":4,"submodelType":"UNKNOWN","references":[]},{"version":null,"name":"s1","idObject":16729,"tileSize":256,"width":571,"height":276,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":4,"submodelType":"UNKNOWN","references":[]},{"version":null,"name":"s3","idObject":16730,"tileSize":256,"width":421,"height":315,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":3,"submodelType":"UNKNOWN","references":[]},{"version":null,"name":"s2","idObject":16731,"tileSize":256,"width":451,"height":253,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":3,"submodelType":"UNKNOWN","references":[]}]
\ No newline at end of file
+[{"version":null,"name":"main","idObject":16728,"tileSize":256,"width":515,"height":362,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":4,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]},{"version":null,"name":"s1","idObject":16729,"tileSize":256,"width":571,"height":276,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":4,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]},{"version":null,"name":"s3","idObject":16730,"tileSize":256,"width":421,"height":315,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":3,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]},{"version":null,"name":"s2","idObject":16731,"tileSize":256,"width":451,"height":253,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":3,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]}]
\ 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&
index 9cdb9611d0..86aec4034d 100644
--- 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&
@@ -1 +1 @@
-[{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":20637,"tileSize":256,"width":1305,"height":473,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":5,"submodelType":"UNKNOWN","references":[]}]
\ No newline at end of file
+[{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":20637,"tileSize":256,"width":1305,"height":473,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":5,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]}]
\ 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&
index a1f313d102..b579158bcd 100644
--- 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&
@@ -1 +1 @@
-[{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":20638,"tileSize":256,"width":600,"height":400,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":4,"submodelType":"UNKNOWN","references":[]}]
\ No newline at end of file
+[{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":20638,"tileSize":256,"width":600,"height":400,"defaultCenterX":null,"defaultCenterY":null,"defaultZoomLevel":null,"minZoom":2,"maxZoom":4,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]}]
\ No newline at end of file
diff --git a/frontend-js/testFiles/apiCalls/projects/sample/models/all/token=ADMIN_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/models/all/token=ADMIN_TOKEN_ID&
index 8219bb7863..4bb549946f 100644
--- a/frontend-js/testFiles/apiCalls/projects/sample/models/all/token=ADMIN_TOKEN_ID&
+++ b/frontend-js/testFiles/apiCalls/projects/sample/models/all/token=ADMIN_TOKEN_ID&
@@ -1 +1 @@
-[{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":15781,"tileSize":256,"width":1305,"height":473,"defaultCenterX":100.0,"defaultCenterY":4.0,"defaultZoomLevel":5,"minZoom":2,"maxZoom":5,"submodelType":"UNKNOWN","references":[]}]
\ No newline at end of file
+[{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":15781,"tileSize":256,"width":1305,"height":473,"defaultCenterX":100.0,"defaultCenterY":4.0,"defaultZoomLevel":5,"minZoom":2,"maxZoom":5,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]}]
\ 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&
index 8219bb7863..4bb549946f 100644
--- 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&
@@ -1 +1 @@
-[{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":15781,"tileSize":256,"width":1305,"height":473,"defaultCenterX":100.0,"defaultCenterY":4.0,"defaultZoomLevel":5,"minZoom":2,"maxZoom":5,"submodelType":"UNKNOWN","references":[]}]
\ No newline at end of file
+[{"version":null,"name":"UNKNOWN DISEASE MAP","idObject":15781,"tileSize":256,"width":1305,"height":473,"defaultCenterX":100.0,"defaultCenterY":4.0,"defaultZoomLevel":5,"minZoom":2,"maxZoom":5,"submodelType":"UNKNOWN","references":[],"authors":[],"creationDate":null,"modificationDates":[]}]
\ No newline at end of file
-- 
GitLab