Skip to content
Snippets Groups Projects
Commit ad71b851 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

possibility to have columns with processing function

parent 0b1e7419
No related branches found
No related tags found
4 merge requests!488Merge 12.1.1 into master,!48712.1.1 into master,!484v12.1.1 release,!482Resolve "Corrections to Export functionality"
...@@ -7,6 +7,7 @@ var AbstractExportPanel = require('./AbstractExportPanel'); ...@@ -7,6 +7,7 @@ var AbstractExportPanel = require('./AbstractExportPanel');
var Promise = require("bluebird"); var Promise = require("bluebird");
var logger = require('../../logger'); var logger = require('../../logger');
var GuiMessageError = require('../GuiMessageError'); var GuiMessageError = require('../GuiMessageError');
var Functions = require('../../Functions');
/** /**
* *
...@@ -257,18 +258,10 @@ NetworkExportPanel.prototype.createResponseString = function () { ...@@ -257,18 +258,10 @@ NetworkExportPanel.prototype.createResponseString = function () {
* @returns {Promise<string>} * @returns {Promise<string>}
*/ */
NetworkExportPanel.prototype.createResponseRow = function (reaction, columns, miriamTypes, elementIds) { NetworkExportPanel.prototype.createResponseRow = function (reaction, columns, miriamTypes, elementIds) {
var stringBuilder = []; var valuePromises = [];
var i, value; var i, value;
for (i = 0; i < columns.length; i++) { for (i = 0; i < columns.length; i++) {
var column = columns[i]; valuePromises.push(this._createResponseCell(reaction, columns[i], elementIds));
value = reaction[column.method]();
if (column.formatFunction !== undefined) {
value = column.formatFunction(value, reaction, elementIds);
}
if (value instanceof String || typeof value === "string") {
value = value.replace(/[\n\r]/g, ' ');
}
stringBuilder.push(value);
} }
for (i = 0; i < miriamTypes.length; i++) { for (i = 0; i < miriamTypes.length; i++) {
value = ""; value = "";
...@@ -280,9 +273,38 @@ NetworkExportPanel.prototype.createResponseRow = function (reaction, columns, mi ...@@ -280,9 +273,38 @@ NetworkExportPanel.prototype.createResponseRow = function (reaction, columns, mi
value += reference.getResource() + ","; value += reference.getResource() + ",";
} }
} }
stringBuilder.push(value); valuePromises.push(value);
}
return Promise.all(valuePromises).then(function (values) {
return values.join("\t");
});
};
/**
*
* @param {Reaction} reaction
* @param {ExportColumn} column
* @param {Object<string,boolean>} elementIds
* @returns {Promise<string>}
* @private
*/
NetworkExportPanel.prototype._createResponseCell = function (reaction, column, elementIds) {
var valuePromise;
if (Functions.isString(column.method)) {
valuePromise = Promise.resolve(reaction[column.method]());
} else {
valuePromise = Promise.resolve(column.method(reaction, this.getProject()));
} }
return Promise.resolve(stringBuilder.join("\t"));
return valuePromise.then(function (value) {
if (column.formatFunction !== undefined) {
value = column.formatFunction(value, reaction, elementIds);
}
if (Functions.isString(value)) {
value = value.replace(/[\n\r]/g, ' ');
}
return value;
});
}; };
module.exports = NetworkExportPanel; module.exports = NetworkExportPanel;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment