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 (+72 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
});
72
(-)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 1420-1426 YAHOO.util.Event.onContentReady("furtherm", function () { Link Here
1420
        <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>
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>
1421
        <ul class="pg_menu clearfix">
1425
        <ul class="pg_menu clearfix">
1422
            <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>
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>
1423
            <li class="back_results"><a href="opac-search.pl?[% busc %]" title="Back to the results search list">Back to results</a></li>
1427
            <li class="back_results"><a href="opac-search.pl?[% busc %]" title="Back to the results search list" class="searchwithcontext">Back to results</a></li>
1424
            <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>
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>
1425
        </ul>
1429
        </ul>
1426
        [% IF ( listResults ) %]
1430
        [% IF ( listResults ) %]
Lines 1437-1442 YAHOO.util.Event.onContentReady("furtherm", function () { Link Here
1437
    </div>
1441
    </div>
1438
[% END %]
1442
[% END %]
1439
1443
1444
<div id="sidebar">
1440
[% INCLUDE 'opac-detail-sidebar.inc' %]
1445
[% INCLUDE 'opac-detail-sidebar.inc' %]
1441
        [% IF ( NovelistSelectProfile ) %] [% IF ( NovelistSelectView == 'right') %]
1446
        [% IF ( NovelistSelectProfile ) %] [% IF ( NovelistSelectView == 'right') %]
1442
         <div id="NovelistSelect">
1447
         <div id="NovelistSelect">
Lines 1465-1470 YAHOO.util.Event.onContentReady("furtherm", function () { Link Here
1465
[% END %]
1470
[% END %]
1466
1471
1467
</div>
1472
</div>
1473
1474
</div>
1468
</div>
1475
</div>
1469
</div>
1476
</div>
1470
1477
(-)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 208-218 if ($session->param('busc')) { Link Here
208
            push @{$arrParamsBusc{$key}}, $value;
209
            push @{$arrParamsBusc{$key}}, $value;
209
        }
210
        }
210
    }
211
    }
212
211
    my $searchAgain = 0;
213
    my $searchAgain = 0;
214
    my ( $offset, $results_per_page );
215
216
    my $bibnums = $query->cookie('bibs_selected');
217
    $bibnums = JSON::from_json($bibnums);
218
    if ( scalar( @$bibnums ) ) {
219
        $arrParamsBusc{count} = scalar( @$bibnums );
220
        $arrParamsBusc{listBiblios} = join ',', @$bibnums;
221
        $results_per_page = $arrParamsBusc{count};
222
        $offset = 0;
223
    } else {
224
    $offset = ($arrParamsBusc{'offset'} && $arrParamsBusc{'offset'} =~ /^[0-9]+?/)?$arrParamsBusc{'offset'}:0;
212
    my $count = C4::Context->preference('OPACnumSearchResults') || 20;
225
    my $count = C4::Context->preference('OPACnumSearchResults') || 20;
213
    my $results_per_page = ($arrParamsBusc{'count'} && $arrParamsBusc{'count'} =~ /^[0-9]+?/)?$arrParamsBusc{'count'}:$count;
226
    $results_per_page = ($arrParamsBusc{'count'} && $arrParamsBusc{'count'} =~ /^[0-9]+?/)?$arrParamsBusc{'count'}:$count;
214
    $arrParamsBusc{'count'} = $results_per_page;
227
    $arrParamsBusc{'count'} = $results_per_page;
215
    my $offset = ($arrParamsBusc{'offset'} && $arrParamsBusc{'offset'} =~ /^[0-9]+?/)?$arrParamsBusc{'offset'}:0;
216
    # The value OPACnumSearchResults has changed and the search has to be rebuild
228
    # The value OPACnumSearchResults has changed and the search has to be rebuild
217
    if ($count != $results_per_page) {
229
    if ($count != $results_per_page) {
218
        if (exists($arrParamsBusc{'listBiblios'}) && $arrParamsBusc{'listBiblios'} =~ /^[0-9]+(?:,[0-9]+)*$/) {
230
        if (exists($arrParamsBusc{'listBiblios'}) && $arrParamsBusc{'listBiblios'} =~ /^[0-9]+(?:,[0-9]+)*$/) {
Lines 272-277 if ($session->param('busc')) { Link Here
272
            @arrBusc = split(/\&(?:amp;)?/, $newbusc);
284
            @arrBusc = split(/\&(?:amp;)?/, $newbusc);
273
        }
285
        }
274
    }
286
    }
287
288
    } # end if cookie bibs_selected exists
289
275
    my $buscParam = '';
290
    my $buscParam = '';
276
    my $j = 0;
291
    my $j = 0;
277
    # Rebuild the query for the button "back to results"
292
    # Rebuild the query for the button "back to results"
Lines 338-344 if ($session->param('busc')) { Link Here
338
        }
353
        }
339
        $offsetSearch = 0 if (defined($offsetSearch) && $offsetSearch < 0);
354
        $offsetSearch = 0 if (defined($offsetSearch) && $offsetSearch < 0);
340
    }
355
    }
341
    if ($searchAgain) {
356
    if ($searchAgain and not scalar( @$bibnums )) {
342
        my $newresultsRef = searchAgain(\%arrParamsBusc, $offsetSearch, $results_per_page);
357
        my $newresultsRef = searchAgain(\%arrParamsBusc, $offsetSearch, $results_per_page);
343
        my @newresults = @$newresultsRef;
358
        my @newresults = @$newresultsRef;
344
        # build the new listBiblios
359
        # build the new listBiblios
345
- 

Return to bug 10858