From aee529f96698744126fcfbb73aba3cb351f2596a Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Fri, 2 Nov 2018 11:31:04 +0100
Subject: [PATCH] compartment name column added

---
 .../main/js/gui/export/ElementExportPanel.js  | 25 ++++++++++++++++++-
 .../js/gui/export/ElementExportPanel-test.js  | 15 +++++++++++
 2 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/frontend-js/src/main/js/gui/export/ElementExportPanel.js b/frontend-js/src/main/js/gui/export/ElementExportPanel.js
index b302c5af02..5b19555ab1 100644
--- a/frontend-js/src/main/js/gui/export/ElementExportPanel.js
+++ b/frontend-js/src/main/js/gui/export/ElementExportPanel.js
@@ -245,7 +245,30 @@ ElementExportPanel.prototype.getAllColumns = function () {
   }, {
     "columnName": "compartmentId",
     "method": "getCompartmentId",
-    "name": "Compartment"
+    "name": "Compartment id"
+  }, {
+    /**
+     *
+     * @param {Alias} bioEntity
+     * @param {Project} project
+     * @returns {Promise<string>}
+     */
+    "method": function (bioEntity, project) {
+      var modelId = bioEntity.getModelId();
+      var compartmentId = bioEntity.getCompartmentId();
+      if (compartmentId !== undefined) {
+        return project.getModelById(modelId).getByIdentifiedElement(new IdentifiedElement({
+          id: compartmentId,
+          modelId: modelId,
+          type: "ALIAS"
+        }), true).then(function(complex){
+          return complex.getName();
+        });
+      } else {
+        return Promise.resolve("");
+      }
+    },
+    "name": "Compartment name"
   }, {
     "columnName": "charge",
     "method": "getCharge",
diff --git a/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js b/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js
index 7a4096995b..7ae054ea43 100644
--- a/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js
+++ b/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js
@@ -302,6 +302,21 @@ describe('ElementExportPanel', function () {
         assert.ok(rowString.indexOf(complexName) >= 0);
       });
     });
+    it('compartment name', function () {
+      var compartmentName = "Compartment name2";
+      var exportObject = new ElementExportPanel({
+        element: testDiv,
+        project: helper.createProject(),
+        configuration: helper.getConfiguration()
+      });
+      var alias = helper.createAlias(exportObject.getProject().getModels()[0]);
+      var compartment = helper.createAlias(exportObject.getProject().getModels()[0]);
+      compartment.setName(compartmentName);
+      alias.setCompartmentId(compartment.getId());
+      return exportObject.createResponseRow(alias, exportObject.getAllColumns(), []).then(function (rowString) {
+        assert.ok(rowString.indexOf(compartmentName) >= 0);
+      });
+    });
     it('column with function manipulating data', function () {
       var exportObject = new ElementExportPanel({
         element: testDiv,
-- 
GitLab