From: Adam Bowling Date: Mon, 19 Jan 2015 17:05:19 +0000 (-0500) Subject: LP#1406387 Fix for Holds Placement Advanced Options X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=01c32c5c1c7fc3a5e99b7c5fb50129ca051886d5;p=evergreen%2Fpines.git LP#1406387 Fix for Holds Placement Advanced Options In the staff client, when placing a hold and clicking Advanced Hold Options, the barcode input will populate with the staff member's barcode if it was previously empty, regardless of whether the radio input for the hold was specified for a patron or the staff member. This patch corrects that behavior, and also populates the input radio on load after clicking Advanced Hold Options. Signed-off-by: Adam Bowling Signed-off-by: Michael Peters Signed-off-by: Terran McCanna Signed-off-by: Ben Shum --- diff --git a/Open-ILS/src/templates/opac/parts/place_hold.tt2 b/Open-ILS/src/templates/opac/parts/place_hold.tt2 index 467e02b6e6..e9fc008bd2 100644 --- a/Open-ILS/src/templates/opac/parts/place_hold.tt2 +++ b/Open-ILS/src/templates/opac/parts/place_hold.tt2 @@ -16,7 +16,18 @@ redirect = redirect.replace('^http:', 'https:') %] - + [% + usr_barcode = CGI.param('usr_barcode') | html; + is_requestor = CGI.param('is_requestor'); + + IF is_requestor == ''; + is_requestor = '0'; + END; + + IF is_requestor == '0' && usr_barcode == ctx.staff_recipient.card.barcode; + usr_barcode = ''; + END; + %] [% IF ctx.is_staff %]

@@ -28,7 +39,7 @@ [% l("Place hold for patron by barcode:") %] diff --git a/Open-ILS/web/js/ui/default/opac/staff.js b/Open-ILS/web/js/ui/default/opac/staff.js index d281ca2c48..fff3aea07d 100644 --- a/Open-ILS/web/js/ui/default/opac/staff.js +++ b/Open-ILS/web/js/ui/default/opac/staff.js @@ -42,6 +42,13 @@ function staff_hold_usr_barcode_changed(isload) { } if (!window.xulG) return; + + var adv_link = document.getElementById('advanced_hold_link'); + if (adv_link) { + adv_link.setAttribute('href', adv_link.getAttribute('href').replace(/&?is_requestor=[01]/,'')); + var is_requestor = document.getElementById('hold_usr_is_requestor').checked ? 1 : 0; + adv_link.setAttribute('href', adv_link.getAttribute('href') + '&is_requestor=' + is_requestor.toString()); + } var cur_hold_barcode = undefined; var barcode = isload; @@ -156,6 +163,21 @@ window.onload = function() { // record details page events setTimeout(function() { + + if (location.href.match(/is_requestor=[01]/)) { + var loc = location.href; + var is_req_match = new RegExp("is_requestor=[01]"); + var is_req = is_req_match.exec(loc).toString(); + is_req = is_req.replace(/is_requestor=/, ''); + if (is_req == "1") { + document.getElementById('hold_usr_is_requestor').checked = 'checked'; + document.getElementById('hold_usr_input').disabled = true; + } else { + document.getElementById('hold_usr_is_requestor_not').checked = 'checked'; + document.getElementById('hold_usr_input').disabled = false; + } + } + var rec = location.href.match(/\/opac\/record\/(\d+)/); if(rec && rec[1]) { runEvt('rdetail', 'recordRetrieved', rec[1]);