From cd63d49105ca59f9e55f241828361a1e325f2dd8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20V=C3=A9ron?= <veron@veron.ch>
Date: Wed, 19 Nov 2014 11:40:39 +0100
Subject: [PATCH] [PASSED QA] Bug 10956 - Series of OPAC searches can cause a
 browser crash

This patch fixes the issue for bootstrap. It was earlier fixed for the prog theme.

Solution: Prevent  jQuery.fn.highlight = function(pat) to be called with empty pat
by skipping empty values in highlight loop.

To test:
Without patch, do a search as in comment #1 odr #3
Result: Endless loop (Script not responding)

Appply patch:
No endless loop, page displays OK

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
To reproduce you need to search a string with 2 spaces.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
I didn't manage to reproduce the problem, but I couldn't find
any regression either trying multiple searches.
Trusting Marc's and Jonathan's testing.
---
 koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt
index 28a3686..88bbad2 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt
@@ -1354,13 +1354,15 @@
         function highlightOn() {
             var x;
             for (x in q_array) {
-                q_array[x] = q_array[x].replace(/\w*:([\w])/, "$1");
-                q_array[x] = q_array[x].toLowerCase();
-                var myStopwords = "[% Koha.Preference('NotHighlightedWords') %]".toLowerCase().split('|');
-                if( $.inArray(q_array[x], myStopwords) == -1 ) {
-                    $(".title").highlight(q_array[x]);
-                    $(".author").highlight(q_array[x]);
-                    $(".results_summary").highlight(q_array[x]);
+                if ( q_array[x].length > 0 ) {
+                    q_array[x] = q_array[x].replace(/\w*:([\w])/, "$1");
+                    q_array[x] = q_array[x].toLowerCase();
+                    var myStopwords = "[% Koha.Preference('NotHighlightedWords') %]".toLowerCase().split('|');
+                    if( $.inArray(q_array[x], myStopwords) == -1 ) {
+                        $(".title").highlight(q_array[x]);
+                        $(".author").highlight(q_array[x]);
+                        $(".results_summary").highlight(q_array[x]);
+                    }
                 }
             }
             $(".highlight_toggle").toggle();
-- 
1.9.1