From 085c22168fbcee4c01f718aad7a6a9f761bbdb19 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Fri, 2 Nov 2018 10:16:29 +0100 Subject: [PATCH] creating rows changed into promises --- .../src/main/js/gui/export/AbstractExportPanel.js | 8 ++++---- .../src/main/js/gui/export/ElementExportPanel.js | 14 ++++++++------ .../test/js/gui/export/ElementExportPanel-test.js | 5 +++-- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/frontend-js/src/main/js/gui/export/AbstractExportPanel.js b/frontend-js/src/main/js/gui/export/AbstractExportPanel.js index 74db8cafbb..ceb70d95de 100644 --- a/frontend-js/src/main/js/gui/export/AbstractExportPanel.js +++ b/frontend-js/src/main/js/gui/export/AbstractExportPanel.js @@ -361,7 +361,7 @@ AbstractExportPanel.prototype._getAllCompartments = function () { /** * * @returns {HTMLElement} - * @private + * @protected */ AbstractExportPanel.prototype._createDownloadButton = function () { var self = this; @@ -445,7 +445,7 @@ AbstractExportPanel.prototype._createSelectIncludedCompartmentDiv = function () /** * * @returns {Promise<HTMLElement>} - * @private + * @protected */ AbstractExportPanel.prototype._createSelectExcludedCompartmentDiv = function () { var self = this; @@ -563,8 +563,8 @@ AbstractExportPanel.prototype.getSelectedExcludedCompartments = function () { /** * * @param {{name:string}[]} columns - * @param {MiriamType[]> miriamTypes - * @returns {string} + * @param {MiriamType[]} miriamTypes + * @returns {Promise<string>} */ AbstractExportPanel.prototype.createResponseHeader = function (columns, miriamTypes) { var stringBuilder = []; diff --git a/frontend-js/src/main/js/gui/export/ElementExportPanel.js b/frontend-js/src/main/js/gui/export/ElementExportPanel.js index dc6db945ec..3bd7a1f563 100644 --- a/frontend-js/src/main/js/gui/export/ElementExportPanel.js +++ b/frontend-js/src/main/js/gui/export/ElementExportPanel.js @@ -112,12 +112,14 @@ ElementExportPanel.prototype.createResponseString = function () { return Promise.reject(new GuiMessageError("You must select at least one column")); } - var rows = []; - rows.push(self.createResponseHeader(selectedColumns, miriamTypes)); + var rowPromises = []; + rowPromises.push(self.createResponseHeader(selectedColumns, miriamTypes)); for (var i = 0; i < elements.length; i++) { - rows.push(self.createResponseRow(elements[i], selectedColumns, miriamTypes)); + rowPromises.push(self.createResponseRow(elements[i], selectedColumns, miriamTypes)); } - return rows.join("\n"); + return Promise.all(rowPromises).then(function(rows){ + return rows.join("\n"); + }); }); }; @@ -126,7 +128,7 @@ ElementExportPanel.prototype.createResponseString = function () { * @param {Alias} alias * @param {Array} columns * @param {MiriamType[]} miriamTypes - * @returns {string} + * @returns {Promise<string>} */ ElementExportPanel.prototype.createResponseRow = function (alias, columns, miriamTypes) { var stringBuilder = []; @@ -154,7 +156,7 @@ ElementExportPanel.prototype.createResponseRow = function (alias, columns, miria } stringBuilder.push(value); } - return stringBuilder.join("\t"); + return Promise.resolve(stringBuilder.join("\t")); }; /** 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 011f0beaa2..d77073641a 100644 --- a/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js +++ b/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js @@ -283,8 +283,9 @@ describe('ElementExportPanel', function () { var alias = helper.createAlias(); var desc = "test\ntest2\n"; alias.setDescription(desc); - var rowString = exportObject.createResponseRow(alias, exportObject.getAllColumns(), []); - assert.ok(rowString.indexOf("test\ntest2\n") === -1); + return exportObject.createResponseRow(alias, exportObject.getAllColumns(), []).then (function(rowString){ + assert.ok(rowString.indexOf("test\ntest2\n") === -1); + }); }); }); -- GitLab