From 111f852617f498270a7be95a812d8e5ad2a7bde4 Mon Sep 17 00:00:00 2001
From: pkupczyk <piotr.kupczyk@id.ethz.ch>
Date: Wed, 7 Jun 2023 14:27:45 +0200
Subject: [PATCH] SSDM-13720 : when an entity is moved from one entity to
 another, navigation menu is not updated - move sample triggered from a table

---
 .../widgets/MoveSampleController.js           | 48 ++++++++-----------
 1 file changed, 21 insertions(+), 27 deletions(-)

diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/MoveSampleController.js b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/MoveSampleController.js
index e5a48332bd4..d7a25d07eaf 100644
--- a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/MoveSampleController.js
+++ b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/MoveSampleController.js
@@ -48,35 +48,29 @@ function MoveSampleController(samplePermIdOrIds, successAction) {
             mainController.serverFacade.moveSample(
                 _this._moveSampleModel.samples.map(s => s.permId), experimentIdentifier,
                 function() {
-                    var msg = ELNDictionary.Sample + " " + _this._moveSampleModel.samples[0].identifier;
-                    if (_this._moveSampleModel.samples.length > 1) {
-                        msg = _this._moveSampleModel.samples.length + " " + ELNDictionary.Samples; 
-                    }
-                    Util.showSuccess(msg + " moved to " + _this._moveSampleModel.experimentIdentifier, function() {
-                        Util.unblockUI()
-                        if (_this._moveSampleModel.successAction) { 
-                            //Delete Samples from current experiment menu
-                            _this._moveSampleModel.samples.forEach(function(sample) {
-                                mainController.sideMenu.deleteNodeByEntityPermId("SAMPLE", sample.permId, true);
-                            });
-                            
-                            //Add Experiment to the menu if new
-                            if(_this._moveSampleModel.isNewExperiment) {
-                                var experimentIdentifier = _this._moveSampleModel.experimentIdentifier;
-                                var isInventory = profile.isInventorySpace(IdentifierUtil.getSpaceCodeFromIdentifier(experimentIdentifier));
-                                mainController.sideMenu.refreshExperiment({ 
-                                    identifier: _this._moveSampleModel.experimentIdentifier, 
-                                    code: IdentifierUtil.getCodeFromIdentifier(experimentIdentifier), 
-                                    properties : {}
-                                }, isInventory);
-                            }
+                    mainController.serverFacade.getExperimentOrNull(experimentIdentifier, function(experiment){
+                        var msg = ELNDictionary.Sample + " " + _this._moveSampleModel.samples[0].identifier;
+                        if (_this._moveSampleModel.samples.length > 1) {
+                            msg = _this._moveSampleModel.samples.length + " " + ELNDictionary.Samples; 
+                        }
+                        Util.showSuccess(msg + " moved to " + _this._moveSampleModel.experimentIdentifier, async function() {
+                            Util.unblockUI()
+
+                            //Refresh old experiment
+                            await mainController.sideMenu.refreshNodeParentByPermId("SAMPLE", _this._moveSampleModel.samples[0].permId);
 
-                            //Refresh Experiment where sample was moved
-                            mainController.sideMenu.refreshNodeParentByPermId("SAMPLE", _this._moveSampleModel.samples[0].permId);
+                            // Refresh new experiment
+                            if(_this._moveSampleModel.isNewExperiment){
+                                await mainController.sideMenu.refreshNodeByPermId("PROJECT", experiment.getProject().getPermId().getPermId());
+                            } else {
+                                await mainController.sideMenu.refreshNodeByPermId("EXPERIMENT", experiment.getPermId().getPermId());
+                            }
 
-                            _this._moveSampleModel.successAction();
-                        } 
-                    });
+                            if(_this._moveSampleModel.successAction){
+                                _this._moveSampleModel.successAction();
+                            }
+                        });
+                    })
                 });
         }
         if (this._moveSampleModel.isNewExperiment) {
-- 
GitLab