View | Details | Raw Unified | Return to bug 10858
Collapse All | Expand All

(-)a/koha-tmpl/opac-tmpl/prog/en/includes/doc-head-close.inc (+3 lines)
Lines 35-40 Link Here
35
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
35
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
36
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery-ui.js"></script>
36
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery-ui.js"></script>
37
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.hoverIntent.minified.js"></script>
37
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.hoverIntent.minified.js"></script>
38
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.json.js"></script>
39
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.cookie.min.js"></script>
40
<script type="text/javascript" src="[% themelang %]/js/commons.js"></script>
38
<script type="text/javascript" src="[% themelang %]/js/script.js"></script>
41
<script type="text/javascript" src="[% themelang %]/js/script.js"></script>
39
[% IF ( OPACAmazonCoverImages ) %]
42
[% IF ( OPACAmazonCoverImages ) %]
40
<script type="text/javascript" language="javascript">//<![CDATA[
43
<script type="text/javascript" language="javascript">//<![CDATA[
(-)a/koha-tmpl/opac-tmpl/prog/en/js/commons.js (+71 lines)
Line 0 Link Here
1
// Extends jQuery API
2
// http://www.wskidmore.com/downloads/jquery-uniqueArray.min.js
3
jQuery.extend({uniqueArray:function(e){if($.isArray(e)){var c={};var a,b;for(b=0,a=e.length;b<a;b++){var d=e[b].toString();if(c[d]){e.splice(b,1);a--;b--}else{c[d]=true}}}return(e)}});
4
5
function removeByValue(arr, val) {
6
    for(var i=0; i<arr.length; i++) {
7
        if(arr[i] == val) {
8
            arr.splice(i, 1);
9
            break;
10
        }
11
    }
12
}
13
14
function paramOfUrl( url, param ) {
15
    param = param.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
16
    var regexS = "[\\?&]"+param+"=([^&#]*)";
17
    var regex = new RegExp( regexS );
18
    var results = regex.exec( url );
19
    if( results == null ) {
20
        return "";
21
    } else {
22
        return results[1];
23
    }
24
}
25
26
function addBibToContext( bibnum ) {
27
    var bibnums = getContextBiblioNumbers();
28
    bibnums.push(bibnum);
29
    setContextBiblioNumbers( bibnums );
30
    //var store = sessionStorage.getItem( "bibs_selected" );
31
}
32
33
function delBibToContext( bibnum ) {
34
    var bibnums = getContextBiblioNumbers();
35
    removeByValue( bibnums, bibnum );
36
    setContextBiblioNumbers( $.uniqueArray( bibnums ) );
37
}
38
39
function setContextBiblioNumbers( bibnums ) {
40
    //sessionStorage.setItem("bibs_selected", JSON.stringify( bibnums ) );
41
    $.cookie('bibs_selected', JSON.stringify( bibnums ));
42
}
43
44
function getContextBiblioNumbers() {
45
    //var r = sessionStorage.getItem("bibs_selected");
46
    var r = $.cookie('bibs_selected');
47
    if ( r ) {
48
        return JSON.parse(r);
49
    }
50
    r = new Array();
51
    return r;
52
}
53
54
function resetSearchContext() {
55
    setContextBiblioNumbers( new Array() );
56
}
57
58
$(document).ready(function(){
59
    // forms with action leading to search
60
    $("form[action*='opac-search.pl']").submit(function(){
61
        resetSearchContext();
62
    });
63
    // any link to launch a search except navigation links
64
    $("[href*='opac-search.pl?']").not(".nav").not('.searchwithcontext').click(function(){
65
        resetSearchContext();
66
    });
67
    // any link to a detail page from the results page.
68
    $("#bookbag_form a[href*='opac-detail.pl?']").click(function(){
69
        resetSearchContext();
70
    });
71
});
(-)a/koha-tmpl/opac-tmpl/prog/en/lib/jquery/plugins/jquery.cookie.min.js (+1 lines)
Line 0 Link Here
1
jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m.expires=-1}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=m.expires}e="; expires="+f.toUTCString()}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=jQuery.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}};
(-)a/koha-tmpl/opac-tmpl/prog/en/lib/jquery/plugins/jquery.json.js (+199 lines)
Line 0 Link Here
1
/**
2
 * jQuery JSON plugin 2.4-alpha
3
 *
4
 * @author Brantley Harris, 2009-2011
5
 * @author Timo Tijhof, 2011-2012
6
 * @source This plugin is heavily influenced by MochiKit's serializeJSON, which is
7
 *         copyrighted 2005 by Bob Ippolito.
8
 * @source Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
9
 *         website's http://www.json.org/json2.js, which proclaims:
10
 *         "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
11
 *         I uphold.
12
 * @license MIT License <http://www.opensource.org/licenses/mit-license.php>
13
 */
14
(function ($) {
15
     'use strict';
16
17
 var escape = /["\\\x00-\x1f\x7f-\x9f]/g,
18
               meta = {
19
                       '\b': '\\b',
20
                   '\t': '\\t',
21
                   '\n': '\\n',
22
                   '\f': '\\f',
23
                   '\r': '\\r',
24
                   '"' : '\\"',
25
                   '\\': '\\\\'
26
           },
27
             hasOwn = Object.prototype.hasOwnProperty;
28
29
     /**
30
     * jQuery.toJSON
31
        * Converts the given argument into a JSON representation.
32
      *
33
      * @param o {Mixed} The json-serializable *thing* to be converted
34
       *
35
      * If an object has a toJSON prototype, that will be used to get the representation.
36
    * Non-integer/string keys are skipped in the object, as are keys that point to a
37
       * function.
38
    *
39
      */
40
    $.toJSON = typeof JSON === 'object' && JSON.stringify ? JSON.stringify : function (o) {
41
                if (o === null) {
42
                      return 'null';
43
         }
44
45
             var pairs, k, name, val,
46
                       type = $.type(o);
47
48
             if (type === 'undefined') {
49
                    return undefined;
50
              }
51
52
             // Also covers instantiated Number and Boolean objects,
53
                // which are typeof 'object' but thanks to $.type, we
54
          // catch them here. I don't know whether it is right
55
           // or wrong that instantiated primitives are not
56
               // exported to JSON as an {"object":..}.
57
               // We choose this path because that's what the browsers did.
58
           if (type === 'number' || type === 'boolean') {
59
                 return String(o);
60
              }
61
              if (type === 'string') {
62
                       return $.quoteString(o);
63
               }
64
              if (typeof o.toJSON === 'function') {
65
                  return $.toJSON(o.toJSON());
66
           }
67
              if (type === 'date') {
68
                 var month = o.getUTCMonth() + 1,
69
                               day = o.getUTCDate(),
70
                          year = o.getUTCFullYear(),
71
                             hours = o.getUTCHours(),
72
                               minutes = o.getUTCMinutes(),
73
                           seconds = o.getUTCSeconds(),
74
                           milli = o.getUTCMilliseconds();
75
76
                       if (month < 10) {
77
                              month = '0' + month;
78
                   }
79
                      if (day < 10) {
80
                                day = '0' + day;
81
                       }
82
                      if (hours < 10) {
83
                              hours = '0' + hours;
84
                   }
85
                      if (minutes < 10) {
86
                            minutes = '0' + minutes;
87
                       }
88
                      if (seconds < 10) {
89
                            seconds = '0' + seconds;
90
                       }
91
                      if (milli < 100) {
92
                             milli = '0' + milli;
93
                   }
94
                      if (milli < 10) {
95
                              milli = '0' + milli;
96
                   }
97
                      return '"' + year + '-' + month + '-' + day + 'T' +
98
                            hours + ':' + minutes + ':' + seconds +
99
                                '.' + milli + 'Z"';
100
            }
101
102
             pairs = [];
103
104
           if ($.isArray(o)) {
105
                    for (k = 0; k < o.length; k++) {
106
                               pairs.push($.toJSON(o[k]) || 'null');
107
                  }
108
                      return '[' + pairs.join(',') + ']';
109
            }
110
111
             // Any other object (plain object, RegExp, ..)
112
         // Need to do typeof instead of $.type, because we also
113
                // want to catch non-plain objects.
114
            if (typeof o === 'object') {
115
                   for (k in o) {
116
                         // Only include own properties,
117
                                // Filter out inherited prototypes
118
                             if (hasOwn.call(o, k)) {
119
                                       // Keys must be numerical or string. Skip others
120
                                       type = typeof k;
121
                                       if (type === 'number') {
122
                                               name = '"' + k + '"';
123
                                  } else if (type === 'string') {
124
                                                name = $.quoteString(k);
125
                                       } else {
126
                                               continue;
127
                                      }
128
                                      type = typeof o[k];
129
130
                                   // Invalid values like these return undefined
131
                                  // from toJSON, however those object members
132
                                   // shouldn't be included in the JSON string at all.
133
                                    if (type !== 'function' && type !== 'undefined') {
134
                                             val = $.toJSON(o[k]);
135
                                          pairs.push(name + ':' + val);
136
                                  }
137
                              }
138
                      }
139
                      return '{' + pairs.join(',') + '}';
140
            }
141
      };
142
143
    /**
144
     * jQuery.evalJSON
145
      * Evaluates a given json string.
146
       *
147
      * @param str {String}
148
  */
149
    $.evalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
150
            /*jshint evil: true */
151
         return eval('(' + str + ')');
152
  };
153
154
    /**
155
     * jQuery.secureEvalJSON
156
        * Evals JSON in a way that is *more* secure.
157
   *
158
      * @param str {String}
159
  */
160
    $.secureEvalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
161
              var filtered =
162
                 str
163
                    .replace(/\\["\\\/bfnrtu]/g, '@')
164
                      .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
165
                      .replace(/(?:^|:|,)(?:\s*\[)+/g, '');
166
167
         if (/^[\],:{}\s]*$/.test(filtered)) {
168
                  /*jshint evil: true */
169
                 return eval('(' + str + ')');
170
          }
171
              throw new SyntaxError('Error parsing JSON, source is not valid.');
172
     };
173
174
    /**
175
     * jQuery.quoteString
176
   * Returns a string-repr of a string, escaping quotes intelligently.
177
    * Mostly a support function for toJSON.
178
        * Examples:
179
    * >>> jQuery.quoteString('apple')
180
      * "apple"
181
      *
182
      * >>> jQuery.quoteString('"Where are we going?", she asked.')
183
  * "\"Where are we going?\", she asked."
184
        */
185
    $.quoteString = function (str) {
186
               if (str.match(escape)) {
187
                       return '"' + str.replace(escape, function (a) {
188
                                var c = meta[a];
189
                               if (typeof c === 'string') {
190
                                   return c;
191
                              }
192
                              c = a.charCodeAt();
193
                            return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
194
                      }) + '"';
195
              }
196
              return '"' + str + '"';
197
        };
198
199
}(jQuery));
(-)a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt (-5 / +12 lines)
Lines 154-159 Link Here
154
            renderPagIndexList(pag_index_ini, $("#listResults"));
154
            renderPagIndexList(pag_index_ini, $("#listResults"));
155
        }
155
        }
156
        $("#a_listResults").click(function(e) {
156
        $("#a_listResults").click(function(e) {
157
            $("#sidebar").toggle();
157
            if (arrPagination.length > 0) {
158
            if (arrPagination.length > 0) {
158
                e.preventDefault();
159
                e.preventDefault();
159
                var navigation = $(".pagination");
160
                var navigation = $(".pagination");
Lines 173-178 Link Here
173
            e.preventDefault();
174
            e.preventDefault();
174
            var navigation = $(".pagination");
175
            var navigation = $(".pagination");
175
            navigation.hide();
176
            navigation.hide();
177
            $("#sidebar").toggle();
176
        });
178
        });
177
    [% END %]
179
    [% END %]
178
180
Lines 285-292 function parseIDBJSON( json ) { Link Here
285
var timeoutRFW;
287
var timeoutRFW;
286
var totalPagItemList = 10;
288
var totalPagItemList = 10;
287
289
288
function rewindList()
290
function rewindList(e)
289
{
291
{
292
    e.preventDefault();
290
    var ul = $("#listResults");
293
    var ul = $("#listResults");
291
    var li_ini = ul.children(':first').next();
294
    var li_ini = ul.children(':first').next();
292
    var index_ini = pag_index_ini;
295
    var index_ini = pag_index_ini;
Lines 304-311 function rewindList() Link Here
304
    }
307
    }
305
}//rewindList
308
}//rewindList
306
309
307
function forwardList()
310
function forwardList(e)
308
{
311
{
312
    e.preventDefault();
309
    var ul = $("#listResults");
313
    var ul = $("#listResults");
310
    var li_ini = ul.children(':first').next();
314
    var li_ini = ul.children(':first').next();
311
    var index_ini = pag_index_ini;
315
    var index_ini = pag_index_ini;
Lines 336-342 function renderPagIndexList(index, ul) Link Here
336
    var ini = index - 1;
340
    var ini = index - 1;
337
    var end = ini + totalPagItemList - 1;
341
    var end = ini + totalPagItemList - 1;
338
    li = $("<li />");
342
    li = $("<li />");
339
    html = (index > pag_index_ini)?"<a href='#' id='rew_list_index' onclick='rewindList()' title='" + _("Click to rewind the list to") + " " + ini + " - " + end + "'>&laquo;</a>":"&laquo;";
343
    html = (index > pag_index_ini)?"<a href='#' id='rew_list_index' onclick='rewindList(event)' title='" + _("Click to rewind the list to") + " " + ini + " - " + end + "'>&laquo;</a>":"&laquo;";
340
    li.html(html);
344
    li.html(html);
341
    ul.append(li);
345
    ul.append(li);
342
    var title = "";
346
    var title = "";
Lines 358-364 function renderPagIndexList(index, ul) Link Here
358
    li = $("<li />");
362
    li = $("<li />");
359
    ini = index + 1;
363
    ini = index + 1;
360
    end = (arrPagination.length > index + totalPagItemList)?index + totalPagItemList:arrPagination.length - 1;
364
    end = (arrPagination.length > index + totalPagItemList)?index + totalPagItemList:arrPagination.length - 1;
361
    html = (end <= arrPagination.length - 1 && (end - index) >= totalPagItemList)?"<a href='#' id='fw_list_index' onclick='forwardList()' title='" + _("Click to forward the list to") + " " + ini + " - " + end + "'>&raquo;</a>":"&raquo;";
365
    html = (end <= arrPagination.length - 1 && (end - index) >= totalPagItemList)?"<a href='#' id='fw_list_index' onclick='forwardList(event)' title='" + _("Click to forward the list to") + " " + ini + " - " + end + "'>&raquo;</a>":"&raquo;";
362
    li.html(html);
366
    li.html(html);
363
    ul.append(li);
367
    ul.append(li);
364
}//renderPagIndexList
368
}//renderPagIndexList
Lines 1424-1430 YAHOO.util.Event.onContentReady("furtherm", function () { Link Here
1424
        <div class="l_Results">[% IF ( listResults ) %]<a href="#" id="a_listResults" title="Show pagination list ([% indexPag %]-[% indexPagEnd %] / [% totalPag %])">Browse results</a>[% ELSE %]<span>Browse results</span>[% END %]</div>
1428
        <div class="l_Results">[% IF ( listResults ) %]<a href="#" id="a_listResults" title="Show pagination list ([% indexPag %]-[% indexPagEnd %] / [% totalPag %])">Browse results</a>[% ELSE %]<span>Browse results</span>[% END %]</div>
1425
        <ul class="pg_menu clearfix">
1429
        <ul class="pg_menu clearfix">
1426
            <li class="left_results">[% IF ( previous ) %]<a href="[% previous %]" title="See: [% IF ( previousTitle ) %][% previousTitle |html %][% ELSE %]previous biblio[% END %]">&laquo; Previous</a>[% ELSE %]<span>Previous</span>[% END %]</li>
1430
            <li class="left_results">[% IF ( previous ) %]<a href="[% previous %]" title="See: [% IF ( previousTitle ) %][% previousTitle |html %][% ELSE %]previous biblio[% END %]">&laquo; Previous</a>[% ELSE %]<span>Previous</span>[% END %]</li>
1427
            <li class="back_results"><a href="opac-search.pl?[% busc %]" title="Back to the results search list">Back to results</a></li>
1431
            <li class="back_results"><a href="opac-search.pl?[% busc %]" title="Back to the results search list" class="searchwithcontext">Back to results</a></li>
1428
            <li class="right_results">[% IF ( next ) %]<a href="[% next %]" title="See: [% IF ( nextTitle ) %][% nextTitle |html %][% ELSE %]next biblio[% END %]">Next &raquo;</a>[% ELSE %]<span>Next</span>[% END %]</li>
1432
            <li class="right_results">[% IF ( next ) %]<a href="[% next %]" title="See: [% IF ( nextTitle ) %][% nextTitle |html %][% ELSE %]next biblio[% END %]">Next &raquo;</a>[% ELSE %]<span>Next</span>[% END %]</li>
1429
        </ul>
1433
        </ul>
1430
        [% IF ( listResults ) %]
1434
        [% IF ( listResults ) %]
Lines 1441-1446 YAHOO.util.Event.onContentReady("furtherm", function () { Link Here
1441
    </div>
1445
    </div>
1442
[% END %]
1446
[% END %]
1443
1447
1448
<div id="sidebar">
1444
[% INCLUDE 'opac-detail-sidebar.inc' %]
1449
[% INCLUDE 'opac-detail-sidebar.inc' %]
1445
        [% IF ( NovelistSelectProfile ) %] [% IF ( NovelistSelectView == 'right') %]
1450
        [% IF ( NovelistSelectProfile ) %] [% IF ( NovelistSelectView == 'right') %]
1446
         <div id="NovelistSelect">
1451
         <div id="NovelistSelect">
Lines 1469-1474 YAHOO.util.Event.onContentReady("furtherm", function () { Link Here
1469
[% END %]
1474
[% END %]
1470
1475
1471
</div>
1476
</div>
1477
1478
</div>
1472
</div>
1479
</div>
1473
</div>
1480
</div>
1474
1481
(-)a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt (+48 lines)
Lines 109-114 function highlightOn() { Link Here
109
    $(".highlight_toggle").toggle();
109
    $(".highlight_toggle").toggle();
110
}
110
}
111
[% END %]
111
[% END %]
112
113
// Hide or show details link
114
// Update with first biblionumber in queue
115
function updateDetailsLink() {
116
    var bibnums = getContextBiblioNumbers();
117
    if ( bibnums.length > 0 ) {
118
        $(".details_link a").attr("href", "/cgi-bin/koha/opac-detail.pl?biblionumber=" + bibnums[0]);
119
        $(".details_link").show();
120
    } else {
121
        $(".details_link").hide();
122
    }
123
}
124
112
$(document).ready(function(){
125
$(document).ready(function(){
113
    [% IF ( OpacHighlightedWords ) %]
126
    [% IF ( OpacHighlightedWords ) %]
114
        $('a.title').each(function() {
127
        $('a.title').each(function() {
Lines 233-242 $(document).ready(function(){ Link Here
233
    }
246
    }
234
    $("#CheckAll").click(function(){
247
    $("#CheckAll").click(function(){
235
        $("#bookbag_form").checkCheckboxes();
248
        $("#bookbag_form").checkCheckboxes();
249
        $("#bookbag_form").find("input[type='checkbox'][name='biblionumber']").each(function(){
250
            $(this).change();
251
        } );
236
        return false;
252
        return false;
237
    });
253
    });
238
    $("#CheckNone").click(function(){
254
    $("#CheckNone").click(function(){
239
        $("#bookbag_form").unCheckCheckboxes();
255
        $("#bookbag_form").unCheckCheckboxes();
256
257
        $("#bookbag_form").find("input[type='checkbox'][name='biblionumber']").each(function(){
258
            $(this).change();
259
        } );
240
        return false;
260
        return false;
241
    });
261
    });
242
[% IF ( RequestOnOpac ) %]
262
[% IF ( RequestOnOpac ) %]
Lines 343-348 $(document).ready(function(){ Link Here
343
        });
363
        });
344
[% END %]
364
[% END %]
345
365
366
    $("#bookbag_form").ready(function(){
367
        $("#bookbag_form").unCheckCheckboxes();
368
        var bibnums = getContextBiblioNumbers();
369
        if (bibnums) {
370
            for (var i=0; i < bibnums.length; i++) {
371
                var id = ('#bib' + bibnums[i]);
372
                if ($(id)) {
373
                    $(id).attr('checked', true);
374
                }
375
            }
376
        }
377
        updateDetailsLink();
378
    });
379
380
    $("#bookbag_form :checkbox").change(function(){
381
        if ( $(this).is(':checked') == true ) {
382
            addBibToContext( $(this).val() );
383
        } else {
384
            delBibToContext( $(this).val() );
385
        }
386
        updateDetailsLink();
387
     });
388
389
    $(".details_link a").click(function(){
390
        var bibnums = getContextBiblioNumbers();
391
392
    });
346
});
393
});
347
394
348
//]]>
395
//]]>
Lines 482-487 $(document).ready(function(){ Link Here
482
                              Tag status here.
529
                              Tag status here.
483
                            </span>
530
                            </span>
484
            [% END %]
531
            [% END %]
532
            <span class="details_link" style="display:none" ><a href="#">Browse selected biblios &gt;&gt;</a></span>
485
        </div>
533
        </div>
486
534
487
        </td></tr>
535
        </td></tr>
(-)a/opac/opac-detail.pl (-4 / +18 lines)
Lines 24-29 use strict; Link Here
24
use warnings;
24
use warnings;
25
25
26
use CGI;
26
use CGI;
27
use JSON;
27
use C4::Auth qw(:DEFAULT get_session);
28
use C4::Auth qw(:DEFAULT get_session);
28
use C4::Branch;
29
use C4::Branch;
29
use C4::Koha;
30
use C4::Koha;
Lines 209-219 if ($session->param('busc')) { Link Here
209
            push @{$arrParamsBusc{$key}}, $value;
210
            push @{$arrParamsBusc{$key}}, $value;
210
        }
211
        }
211
    }
212
    }
213
212
    my $searchAgain = 0;
214
    my $searchAgain = 0;
215
    my ( $offset, $results_per_page );
216
217
    my $bibnums = $query->cookie('bibs_selected');
218
    $bibnums = JSON::from_json($bibnums);
219
    if ( scalar( @$bibnums ) ) {
220
        $arrParamsBusc{count} = scalar( @$bibnums );
221
        $arrParamsBusc{listBiblios} = join ',', @$bibnums;
222
        $results_per_page = $arrParamsBusc{count};
223
        $offset = 0;
224
    } else {
225
    $offset = ($arrParamsBusc{'offset'} && $arrParamsBusc{'offset'} =~ /^[0-9]+?/)?$arrParamsBusc{'offset'}:0;
213
    my $count = C4::Context->preference('OPACnumSearchResults') || 20;
226
    my $count = C4::Context->preference('OPACnumSearchResults') || 20;
214
    my $results_per_page = ($arrParamsBusc{'count'} && $arrParamsBusc{'count'} =~ /^[0-9]+?/)?$arrParamsBusc{'count'}:$count;
227
    $results_per_page = ($arrParamsBusc{'count'} && $arrParamsBusc{'count'} =~ /^[0-9]+?/)?$arrParamsBusc{'count'}:$count;
215
    $arrParamsBusc{'count'} = $results_per_page;
228
    $arrParamsBusc{'count'} = $results_per_page;
216
    my $offset = ($arrParamsBusc{'offset'} && $arrParamsBusc{'offset'} =~ /^[0-9]+?/)?$arrParamsBusc{'offset'}:0;
217
    # The value OPACnumSearchResults has changed and the search has to be rebuild
229
    # The value OPACnumSearchResults has changed and the search has to be rebuild
218
    if ($count != $results_per_page) {
230
    if ($count != $results_per_page) {
219
        if (exists($arrParamsBusc{'listBiblios'}) && $arrParamsBusc{'listBiblios'} =~ /^[0-9]+(?:,[0-9]+)*$/) {
231
        if (exists($arrParamsBusc{'listBiblios'}) && $arrParamsBusc{'listBiblios'} =~ /^[0-9]+(?:,[0-9]+)*$/) {
Lines 273-278 if ($session->param('busc')) { Link Here
273
            @arrBusc = split(/\&(?:amp;)?/, $newbusc);
285
            @arrBusc = split(/\&(?:amp;)?/, $newbusc);
274
        }
286
        }
275
    }
287
    }
288
289
    } # end if cookie bibs_selected exists
290
276
    my $buscParam = '';
291
    my $buscParam = '';
277
    my $j = 0;
292
    my $j = 0;
278
    # Rebuild the query for the button "back to results"
293
    # Rebuild the query for the button "back to results"
Lines 339-345 if ($session->param('busc')) { Link Here
339
        }
354
        }
340
        $offsetSearch = 0 if (defined($offsetSearch) && $offsetSearch < 0);
355
        $offsetSearch = 0 if (defined($offsetSearch) && $offsetSearch < 0);
341
    }
356
    }
342
    if ($searchAgain) {
357
    if ($searchAgain and not scalar( @$bibnums )) {
343
        my $newresultsRef = searchAgain(\%arrParamsBusc, $offsetSearch, $results_per_page);
358
        my $newresultsRef = searchAgain(\%arrParamsBusc, $offsetSearch, $results_per_page);
344
        my @newresults = @$newresultsRef;
359
        my @newresults = @$newresultsRef;
345
        # build the new listBiblios
360
        # build the new listBiblios
346
- 

Return to bug 10858