From 8386b73306acfb950a234b7e344db62b97be4c5f Mon Sep 17 00:00:00 2001
From: juanf <juanf@ethz.ch>
Date: Tue, 9 May 2023 13:02:07 +0200
Subject: [PATCH] SSDM-12100 : Improved barcode reading from the menu

---
 .../eln-lims/html/js/util/BarcodeUtil.js        | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/BarcodeUtil.js b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/BarcodeUtil.js
index 811f6446d25..b0edc24a1e7 100644
--- a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/BarcodeUtil.js
+++ b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/BarcodeUtil.js
@@ -67,16 +67,21 @@ var BarcodeUtil = new function() {
             var isScanner = $scannerInput.is(":checked");
             if(isScanner) {
                 _this.enableAutomaticBarcodeReading();
-                _this.disableBarcodeReadingFromCamera();
+                _this.disableAutomaticBarcodeReadingFromCamera();
                 $cameraContainer.empty();
             }
             var isCamera = $cameraInput.is(":checked");
             if(isCamera) {
                 _this.disableAutomaticBarcodeReading();
-                _this.enableBarcodeReadingFromCamera($cameraContainer);
+                _this.enableAutomaticBarcodeReadingFromCamera($cameraContainer);
             }
         }
 
+        mainController.currentView.finalize = function() {
+            _this.disableAutomaticBarcodeReading();
+            _this.disableAutomaticBarcodeReadingFromCamera();
+        }
+
         $cameraInput.change(onDeviceChange);
         $scannerInput.change(onDeviceChange);
 
@@ -87,15 +92,15 @@ var BarcodeUtil = new function() {
 
     var codeReader = null;
 
-    this.disableBarcodeReadingFromCamera = function() {
+    this.disableAutomaticBarcodeReadingFromCamera = function() {
         if(codeReader != null) {
             codeReader.reset();
             codeReader = null;
         }
     }
 
-    this.enableBarcodeReadingFromCamera = function($container) {
-        _this.disableBarcodeReadingFromCamera();
+    this.enableAutomaticBarcodeReadingFromCamera = function($container) {
+        _this.disableAutomaticBarcodeReadingFromCamera();
 
         // Steals the main controller to show the video feed and a cancel button
         var content = $container;
@@ -121,7 +126,7 @@ var BarcodeUtil = new function() {
                         }
                         if (err && !(err instanceof ZXing.NotFoundException)) {
                             Util.showError("Failed to read barcode");
-                            _this.disableBarcodeReadingFromCamera();
+                            _this.disableAutomaticBarcodeReadingFromCamera();
                             $container.empty();
                         }
                     };
-- 
GitLab