|
Lines 218-223
Link Here
|
| 218 |
[% Asset.js("js/members-menu.js") | $raw %] |
218 |
[% Asset.js("js/members-menu.js") | $raw %] |
| 219 |
<script> |
219 |
<script> |
| 220 |
var singleBranchMode = '[% singleBranchMode | html %]'; |
220 |
var singleBranchMode = '[% singleBranchMode | html %]'; |
|
|
221 |
var dtMemberResults; |
| 222 |
var search = 1; |
| 223 |
/* popstate event triggered by forward and back button. Need to refresh search */ |
| 224 |
window.addEventListener('popstate', (event) => { |
| 225 |
getSearchByLocation( false ); |
| 226 |
}); |
| 227 |
|
| 221 |
$(document).ready(function() { |
228 |
$(document).ready(function() { |
| 222 |
$('#merge-patrons').prop('disabled', true); |
229 |
$('#merge-patrons').prop('disabled', true); |
| 223 |
$('#memberresultst').on('change', 'input.selection', function() { |
230 |
$('#memberresultst').on('change', 'input.selection', function() { |
|
Lines 319-325
Link Here
|
| 319 |
}); |
326 |
}); |
| 320 |
$(".filterByLetter").on("click",function(e){ |
327 |
$(".filterByLetter").on("click",function(e){ |
| 321 |
e.preventDefault(); |
328 |
e.preventDefault(); |
| 322 |
filterByFirstLetterSurname($(this).text()); |
329 |
filterByFirstLetterSurname( $(this).text(), true ); |
| 323 |
}); |
330 |
}); |
| 324 |
$("#select_all").on("click",function(e){ |
331 |
$("#select_all").on("click",function(e){ |
| 325 |
e.preventDefault(); |
332 |
e.preventDefault(); |
|
Lines 335-345
Link Here
|
| 335 |
}); |
342 |
}); |
| 336 |
$("#searchform").on("submit", filter); |
343 |
$("#searchform").on("submit", filter); |
| 337 |
|
344 |
|
| 338 |
}); |
|
|
| 339 |
|
| 340 |
var dtMemberResults; |
| 341 |
var search = 1; |
| 342 |
$(document).ready(function() { |
| 343 |
[% IF searchmember %] |
345 |
[% IF searchmember %] |
| 344 |
$("#searchmember_filter").val("[% searchmember | html %]"); |
346 |
$("#searchmember_filter").val("[% searchmember | html %]"); |
| 345 |
[% END %] |
347 |
[% END %] |
|
Lines 451-456
Link Here
|
| 451 |
// redirect if there is only 1 result. |
453 |
// redirect if there is only 1 result. |
| 452 |
if ( json.aaData.length == 1 ) { |
454 |
if ( json.aaData.length == 1 ) { |
| 453 |
var borrowernumber = json.aaData[0].borrowernumber; |
455 |
var borrowernumber = json.aaData[0].borrowernumber; |
|
|
456 |
/* Overwrite history state of firstletter search since only one result was returned; This prevents a loop upon clicking back */ |
| 457 |
history.replaceState( {}, null, window.location.href.split("?" )[0]); |
| 454 |
document.location.href="/cgi-bin/koha/members/moremember.pl?borrowernumber="+borrowernumber; |
458 |
document.location.href="/cgi-bin/koha/members/moremember.pl?borrowernumber="+borrowernumber; |
| 455 |
return false; |
459 |
return false; |
| 456 |
} |
460 |
} |
|
Lines 501-508
Link Here
|
| 501 |
} |
505 |
} |
| 502 |
}, columns_settings); |
506 |
}, columns_settings); |
| 503 |
update_searched(); |
507 |
update_searched(); |
|
|
508 |
/* Initial page load doesn't trigger the popstate event, so we explicitly call this */ |
| 509 |
getSearchByLocation( false ); |
| 510 |
|
| 504 |
}); |
511 |
}); |
| 505 |
|
512 |
|
|
|
513 |
function getSearchByLocation( setstate ){ |
| 514 |
/* Check to see if the URL contains a search parameter */ |
| 515 |
if( location.search != ""){ |
| 516 |
var params = new URLSearchParams( location.search ); |
| 517 |
var firstletter = params.get("firstletter"); |
| 518 |
/* Check to see if search is a first letter param */ |
| 519 |
if( firstletter ){ |
| 520 |
/* Trigger function to return search results by letter */ |
| 521 |
filterByFirstLetterSurname( firstletter, setstate ); |
| 522 |
} |
| 523 |
} else { |
| 524 |
/* No letter search param; Return page to default state with no results */ |
| 525 |
update_searched(); |
| 526 |
search = 0; |
| 527 |
$("#searchresults").hide(); |
| 528 |
dtMemberResults.fnDraw(); |
| 529 |
} |
| 530 |
} |
| 531 |
|
| 506 |
// Update the string "Results found ..." |
532 |
// Update the string "Results found ..." |
| 507 |
function update_searched(){ |
533 |
function update_searched(){ |
| 508 |
var searched = $("#searchfieldstype_filter").find("option:selected").text(); |
534 |
var searched = $("#searchfieldstype_filter").find("option:selected").text(); |
|
Lines 542-557
Link Here
|
| 542 |
$("#firstletter_filter").val(''); |
568 |
$("#firstletter_filter").val(''); |
| 543 |
$("#searchmember_filter").val(''); |
569 |
$("#searchmember_filter").val(''); |
| 544 |
if(redraw) { |
570 |
if(redraw) { |
| 545 |
search = 1; |
571 |
/* remove any search string added by firstletter search */ |
| 546 |
$("#searchresults").show(); |
572 |
history.pushState( {}, null, window.location.href.split("?" )[0]); |
|
|
573 |
update_searched(); |
| 574 |
search = 0; |
| 575 |
$("#searchresults").hide(); |
| 547 |
dtMemberResults.fnDraw(); |
576 |
dtMemberResults.fnDraw(); |
| 548 |
} |
577 |
} |
| 549 |
} |
578 |
} |
| 550 |
|
579 |
|
| 551 |
// User has clicked on a letter |
580 |
// User has clicked on a letter |
| 552 |
function filterByFirstLetterSurname(letter) { |
581 |
function filterByFirstLetterSurname( letter, setstate ) { |
| 553 |
clearFilters(false); |
582 |
clearFilters(false); |
| 554 |
$("#firstletter_filter").val(letter); |
583 |
$("#firstletter_filter").val(letter); |
|
|
584 |
if( setstate ){ |
| 585 |
history.pushState( null, null, "?firstletter=" + letter ); |
| 586 |
} |
| 555 |
update_searched(); |
587 |
update_searched(); |
| 556 |
search = 1; |
588 |
search = 1; |
| 557 |
$("#searchresults").show(); |
589 |
$("#searchresults").show(); |
| 558 |
- |
|
|