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 80368082223fae2a34122f3f5b5639e2b0791b25..91ee77ada206afb41ea6aaddac148e9e890cc927 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 f3a9c26870dfc898321f7f3fe6017e4a43a1f8a7..9726b3a4159f42a6e63b2552e41a4cce2c26a874 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];