diff --git a/README.md b/README.md index 861648d99c5e64126470d7438abf13c19892bd67..c8bb6d65f4fc5cbd20d1234135c1e1d56efa5339 100644 --- a/README.md +++ b/README.md @@ -523,6 +523,12 @@ customMap.getProject() ``` customMap.getConfiguration().then(function(configuration){console.log(configuration);}); ``` +* `getAllBioEntities()` + * Arguments: NONE + * Example: +``` +customMap.getAllBioEntities().then(function(bioEntities){console.log(bioEntities);}); +``` * `getBioEntityById({id, modelId, type})` * Arguments: TODO * Example: diff --git a/frontend-js/src/main/js/minerva.js b/frontend-js/src/main/js/minerva.js index f84281272aa732bf0a147b5856f517e54f7e5425..78673ae57585a9f369a36f34407aa73c6855e326 100644 --- a/frontend-js/src/main/js/minerva.js +++ b/frontend-js/src/main/js/minerva.js @@ -323,6 +323,37 @@ function createResult(customMap) { } }); }, + getAllBioEntities : function() { + var models = [ customMap.getModel() ]; + var result = []; + for (var i = 0; i < customMap.getModel().getSubmodels().length; i++) { + models.push(customMap.getModel().getSubmodels()[i]); + } + var promises = []; + for (var i = 0; i < models.length; i++) { + promises.push(models[i].getAliases({ + type : customMap.getConfiguration().getElementTypes(), + complete : true, + })); + } + return Promise.all(promises).then(function(aliasesByModel) { + var promises = []; + for (var i = 0; i < models.length; i++) { + promises.push(models[i].getReactionsForElements(aliasesByModel[i], true)); + for (var j = 0; j < aliasesByModel[i].length; j++) { + result.push(aliasesByModel[i][j]); + } + } + return Promise.all(promises); + }).then(function(reactionsByModel) { + for (var i = 0; i < models.length; i++) { + for (var j = 0; j < reactionsByModel[i].length; j++) { + result.push(reactionsByModel[i][j]); + } + } + return result; + }); + }, getReactionsWithElement : function(param) { if (param.length === undefined) { param = [ param ]; diff --git a/frontend-js/src/test/js/minerva-test.js b/frontend-js/src/test/js/minerva-test.js index 6d989ae49367d46f79e121cd6197df6d322d0d2f..91bcc1657e12613190d873ad5f80652cf5b61e75 100644 --- a/frontend-js/src/test/js/minerva-test.js +++ b/frontend-js/src/test/js/minerva-test.js @@ -496,4 +496,21 @@ describe('minerva global', function() { }); }); + it("getAllBioEntities", function() { + var options = { + projectId : "sample", + element : testDiv + }; + var globalResult; + return minerva.create(options).then(function(result) { + globalResult = result; + return result.getAllBioEntities(); + }).then(function(result) { + assert.ok(result); + assert.ok(result.length > 0); + }).then(function() { + globalResult.destroy(); + }); + }); + });