From 04616c22a6d34fc35ccae9dd90d30e3bb94ba0db Mon Sep 17 00:00:00 2001 From: Zavier Banks Date: Tue, 26 Nov 2019 22:02:26 +0000 Subject: [PATCH] LP#1849212 OPAC search course reserves facet I completed my take on filtering for the course materials. Adding in a facet that allows the user to toggle, on and off, the course materials filter mechanic. Signed-off-by: Zavier Banks --- .../src/templates/opac/parts/advanced/search.tt2 | 40 ++++++++++++---------- .../src/templates/opac/parts/result/adv_filter.tt2 | 11 ++++++ Open-ILS/web/js/ui/default/opac/copyloc.js | 36 +++++++++---------- 3 files changed, 50 insertions(+), 37 deletions(-) diff --git a/Open-ILS/src/templates/opac/parts/advanced/search.tt2 b/Open-ILS/src/templates/opac/parts/advanced/search.tt2 index b193c25c78..196cd49a97 100644 --- a/Open-ILS/src/templates/opac/parts/advanced/search.tt2 +++ b/Open-ILS/src/templates/opac/parts/advanced/search.tt2 @@ -141,25 +141,7 @@ [% END %] -
- - - - - -
- + [% CASE "copy_location" %] + + + + + + diff --git a/Open-ILS/src/templates/opac/parts/result/adv_filter.tt2 b/Open-ILS/src/templates/opac/parts/result/adv_filter.tt2 index 35b2c77723..5b8cf68d0f 100644 --- a/Open-ILS/src/templates/opac/parts/result/adv_filter.tt2 +++ b/Open-ILS/src/templates/opac/parts/result/adv_filter.tt2 @@ -83,3 +83,14 @@ FOR filter IN ctx.query_struct.filters; [%- END; # IF pubdate_filters -%] [%- END; # FOR -%] + +[%IF CGI.param('coursereserves').grep('filtercoursereserves').size >0 %] +
+
+

[% l('Course Reserves') %]

+ × +
+
+[%- END %] diff --git a/Open-ILS/web/js/ui/default/opac/copyloc.js b/Open-ILS/web/js/ui/default/opac/copyloc.js index 5b3ee0310d..2081131009 100644 --- a/Open-ILS/web/js/ui/default/opac/copyloc.js +++ b/Open-ILS/web/js/ui/default/opac/copyloc.js @@ -3,6 +3,10 @@ dojo.require("openils.CGI"); var course_list_query=[]; +course_reserves = dojo.byId("opac.result.coursereserves"); +value = dojo.byId("coursereservesvalue"); +qtype = dojo.byId("coursereservesqtype"); +contains = dojo.byId("coursereservescontains"); /** * Query the database for the course reserves materials. @@ -24,47 +28,43 @@ function get_course_reserves(display_orgs) { //List out all the items, and add them to a list. dojo.forEach(list, function(item, index) { if(index == 0){ //If this is the first entry, create the string. - course_list_query = "(id:"+item.item+") "; - } else{ course_list_query += "|| (id:"+item.item+") ";} + course_list_query = "((id:"+item.item+")"; + } else{ course_list_query += "||(id:"+item.item+")";} }) + course_list_query += ")"; filter_reserves(); } } }).send(); } - /** * Add the query to the filterwithreserves checkbox */ function filter_reserves() { - dojo.byId("coursereservesvalue").setAttribute('value',course_list_query) + value.setAttribute('value', course_list_query) } window.add_course_reserves_ids_to_query = add_course_reserves_ids_to_query; function add_course_reserves_ids_to_query() { - course_reserves = dojo.byId("opac.result.filterwithreserves"); - - if(!course_reserves.getAttribute("checked") || course_reserves.getAttribute("checked")=="") { - console.log("Checked", course_reserves.getAttribute("checked") ) + //Resets the Course Reserves Facet, if unchecked. + if(!course_reserves.getAttribute("checked") || course_reserves.getAttribute("checked") == "") { course_reserves.setAttribute("checked", 'checked') - dojo.byId("coursereservesvalue").setAttribute("checked", 'checked') - dojo.byId("coursereservesqtype").setAttribute("checked", 'checked') - dojo.byId("coursereservescontains").setAttribute("checked", 'checked') + value.setAttribute("checked", 'checked') + qtype.setAttribute("checked", 'checked') + contains.setAttribute("checked", 'checked') }else { - console.log("Unchecked", course_reserves.getAttribute("checked") ) - course_reserves.setAttribute("checked", '') - dojo.byId("coursereservesvalue").setAttribute("checked", '') - dojo.byId("coursereservesqtype").setAttribute("checked", '') - dojo.byId("coursereservescontains").setAttribute("checked", '') - } + dojo.removeAttr(course_reserves, 'checked'); + dojo.removeAttr(value, 'checked'); + dojo.removeAttr(qtype, 'checked'); + dojo.removeAttr(contains, 'checked'); + } } // called on initial page load and when the advance search org unit // selector is changed. function apply_adv_copy_locations() { - // patron selected org var sel = dojo.byId('adv_org_selector'); var selected_id = sel.options[sel.selectedIndex].getAttribute('value'); -- 2.11.0