From 2322ee5ae9cbe3caefb6998d62c3716cf40411a3 Mon Sep 17 00:00:00 2001 From: Adam Bowling Date: Mon, 19 Jan 2015 12:05:19 -0500 Subject: [PATCH] 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 --- Open-ILS/src/templates/opac/parts/place_hold.tt2 | 12 ++++++++++++ Open-ILS/web/js/ui/default/opac/staff.js | 22 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/Open-ILS/src/templates/opac/parts/place_hold.tt2 b/Open-ILS/src/templates/opac/parts/place_hold.tt2 index a1003181f1..b850f71795 100644 --- a/Open-ILS/src/templates/opac/parts/place_hold.tt2 +++ b/Open-ILS/src/templates/opac/parts/place_hold.tt2 @@ -18,6 +18,18 @@ redirect = redirect.replace('^http:', 'https:') %] + [% + usr_barcode = CGI.param('usr_barcode') | html; + is_requestor = CGI.param('is_requestor'); + + IF is_requestor == ''; + is_requetor = '0'; + END; + + IF is_requestor == '0' && usr_barcode == ctx.staff_recipient.card.barcode; + usr_barcode = ''; + END; + %] [% IF ctx.is_staff %]

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]); -- 2.11.0