diff --git a/frontend-js/src/main/js/gui/export/ElementExportPanel.js b/frontend-js/src/main/js/gui/export/ElementExportPanel.js index b302c5af02b8fe86e9d9279b225c529b6e44f7c0..5b19555ab1ed0ca630d4b0a5fde10233b8bae4a2 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 7a4096995b92c05813df00e3e6d8faa60b07201b..7ae054ea43a11b081c926c0f37a498069ece178c 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,