This is an automated email from the ASF dual-hosted git repository.

adityasharma pushed a commit to branch ROL-2157
in repository https://gitbox.apache.org/repos/asf/roller.git

commit 3ab437abdfe72ebd44dec417ea9dd7d13c43f2a5
Author: Aditya Sharma <iamadityashar...@gmail.com>
AuthorDate: Sun Nov 3 18:46:02 2019 +0530

    Fixed: Variables scoping in roller and searchhi js files (ROL-2157)
    Pattern is identified and reported at  sonacloud.io as Blocker
    
    JavaScript variable scope can be particularly difficult to understand and 
get right. The situation gets even worse when you consider the accidental 
creation of global variables, which is what happens when you declare a variable 
inside a function or the for clause of a for-loop without using the let, const 
or var keywords.
---
 app/src/main/webapp/theme/scripts/roller.js      | 32 ++++++++++-----------
 app/src/main/webapp/theme/scripts/searchhi.js    | 36 ++++++++++++------------
 app/src/main/webapp/themes/fauxcoly/searchhi.js  |  8 +++---
 app/src/main/webapp/themes/gaurav/js/searchhi.js |  8 +++---
 4 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/app/src/main/webapp/theme/scripts/roller.js 
b/app/src/main/webapp/theme/scripts/roller.js
index b60ca42..1ec4976 100644
--- a/app/src/main/webapp/theme/scripts/roller.js
+++ b/app/src/main/webapp/theme/scripts/roller.js
@@ -31,7 +31,7 @@ function getCookie(name) {
        if (start===-1) {
                return null;
        }
-       
+
        var end = document.cookie.indexOf(";", start+prefix.length);
        if (end===-1) {
                end=document.cookie.length;
@@ -55,7 +55,7 @@ function rememberUser(theForm) {
     var expires = new Date();
     expires.setTime(expires.getTime() + 24 * 365 * 60 * 60 * 1000); // sets it 
for approx 365 days.
     // sets it for entire domain, so freeroller will remember for all users
-    setCookie("commentAuthor",theForm.name.value,expires,"/"); 
+    setCookie("commentAuthor",theForm.name.value,expires,"/");
     setCookie("commentEmail",theForm.email.value,expires,"/");
     setCookie("commentUrl",theForm.url.value,expires,"/");
 }
@@ -66,12 +66,12 @@ function forgetUser(theForm) {
     deleteCookie("commentUrl","/");
 }
 
-/* This function is used to show/hide elements with a display:none style 
attribute */ 
+/* This function is used to show/hide elements with a display:none style 
attribute */
 function toggle(targetId) {
     if (document.getElementById) {
         target = document.getElementById(targetId);
        if (target.style.display === "none") {
-               target.style.display = "";            
+               target.style.display = "";
        } else {
                target.style.display = "none";
        }
@@ -84,14 +84,14 @@ function toggleFolder(targetId) {
     if (document.getElementById) {
         target = document.getElementById(targetId);
        if (target.style.display === "none") {
-               target.style.display = "";    
-            expanded = true;        
+               target.style.display = "";
+            expanded = true;
        } else {
                target.style.display = "none";
             expanded = false;
        }
         togglePlusMinus("i" + targetId);
-        
+
         // set a cookie to remember this preference
         var expires = new Date();
         expires.setTime(expires.getTime() + 24 * 365 * 60 * 60 * 1000); // 
sets it for approx 365 days.
@@ -114,14 +114,14 @@ function togglePlusMinus(targetId) {
 function folderPreference(folderId) {
     var folderCookie = getCookie("rfolder-"+folderId);
     if (folderCookie != null) { // we have user's last setting
-        folder = document.getElementById(folderId);
-        plusMinus = document.getElementById("i"+folderId);
+        var folder = document.getElementById(folderId);
+        var plusMinus = document.getElementById("i"+folderId);
         if (folderCookie === "true") { // show
             folder.style.display = "";
             plusMinus.innerHTML = "-";
         } else { // hide
             folder.style.display = "none";
-            plusMinus.innerHTML = "+"; 
+            plusMinus.innerHTML = "+";
         }
     }
 }
@@ -138,7 +138,7 @@ function toggleNextRow(e) {
     var thisRow = e.parentNode.parentNode;
     var tableBody = thisRow.parentNode;
     var nextRow = tableBody.getElementsByTagName("tr")[thisRow.rowIndex+1];
-    
+
     if (checked === true) {
         nextRow.style.display = "";
     } else {
@@ -152,15 +152,15 @@ function toggleControl(toggleId, targetId) {
         target = document.getElementById(targetId);
         toggle = document.getElementById(toggleId);
        if (target.style.display === "none") {
-               target.style.display = "";  
-            expanded = true;  
-                  
+               target.style.display = "";
+            expanded = true;
+
        } else {
-               target.style.display = "none";  
+               target.style.display = "none";
             expanded = false;
        }
         togglePlusMinus("i" + targetId);
-        
+
         // set a cookie to remember this preference
         var expires = new Date();
         expires.setTime(expires.getTime() + 24 * 365 * 60 * 60 * 1000); // 
sets it for approx 365 days.
diff --git a/app/src/main/webapp/theme/scripts/searchhi.js 
b/app/src/main/webapp/theme/scripts/searchhi.js
index 776d30b..8205281 100644
--- a/app/src/main/webapp/theme/scripts/searchhi.js
+++ b/app/src/main/webapp/theme/scripts/searchhi.js
@@ -25,23 +25,23 @@ function highlightWord(node,word) {
                        highlightWord(node.childNodes[hi_cn],word);
                }
        }
-       
+
        // And do this node itself
        if (node.nodeType == 3) { // text node
-               tempNodeVal = node.nodeValue.toLowerCase();
-               tempWordVal = word.toLowerCase();
+               var tempNodeVal = node.nodeValue.toLowerCase();
+               var tempWordVal = word.toLowerCase();
                if (tempNodeVal.indexOf(tempWordVal) != -1) {
-                       pn = node.parentNode;
+                       var pn = node.parentNode;
                        if (pn.className != "searchword") {
                                // word has not already been highlighted!
-                               nv = node.nodeValue;
-                               ni = tempNodeVal.indexOf(tempWordVal);
+                               var nv = node.nodeValue;
+                               var ni = tempNodeVal.indexOf(tempWordVal);
                                // Create a load of replacement nodes
-                               before = 
document.createTextNode(nv.substr(0,ni));
-                               docWordVal = nv.substr(ni,word.length);
-                               after = 
document.createTextNode(nv.substr(ni+word.length));
-                               hiwordtext = 
document.createTextNode(docWordVal);
-                               hiword = document.createElement("span");
+                               var before = 
document.createTextNode(nv.substr(0,ni));
+                               var docWordVal = nv.substr(ni,word.length);
+                               var after = 
document.createTextNode(nv.substr(ni+word.length));
+                               var hiwordtext = 
document.createTextNode(docWordVal);
+                               var hiword = document.createElement("span");
                                hiword.className = "searchword";
                                hiword.appendChild(hiwordtext);
                                pn.insertBefore(before,node);
@@ -55,16 +55,16 @@ function highlightWord(node,word) {
 
 function googleSearchHighlight() {
        if (!document.createElement) return;
-       ref = document.referrer;
+       var ref = document.referrer;
        if (ref.indexOf('?') == -1) return;
-       qs = ref.substr(ref.indexOf('?')+1);
-       qsa = qs.split('&');
-       for (i=0;i<qsa.length;i++) {
-               qsip = qsa[i].split('=');
+       var qs = ref.substr(ref.indexOf('?')+1);
+       var qsa = qs.split('&');
+       for (var i=0;i<qsa.length;i++) {
+               var qsip = qsa[i].split('=');
         if (qsip.length == 1) continue;
         if (qsip[0] == 'q' || qsip[0] == 'p') { // q= for Google, p= for Yahoo
-            words = unescape(qsip[1].replace(/\+/g,' ')).split(/\s+/);
-            for (w=0;w<words.length;w++) {
+            var words = unescape(qsip[1].replace(/\+/g,' ')).split(/\s+/);
+            for (var w=0;w<words.length;w++) {
                 
highlightWord(document.getElementsByTagName("body")[0],words[w]);
             }
         }
diff --git a/app/src/main/webapp/themes/fauxcoly/searchhi.js 
b/app/src/main/webapp/themes/fauxcoly/searchhi.js
index 339308a..901bc60 100644
--- a/app/src/main/webapp/themes/fauxcoly/searchhi.js
+++ b/app/src/main/webapp/themes/fauxcoly/searchhi.js
@@ -5,7 +5,7 @@
 /* Modified 20081218 to scroll to first hit like
    http://www.woolyss.free.fr/js/searchhi_Woolyss.js and say when not found */
 
-searchhi = {
+var searchhi = {
   highlightWord: function(node,word) {
     // Iterate into this nodes childNodes
     if (node.hasChildNodes) {
@@ -16,8 +16,8 @@ searchhi = {
 
     // And do this node itself
     if (node.nodeType == 3) { // text node
-           tempNodeVal = node.nodeValue.toLowerCase();
-           tempWordVal = word.toLowerCase();
+           var tempNodeVal = node.nodeValue.toLowerCase();
+           var tempWordVal = word.toLowerCase();
            if (tempNodeVal.indexOf(tempWordVal) != -1) {
                    var pn = node.parentNode;
                    // check if we're inside a "nosearchhi" zone
@@ -70,7 +70,7 @@ searchhi = {
   process: function(wordstring) {
     searchhi.found = 0;
     var words = wordstring.split(/\s+/);
-    for (w=0;w<words.length;w++) {
+    for (var w=0;w<words.length;w++) {
            
searchhi.highlightWord(document.getElementsByTagName("body")[0],words[w]);
     }
     if (searchhi.found === 0) {
diff --git a/app/src/main/webapp/themes/gaurav/js/searchhi.js 
b/app/src/main/webapp/themes/gaurav/js/searchhi.js
index 339308a..901bc60 100755
--- a/app/src/main/webapp/themes/gaurav/js/searchhi.js
+++ b/app/src/main/webapp/themes/gaurav/js/searchhi.js
@@ -5,7 +5,7 @@
 /* Modified 20081218 to scroll to first hit like
    http://www.woolyss.free.fr/js/searchhi_Woolyss.js and say when not found */
 
-searchhi = {
+var searchhi = {
   highlightWord: function(node,word) {
     // Iterate into this nodes childNodes
     if (node.hasChildNodes) {
@@ -16,8 +16,8 @@ searchhi = {
 
     // And do this node itself
     if (node.nodeType == 3) { // text node
-           tempNodeVal = node.nodeValue.toLowerCase();
-           tempWordVal = word.toLowerCase();
+           var tempNodeVal = node.nodeValue.toLowerCase();
+           var tempWordVal = word.toLowerCase();
            if (tempNodeVal.indexOf(tempWordVal) != -1) {
                    var pn = node.parentNode;
                    // check if we're inside a "nosearchhi" zone
@@ -70,7 +70,7 @@ searchhi = {
   process: function(wordstring) {
     searchhi.found = 0;
     var words = wordstring.split(/\s+/);
-    for (w=0;w<words.length;w++) {
+    for (var w=0;w<words.length;w++) {
            
searchhi.highlightWord(document.getElementsByTagName("body")[0],words[w]);
     }
     if (searchhi.found === 0) {

Reply via email to