Bugzilla – Attachment 11845 Details for
Bug 8692
Authorities search form does not correspond to current search query
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 8692: Authorities search form does not correspond to current search query
Bug-8692-Authorities-search-form-does-not-correspo.patch (text/plain), 14.96 KB, created by
Jared Camins-Esakov
on 2012-08-27 16:44:37 UTC
(
hide
)
Description:
Bug 8692: Authorities search form does not correspond to current search query
Filename:
MIME Type:
Creator:
Jared Camins-Esakov
Created:
2012-08-27 16:44:37 UTC
Size:
14.96 KB
patch
obsolete
>From f279cb6d5c2d959dbb817059c295adb4af3e31ba Mon Sep 17 00:00:00 2001 >From: Fridolyn SOMERS <fridolyn.somers@biblibre.com> >Date: Mon, 27 Aug 2012 14:50:32 +0200 >Subject: [PATCH] Bug 8692: Authorities search form does not correspond to current search query >Content-Type: text/plain; charset="UTF-8" > >Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> >The correct tab is now visible on load. The problem with authtypecode >showing up in the search box is specific to UNIMARC, so I could not >check that it was gone, but I am comfortable signing off on this. >--- > authorities/authorities-home.pl | 105 +++++++++----------- > .../prog/en/includes/authorities-search.inc | 100 ++++++++++++++++++- > .../prog/en/modules/authorities/detail.tt | 2 +- > .../en/modules/authorities/searchresultlist.tt | 15 +++- > 4 files changed, 156 insertions(+), 66 deletions(-) > >diff --git a/authorities/authorities-home.pl b/authorities/authorities-home.pl >index bc565d1..f67f5c9 100755 >--- a/authorities/authorities-home.pl >+++ b/authorities/authorities-home.pl >@@ -21,6 +21,7 @@ use strict; > use warnings; > > use CGI; >+use URI::Escape; > use C4::Auth; > > use C4::Context; >@@ -32,13 +33,11 @@ use C4::Koha; # XXX subfield_is_koha_internal_p > use C4::Biblio; > > my $query = new CGI; >-my $op = $query->param('op'); >-$op ||= q{}; >-my $authtypecode = $query->param('authtypecode'); >-$authtypecode ||= q{}; >-my $dbh = C4::Context->dbh; >+my $dbh = C4::Context->dbh; >+my $op = $query->param('op') || ''; >+my $authtypecode = $query->param('authtypecode') || ''; >+my $authid = $query->param('authid') || ''; > >-my $authid = $query->param('authid'); > my ( $template, $loggedinuser, $cookie ); > > my $authtypes = getauthtypes; >@@ -71,23 +70,32 @@ if ( $op eq "delete" ) { > ); > &DelAuthority( $authid, 1 ); > >- $op = "do_search"; >+ if ( $query->param('operator') ) { >+ # query contains search params so perform search >+ $op = "do_search"; >+ } >+ else { >+ $op = ''; >+ } > } > if ( $op eq "do_search" ) { >- my @marclist = $query->param('marclist'); >- my @and_or = $query->param('and_or'); >- my @excluding = $query->param('excluding'); >- my @operator = $query->param('operator'); >- my $orderby = $query->param('orderby'); >- my @value = $query->param('value'); >+ my $marclist = $query->param('marclist') || ''; >+ my $and_or = $query->param('and_or') || ''; >+ my $excluding = $query->param('excluding') || ''; >+ my $operator = $query->param('operator') || ''; >+ my $orderby = $query->param('orderby') || ''; >+ my $value = $query->param('value') || ''; > > my $startfrom = $query->param('startfrom') || 1; > my $resultsperpage = $query->param('resultsperpage') || 20; > >- my ( $results, $total ) = >- SearchAuthorities( \@marclist, \@and_or, \@excluding, \@operator, \@value, >- ( $startfrom - 1 ) * $resultsperpage, >- $resultsperpage, $authtypecode, $orderby ); >+ my ( $results, $total ) = SearchAuthorities( >+ [$marclist], [$and_or], >+ [$excluding], [$operator], >+ [$value], ( $startfrom - 1 ) * $resultsperpage, >+ $resultsperpage, $authtypecode, >+ $orderby >+ ); > > ( $template, $loggedinuser, $cookie ) = get_template_and_user( > { >@@ -101,54 +109,34 @@ if ( $op eq "do_search" ) { > ); > > $template->param( >- marclist => $query->param('marclist'), >- and_or => $query->param('and_or'), >- excluding => $query->param('excluding'), >- operator => $query->param('operator'), >- orderby => $query->param('orderby'), >- value => $query->param('value'), >- authtypecode => $query->param('authtypecode'), >+ marclist => $marclist, >+ and_or => $and_or, >+ excluding => $excluding, >+ operator => $operator, >+ orderby => $orderby, >+ value => $value, >+ authtypecode => $authtypecode, > startfrom => $startfrom, > resultsperpage => $resultsperpage, > ); > >- my @field_data = (); >- > # we must get parameters once again. Because if there is a mainentry, it > # has been replaced by something else during the search, thus the links > # next/previous would not work anymore >- my @marclist_ini = $query->param('marclist'); >- for ( my $i = 0 ; $i <= $#marclist ; $i++ ) { >- if ( $value[$i] ) { >- push @field_data, { term => "marclist", val => $marclist_ini[$i] }; >- if ( !defined $and_or[$i] ) { >- $and_or[$i] = q{}; >- } >- push @field_data, { term => "and_or", val => $and_or[$i] }; >- if ( !defined $excluding[$i] ) { >- $excluding[$i] = q{}; >- } >- push @field_data, { term => "excluding", val => $excluding[$i] }; >- push @field_data, { term => "operator", val => $operator[$i] }; >- push @field_data, { term => "value", val => $value[$i] }; >- } >- } > > # construction of the url of each page >- my $base_url = >- 'authorities-home.pl?' >- . join( '&', map { $_->{term} . '=' . $_->{val} } @field_data ) >- . '&' >- . join( >- '&', >- map { $_->{term} . '=' . $_->{val} } ( >- { term => 'resultsperpage', val => $resultsperpage }, >- { term => 'type', val => 'intranet' }, >- { term => 'op', val => 'do_search' }, >- { term => 'authtypecode', val => $authtypecode }, >- { term => 'orderby', val => $orderby }, >- ) >- ); >+ my $value_url = uri_escape($value); >+ my $base_url = "authorities-home.pl?" >+ ."marclist=$marclist" >+ ."&and_or=$and_or" >+ ."&excluding=$excluding" >+ ."&operator=$operator" >+ ."&value=$value_url" >+ ."&resultsperpage=$resultsperpage" >+ ."&type=intranet" >+ ."&op=do_search" >+ ."&authtypecode=$authtypecode" >+ ."&orderby=$orderby"; > > my $from = ( $startfrom - 1 ) * $resultsperpage + 1; > my $to; >@@ -191,7 +179,10 @@ if ( $op eq '' ) { > > } > >-$template->param( authtypesloop => \@authtypesloop, ); >+$template->param( >+ authtypesloop => \@authtypesloop, >+ op => $op, >+); > > $template->{VARS}->{marcflavour} = C4::Context->preference("marcflavour"); > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/authorities-search.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/authorities-search.inc >index ca6f4af..edccf10 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/authorities-search.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/authorities-search.inc >@@ -1,6 +1,22 @@ > <div class="gradient"> > <h1 id="logo"><a href="/cgi-bin/koha/mainpage.pl">[% LibraryName %]</a></h1> > <!-- Begin Authorities Resident Search Box --> >+<script type="text/javascript"> >+//<![CDATA[ >+ $(document).ready(function() { >+ var searchType = '[% marclist %]'; >+ if (searchType) { >+ if ('mainmainentry' == searchType) { >+ $("#header_search").tabs( "option", "selected", 0 ); >+ } else if ('mainentry' == searchType) { >+ $("#header_search").tabs( "option", "selected", 1 ); >+ } else if ('all' == searchType) { >+ $("#header_search").tabs( "option", "selected", 2 ); >+ } >+ } >+ }); >+//]]> >+</script> > <div id="header_search" class="residentsearch"> > <div id="authority_search" class="residentsearch"> > <p class="tip">Enter authority heading ($a):</p> >@@ -18,16 +34,42 @@ > [% END %] > </select> > <input type="hidden" name="marclist" value="mainmainentry" /> >+ <input type="hidden" name="and_or" value="and" /> >+ <input type="hidden" name="excluding" value="" /> > <select name="operator"> >+ [% IF ( operator == 'contains' ) %] >+ <option value="contains" selected="selected">contains</option> >+ [% ELSE %] > <option value="contains">contains</option> >+ [% END %] >+ [% IF ( operator == 'start' ) %] >+ <option value="start" selected="selected">starts with</option> >+ [% ELSE %] > <option value="start">starts with</option> >+ [% END %] >+ [% IF ( operator == 'is' ) %] >+ <option value="is" selected="selected">is exactly</option> >+ [% ELSE %] > <option value="is">is exactly</option> >+ [% END %] > </select> > <input id="value_anywhere" type="text" name="value" value="[% value %]" /> > <select name="orderby"> >- <option value="">None</option> >+ [% IF ( orderby == 'HeadingAsc' ) %] > <option value="HeadingAsc" selected="selected">Heading A-Z</option> >+ [% ELSE %] >+ <option value="HeadingAsc">Heading A-Z</option> >+ [% END %] >+ [% IF ( orderby == 'HeadingDsc' ) %] >+ <option value="HeadingDsc" selected="selected">Heading Z-A</option> >+ [% ELSE %] > <option value="HeadingDsc">Heading Z-A</option> >+ [% END %] >+ [% IF ( orderby == '' && op ) %] >+ <option value="" selected="selected">None</option> >+ [% ELSE %] >+ <option value="">None</option> >+ [% END %] > </select> > <input type="submit" class="submit" value="Submit" /> > </form> >@@ -51,16 +93,40 @@ > <input type="hidden" name="and_or" value="and" /> > <input type="hidden" name="excluding" value="" /> > <select name="operator"> >+ [% IF ( operator == 'contains' ) %] >+ <option value="contains" selected="selected">contains</option> >+ [% ELSE %] > <option value="contains">contains</option> >+ [% END %] >+ [% IF ( operator == 'start' ) %] >+ <option value="start" selected="selected">starts with</option> >+ [% ELSE %] > <option value="start">starts with</option> >+ [% END %] >+ [% IF ( operator == 'is' ) %] >+ <option value="is" selected="selected">is exactly</option> >+ [% ELSE %] > <option value="is">is exactly</option> >+ [% END %] > </select> > <input id="value_mainentry" type="text" name="value" value="[% value %]" /> > <select name="orderby"> >- <option value="">None</option> >+ [% IF ( orderby == 'HeadingAsc' ) %] > <option value="HeadingAsc" selected="selected">Heading A-Z</option> >+ [% ELSE %] >+ <option value="HeadingAsc">Heading A-Z</option> >+ [% END %] >+ [% IF ( orderby == 'HeadingDsc' ) %] >+ <option value="HeadingDsc" selected="selected">Heading Z-A</option> >+ [% ELSE %] > <option value="HeadingDsc">Heading Z-A</option> >- </select> >+ [% END %] >+ [% IF ( orderby == '' && op ) %] >+ <option value="" selected="selected">None</option> >+ [% ELSE %] >+ <option value="">None</option> >+ [% END %] >+ </select> > <input type="submit" class="submit" value="Submit" /> > </form> > </div> >@@ -83,16 +149,40 @@ > <input type="hidden" name="and_or" value="and" /> > <input type="hidden" name="excluding" value="" /> > <select name="operator"> >+ [% IF ( operator == 'contains' ) %] >+ <option value="contains" selected="selected">contains</option> >+ [% ELSE %] > <option value="contains">contains</option> >+ [% END %] >+ [% IF ( operator == 'start' ) %] >+ <option value="start" selected="selected">starts with</option> >+ [% ELSE %] > <option value="start">starts with</option> >+ [% END %] >+ [% IF ( operator == 'is' ) %] >+ <option value="is" selected="selected">is exactly</option> >+ [% ELSE %] > <option value="is">is exactly</option> >+ [% END %] > </select> > <input id="value_mainmainentry" type="text" name="value" value="[% value %]" /> > <select name="orderby"> >- <option value="">None</option> >+ [% IF ( orderby == 'HeadingAsc' ) %] > <option value="HeadingAsc" selected="selected">Heading A-Z</option> >+ [% ELSE %] >+ <option value="HeadingAsc">Heading A-Z</option> >+ [% END %] >+ [% IF ( orderby == 'HeadingDsc' ) %] >+ <option value="HeadingDsc" selected="selected">Heading Z-A</option> >+ [% ELSE %] > <option value="HeadingDsc">Heading Z-A</option> >- </select> >+ [% END %] >+ [% IF ( orderby == '' && op ) %] >+ <option value="" selected="selected">None</option> >+ [% ELSE %] >+ <option value="">None</option> >+ [% END %] >+ </select> > <input type="submit" class="submit" value="Submit" /> > </form> > </div> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt >index e21f846e..18d1b22 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt >@@ -18,7 +18,7 @@ > function confirm_deletion() { > var is_confirmed = confirm('Are you sure you want to delete this authority?'); > if (is_confirmed) { >- window.location="authorities-home.pl?op=delete&authid=[% authid %]"; >+ window.location="authorities-home.pl?op=delete&authid=[% authid %]"; > } > } > function Dopop(link) { >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/searchresultlist.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/searchresultlist.tt >index 6ac139a..5617dc9 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/searchresultlist.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/searchresultlist.tt >@@ -8,9 +8,18 @@ function confirm_deletion(id) { > > var is_confirmed = confirm('Are you sure you want to delete this authority?'); > if (is_confirmed) { >- window.location="authorities-home.pl?op=delete&authid=" >- + id >- + "&marclist=[% marclist %]&and_or=[% and_or %]&excluding=[% excluding %]&operator=[%operator%]&orderby=[% orderby %]&value=[% value %]&startfrom=[% startfrom %]&resultsperpage=[% resultsperpage %]"; >+ window.location="authorities-home.pl?op=delete" >+ + "&authid=" + id >+ + "&type=intranet" >+ + "&authtypecode=[% authtypecode %]" >+ + "&marclist=[% marclist %]" >+ + "&and_or=[% and_or %]" >+ + "&excluding=[% excluding %]" >+ + "&operator=[% operator %]" >+ + "&orderby=[% orderby %]" >+ + "&value=[% value |url %]" >+ + "&startfrom=[% startfrom %]" >+ + "&resultsperpage=[% resultsperpage %]"; > } > } > function Help() { >-- >1.7.2.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 8692
:
11842
|
11845
|
12371
|
63899