From bb11a1e80d262236033361678d424f31f3e73263 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Fri, 20 Aug 2010 10:53:53 -0400 Subject: [PATCH] Fix for Bug 4945 - Patron search is limited by default to the currently logged-in library I couldn't figure out how (or whether) GetBranchesLoop could be convinced to return a list of branches without selecting one, so I swapped GetBranchesLoop with GetBranches. This will preselect a branch only if a branch has been submitted as part of a query. This does NOT preselect the correct branch when IndependantBranches is turned on. I also added a template variable which is true if a query has been submitted with a branch or a category so that the extra form fields can be displayed, reminding the user that they added limiters to their query. --- .../prog/en/includes/patron-search.inc | 5 ++- members/member.pl | 34 ++++++++++---------- members/members-home.pl | 14 +++++++- 3 files changed, 33 insertions(+), 20 deletions(-) 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 803184b..dac03c7 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc @@ -114,8 +114,9 @@ YAHOO.util.Event.onContentReady("header_search", function() { diff --git a/members/member.pl b/members/member.pl index dde29eb..e3cce03 100755 --- a/members/member.pl +++ b/members/member.pl @@ -49,11 +49,21 @@ my $theme = $input->param('theme') || "default"; my $patron = $input->Vars; foreach (keys %$patron){ - delete $$patron{$_} unless($$patron{$_}); + delete $$patron{$_} unless($$patron{$_}); } - my @categories=C4::Category->all; -my $branches=(defined $$patron{branchcode}?GetBranchesLoop($$patron{branchcode}):GetBranchesLoop()); + +my $branches = GetBranches; +my @branchloop; + +foreach (sort { $branches->{$a}->{branchname} cmp $branches->{$b}->{branchname} } keys %$branches) { + my $selected = 1 if $branches->{$_}->{branchcode} eq $$patron{branchcode}; + my %row = ( value => $_, + selected => $selected, + branchname => $branches->{$_}->{branchname}, + ); + push @branchloop, \%row; +} my %categories_dislay; @@ -119,11 +129,6 @@ foreach my $borrower(@$results[$from..$to-1]){ push(@resultsdata, \%row); } -if ($$patron{branchcode}){ - foreach my $branch (grep{$_->{value} eq $$patron{branchcode}}@$branches){ - $$branch{selected}=1; - } -} if ($$patron{categorycode}){ foreach my $category (grep{$_->{categorycode} eq $$patron{categorycode}}@categories){ $$category{selected}=1; @@ -142,9 +147,9 @@ my $base_url = ); my @letters = map { {letter => $_} } ( 'A' .. 'Z'); -$template->param( letters => \@letters ); $template->param( + letters => \@letters, paginationbar => pagination_bar( $base_url, int( $count / $resultsperpage ) + ($count % $resultsperpage ? 1 : 0), @@ -154,15 +159,10 @@ $template->param( from => ($startfrom-1)*$resultsperpage+1, to => $to, multipage => ($count != $to+1 || $startfrom!=1), -); -$template->param( - branchloop=>$branches, + advsearch => ($$patron{categorycode} || $$patron{branchcode}), + branchloop=>\@branchloop, categories=>\@categories, -); - - -$template->param( - searching => "1", + searching => "1", actionname =>basename($0), %$patron, numresults => $count, diff --git a/members/members-home.pl b/members/members-home.pl index 04fc557..120e65f 100755 --- a/members/members-home.pl +++ b/members/members-home.pl @@ -51,9 +51,21 @@ if($quicksearch){ debug => 1, }); } + +my $branches = GetBranches; +my @branchloop; +foreach (sort { $branches->{$a}->{branchname} cmp $branches->{$b}->{branchname} } keys %$branches) { + my $selected = 1 if $branches->{$_}->{branchcode} eq $branch; + my %row = ( value => $_, + selected => $selected, + branchname => $branches->{$_}->{branchname}, + ); + push @branchloop, \%row; +} + my @categories=C4::Category->all; $template->param( - branchloop=>(defined $branch?GetBranchesLoop($branch):GetBranchesLoop()), + branchloop=>\@branchloop, categories=>\@categories, ); $template->param( -- 1.7.0.4