From dc23e86f8d112d9e70a914e6b0ff273713dd5d25 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Tue, 3 Jun 2014 12:56:37 +0000 Subject: [PATCH] SSDM-306: Show sub experiments on the menu refreshing it after creation. SVN: 31642 --- .../newbrowser/html/js/views/SampleForm.js | 3 +++ .../html/js/widgets/SideMenuWidget.js | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js index 80368082223..91ee77ada20 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js @@ -831,6 +831,9 @@ function SampleForm(serverFacade, inspector, containerId, profile, sampleTypeCod var callbackOk = function() { Util.unblockUI(); + if(localReference.experimentIdentifier) { + mainController.sideMenu.refreshSubExperiment(localReference.experimentIdentifier); + } // TO-DO: The Sample is not necessarily searchable after creation since the index runs asynchronously // localReference.serverFacade.searchWithType(localReference.sampleTypeCode, $("#sampleCode")[0].value, function(data) { // mainController.changeView('showViewSamplePageFromPermId',data[0].permId); diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SideMenuWidget.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SideMenuWidget.js index f3a9c26870d..9726b3a4159 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SideMenuWidget.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SideMenuWidget.js @@ -33,6 +33,31 @@ function SideMenuWidget(mainController, containerId, serverFacade) { this._pointerToMenuNode = this._menuStructure; this.isHidden = false; + this.refreshSubExperiment = function(experimentIdentifierToAskForSamples) { + var _this = this; + _this._serverFacade.listExperimentsForIdentifiers([experimentIdentifierToAskForSamples], function(data) { + var experimentToAskForSamples = data.result[0]; + _this._serverFacade.listSamplesForExperiments([experimentToAskForSamples], function(subExperiments) { + var nodeCleared = false; + for(var i = 0; i < subExperiments.result.length; i++) { + var subExperiment = subExperiments.result[i]; + if(subExperiment.experimentIdentifierOrNull) { + var projectCode = subExperiment.experimentIdentifierOrNull.split("/")[2]; + var experimentCode = subExperiment.experimentIdentifierOrNull.split("/")[3]; + var experimentNode = _this._getExperimentNodeForCode(projectCode, experimentCode); + if(!nodeCleared) { + experimentNode.newMenuIfSelected.children = []; + nodeCleared = true; + } + var menuItemSubExperiment = new SideMenuWidgetComponent(true, false, subExperiment.code, experimentNode, null, "showViewSamplePageFromPermId", subExperiment.permId, "(Sub Exp.)"); + experimentNode.newMenuIfSelected.children.push(menuItemSubExperiment); + } + } + _this.repaint(); + }); + }); + } + this._getProjectNodeForCode = function(projectCode) { for(var sIdx = 0; sIdx < this._menuStructure.newMenuIfSelected.children.length; sIdx++) { var spaceNode = this._menuStructure.newMenuIfSelected.children[sIdx]; -- GitLab