From 62db8788fccacf8914a9d3784f18125c13843b7d Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 15 Jul 2014 12:44:23 +0200 Subject: [PATCH] [PASSED QA] Bug 7380: Refactor the patron search box header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A lot of page uses the patron search box header include (git grep patron-search.inc for the list) and the branch and category lists are not generated for all of them. For instance, on a patron detail page, there is a [+] link, but nothing append on clicking on it. This patch add a new template plugin "Categories" to get all patron categories from the templates. Test plan: 1/ Verify the [+] is working on all patron page (if that works for 2, that should work for all). 2/ Launch a search from the header box and verify the library and category dropdown lists select the correct value. 3/ Launch a search on the patron search page (patron home) and verify the search is working correctly on selecting a category and/or a library Followed test plan. Works as expected. Signed-off-by: Marc VĂ©ron Signed-off-by: Nicole Engard Signed-off-by: Katrin Fischer --- Koha/Template/Plugin/Branches.pm | 30 ++++++++++ Koha/Template/Plugin/Categories.pm | 63 ++++++++++++++++++++ .../prog/en/includes/patron-search.inc | 54 ++++++++++------- .../prog/en/modules/members/member.tt | 12 ++-- members/member.pl | 33 ---------- 5 files changed, 133 insertions(+), 59 deletions(-) create mode 100644 Koha/Template/Plugin/Categories.pm diff --git a/Koha/Template/Plugin/Branches.pm b/Koha/Template/Plugin/Branches.pm index 92db535..db01679 100644 --- a/Koha/Template/Plugin/Branches.pm +++ b/Koha/Template/Plugin/Branches.pm @@ -1,6 +1,7 @@ package Koha::Template::Plugin::Branches; # Copyright ByWater Solutions 2012 +# Copyright BibLibre 2014 # This file is part of Koha. # @@ -53,4 +54,33 @@ sub GetURL { return $b->{branchurl}; } +sub all { + my ( $self, $params ) = @_; + my $selected = $params->{selected}; + my $dbh = C4::Context->dbh; + my @params; + my $query = q| + SELECT branchcode, branchname + FROM branches + |; + if ( C4::Branch::onlymine + and C4::Context->userenv + and C4::Context->userenv->{branch} ) + { + $query .= q| WHERE branchcode = ? |; + push @params, C4::Context->userenv->{branch}; + } + $query .= q| ORDER BY branchname|; + my $branches = $dbh->selectall_arrayref( $query, { Slice => {} }, @params ); + + if ( $selected ) { + for my $branch ( @$branches ) { + if ( $branch->{branchcode} eq $selected ) { + $branch->{selected} = 1; + } + } + } + return $branches; +} + 1; diff --git a/Koha/Template/Plugin/Categories.pm b/Koha/Template/Plugin/Categories.pm new file mode 100644 index 0000000..86630ca --- /dev/null +++ b/Koha/Template/Plugin/Categories.pm @@ -0,0 +1,63 @@ +package Koha::Template::Plugin::Categories; + +# Copyright 2013-2014 BibLibre +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; + +use Template::Plugin; +use base qw( Template::Plugin ); + +use C4::Category; + +sub all { + my ( $self, $params ) = @_; + my $selected = $params->{selected}; + + my @categories = C4::Category->all; + if ( $selected ) { + for my $category ( @categories ) { + if ( $category->{categorycode} eq $selected ) { + $category->{selected} = 1; + } + } + } + return @categories; +} + +1; + +=head1 NAME + +Koha::Template::Plugin::Categories - TT Plugin for categories + +=head1 SYNOPSIS + +[% USE Categories %] + +[% Categories.all() %] + +=head1 ROUTINES + +=head2 all + +In a template, you can get the all categories with +the following TT code: [% Categories.all() %] + +=head1 AUTHOR + +Jonathan Druart + +=cut diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc index 7739cc3..7723e3a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc @@ -1,4 +1,6 @@ [% USE Koha %] +[% USE Branches %] +[% USE Categories %]

[% LibraryName %]

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt index 7ecf271..cd2608b 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt @@ -1,5 +1,7 @@ [% USE Koha %] [% USE ColumnsSettings %] +[% USE Branches %] +[% USE Categories %] [% INCLUDE 'doc-head-open.inc' %] Koha › Patrons [% IF ( searching ) %]› Search results[% END %] [% INCLUDE 'doc-head-close.inc' %] @@ -452,24 +454,26 @@ function filterByFirstLetterSurname(letter) {
  • + [% SET categories = Categories.all( selected => categorycode ) %]
  • + [% SET branches = Branches.all( selected => branchcode ) %]