From 81b120fdee7fd3e07b900a7a9ba2d9b37cfa7a85 Mon Sep 17 00:00:00 2001
From: Stefan Weil <sw@weilnetz.de>
Date: Fri, 19 Oct 2018 15:00:56 +0200
Subject: [PATCH] Fix some issues reported by LGTM (#1248)

- Includes a bug fix to the status lookup code that was performing unnecessary duplicate work.
---
 Gruntfile.js                                | 2 +-
 themes/bootstrap3/js/check_save_statuses.js | 5 +++--
 themes/bootstrap3/js/embedded_record.js     | 3 ---
 themes/bootstrap3/js/map_tab_leaflet.js     | 6 ++----
 4 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/Gruntfile.js b/Gruntfile.js
index b0c295e141a..d26d0fc106f 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -17,7 +17,7 @@ module.exports = function(grunt) {
       // First identify mixins:
       var mixinMatches = config.match(/["']mixins["']\s*=>\s*\[([^\]]+)\]/);
       if (mixinMatches !== null) {
-        var mixinParts = mixinMatches[1].split(',')
+        var mixinParts = mixinMatches[1].split(',');
         for (var i = 0; i < mixinParts.length; i++) {
           parts[1] = mixinParts[i].trim().replace(/['"]/g, '');
           retVal.push(parts.join('/') + '/');
diff --git a/themes/bootstrap3/js/check_save_statuses.js b/themes/bootstrap3/js/check_save_statuses.js
index 07ff265e6ed..8eb0f8f6a71 100644
--- a/themes/bootstrap3/js/check_save_statuses.js
+++ b/themes/bootstrap3/js/check_save_statuses.js
@@ -60,8 +60,9 @@ function runSaveAjaxForQueue() {
           displaySaveStatus(response.data.statuses[id], saveStatusEls[id]);
 
           // Remove populated ids from the queue
-          for (var j = 0; j < saveStatusObjs; j++) {
-            if (saveStatusObjs[j].id === id) {
+          for (var j = saveStatusObjs.length - 1; j >= 0; j--) {
+            var parts = id.split('|');
+            if (saveStatusObjs[j].id === parts[1] && saveStatusObjs[j].source === parts[0]) {
               saveStatusObjs.splice(j, 1);
             }
           }
diff --git a/themes/bootstrap3/js/embedded_record.js b/themes/bootstrap3/js/embedded_record.js
index 6d39891392f..d776276eefa 100644
--- a/themes/bootstrap3/js/embedded_record.js
+++ b/themes/bootstrap3/js/embedded_record.js
@@ -206,9 +206,6 @@ VuFind.register('embedded', function embedded() {
     var result;
     var i;
     var j;
-    if (!storage) {
-      return;
-    }
     hiddenIds = $('.hiddenId');
     for (i = 0; i < items.length; i++) {
       parts = items[i].split(_SEPERATOR);
diff --git a/themes/bootstrap3/js/map_tab_leaflet.js b/themes/bootstrap3/js/map_tab_leaflet.js
index 9d7087466b1..b1dc8a6299e 100644
--- a/themes/bootstrap3/js/map_tab_leaflet.js
+++ b/themes/bootstrap3/js/map_tab_leaflet.js
@@ -3,7 +3,6 @@
 //Coordinate order:  Storage and Query: WENS ; Display: WSEN
 
 function loadMapTab(mapData, mapGraticule, basemap) {
-  var init = true;
   var basemapLayer = new L.TileLayer(basemap[0], {attribution: basemap[1]});	
   var geoFeatureGroup = L.featureGroup();
   // Define styles for icons
@@ -21,7 +20,7 @@ function loadMapTab(mapData, mapGraticule, basemap) {
   });
 
   $('#map-canvas').show();
-  init = function drawMap() {
+  var init = function drawMap() {
     var featureCount = mapData.length;
     var label, label_name, label_coords, split_coords;
     var i = 0;
@@ -51,7 +50,7 @@ function loadMapTab(mapData, mapGraticule, basemap) {
       var south = mapData[i][1];
       var east = mapData[i][2];
       var north = mapData[i][3];
- 
+
       // Create features
       var geoFeature;
       if (west === east && north === south) {
@@ -108,5 +107,4 @@ function loadMapTab(mapData, mapGraticule, basemap) {
     }
   };
   init();
-  init = false;
 }
-- 
GitLab