Bugzilla – Attachment 98598 Details for
Bug 11297
Add support for custom PQF attributes for Z39.50 server searches
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 11297: Add support for custom PQF attributes for Z39.50 server searches.
Bug-11297-Add-support-for-custom-PQF-attributes-fo.patch (text/plain), 6.38 KB, created by
David Nind
on 2020-02-07 22:18:36 UTC
(
hide
)
Description:
Bug 11297: Add support for custom PQF attributes for Z39.50 server searches.
Filename:
MIME Type:
Creator:
David Nind
Created:
2020-02-07 22:18:36 UTC
Size:
6.38 KB
patch
obsolete
>From bd61e7ee31e094a4efe9191aa78c68989175606d Mon Sep 17 00:00:00 2001 >From: Charles Farmer <charles.farmer@inLibro.com> >Date: Fri, 10 Aug 2018 17:28:38 -0400 >Subject: [PATCH] Bug 11297: Add support for custom PQF attributes for Z39.50 > server searches. > >Adds the "Attributes" field to z3950 servers. > >The feature here is not quite de same. > >In the old patches, the attributes were applied to individual query parts if the part already contains "@attr" and the additionnal attribute is not already in the query part. > >Here, the content of the new field is prepended to all PQF queries sent to the server. > >This new way of doing is simpler and works for the sponsor. > >Test plan: > I) Apply the patch >II) Run updatedatabase.pl > >1) Add a new z3950 server with the following parameters: >Hostname : catalogue.banq.qc.ca >Port : 210 >Database : IRIS >Syntax : Marc21 > >2) Perform a z3950 search on that server. > Keyword (Any) : egypt >2.1) Nothing Found. > >3) Add attributes on the server administration page > @attr 4=1 > >4) Perform the same z3950 search >4.1) A lot of results > >Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> > >Signed-off-by: David Nind <david@davidnind.com> >--- > C4/Breeding.pm | 25 ++++++++++++++++------ > admin/z3950servers.pl | 2 +- > .../prog/en/modules/admin/z3950servers.tt | 10 +++++++-- > 3 files changed, 27 insertions(+), 10 deletions(-) > >diff --git a/C4/Breeding.pm b/C4/Breeding.pm >index a93189c13f..4350323e7d 100644 >--- a/C4/Breeding.pm >+++ b/C4/Breeding.pm >@@ -151,10 +151,14 @@ sub Z3950Search { > ); > my @servers = $rs->all; > foreach my $server ( @servers ) { >+ my $server_zquery = $zquery; >+ if(my $attributes = $server->{attributes}){ >+ $server_zquery = "$attributes $zquery"; >+ } > $oConnection[$s] = _create_connection( $server ); > $oResult[$s] = > $server->{servertype} eq 'zed'? >- $oConnection[$s]->search_pqf( $zquery ): >+ $oConnection[$s]->search_pqf( $server_zquery ): > $oConnection[$s]->search(new ZOOM::Query::CQL( > _translate_query( $server, $squery ))); > $s++; >@@ -553,12 +557,19 @@ sub Z3950SearchAuth { > while ( my $server = $sth->fetchrow_hashref ) { > $oConnection[$s] = _create_connection( $server ); > >- $oResult[$s] = >- $server->{servertype} eq 'zed'? >- $oConnection[$s]->search_pqf( $zquery ): >- $oConnection[$s]->search(new ZOOM::Query::CQL( >- _translate_query( $server, $squery ))); >- $encoding[$s] = $server->{encoding} // "iso-5426"; >+ if ( $server->{servertype} eq 'zed' ) { >+ my $server_zquery = $zquery; >+ if ( my $attributes = $server->{attributes} ) { >+ $server_zquery = "$attributes $zquery"; >+ } >+ $oResult[$s] = $oConnection[$s]->search_pqf( $server_zquery ); >+ } >+ else { >+ $oResult[$s] = $oConnection[$s]->search( >+ new ZOOM::Query::CQL(_translate_query( $server, $squery )) >+ ); >+ } >+ $encoding[$s] = ($server->{encoding}?$server->{encoding}:"iso-5426"); > $servers[$s] = $server; > $s++; > } ## while fetch >diff --git a/admin/z3950servers.pl b/admin/z3950servers.pl >index cb226663d8..d2e85c6014 100755 >--- a/admin/z3950servers.pl >+++ b/admin/z3950servers.pl >@@ -67,7 +67,7 @@ if( $op eq 'delete_confirmed' && $id ) { > $id = 0; > } elsif ( $op eq 'add_validated' ) { > my @fields=qw/host port db userid password rank syntax encoding timeout >- recordtype checked servername servertype sru_options sru_fields >+ recordtype checked servername servertype sru_options sru_fields attributes > add_xslt/; > my $formdata = _form_data_hashref( $input, \@fields ); > if( $id ) { >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt >index 9efe6ce50a..65b996d6e2 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt >@@ -81,6 +81,10 @@ > </li> > <li><label for="rank">Rank (display order): </label> <input type="text" name="rank" id="rank" size="4" value="[% server.rank | html %]" /> > </li> >+ [% IF (server.servertype||type) == 'zed' %] >+ <li><label for="attributes">Attributes (additional PQF attributes added to each query): </label><input type="text" name="attributes" id="attributes" size="30" value="[% server.attributes %]" /> >+ </li> >+ [% END %] > > <li><label for="syntax">Syntax (z3950 can send<br /> records in various format. Choose one): </label> > <select name="syntax" id="syntax"> >@@ -157,7 +161,8 @@ > You searched for [% searchfield | html %] > [% END %] > <table id="serverst"> >- <thead><tr><th>Target</th><th>Hostname/Port</th><th>Database</th><th>Userid</th><th>Password</th><th>Preselected</th><th>Rank</th><th>Syntax</th><th>Encoding</th><th>Timeout</th><th>Record type</th><th></th> >+ >+ <thead><tr><th>Target</th><th>Hostname/Port</th><th>Database</th><th>Userid</th><th>Password</th><th>Preselected</th><th>Rank</th><th>Syntax</th><th>Encoding</th><th>Timeout</th><th>Record type</th><th>Attributes</th><th>Options</th> > </tr></thead> > <tbody> > [% FOREACH loo IN loop %] >@@ -170,6 +175,7 @@ > <span>Authority</span> > [% END %] > </td> >+ <td>[% loo.attributes %]</td> > <td> > <div class="dropdown"> > <a class="btn btn-default btn-xs dropdown-toggle" id="reportactions[% savedreport.id | html %]" role="button" data-toggle="dropdown" href="#"> >@@ -252,7 +258,7 @@ > $(document).ready(function() { > $("#serverst").dataTable($.extend(true, {}, dataTablesDefaults, { > "aoColumnDefs": [ >- { "aTargets": [2,3,4,7,8,9,10,11], "bSortable": false, "bSearchable": false }, >+ { "aTargets": [-1], "bSortable": false, "bSearchable": false }, > ], > "sPaginationType": "full" > })); >-- >2.11.0
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 11297
:
23144
|
23145
|
40829
|
40889
|
48649
|
50415
|
50416
|
50420
|
50954
|
59448
|
62938
|
62939
|
70190
|
70191
|
70192
|
70193
|
70194
|
70195
|
70196
|
71992
|
71993
|
71994
|
72061
|
72062
|
72063
|
77718
|
77719
|
77720
|
77721
|
77722
|
77723
|
78294
|
78295
|
78296
|
78297
|
80372
|
80496
|
80497
|
80498
|
80499
|
81328
|
81342
|
81343
|
81344
|
81345
|
81346
|
92719
|
92720
|
92721
|
92722
|
98598
|
98599
|
98600
|
98601
|
99227
|
99228
|
99229
|
99230
|
99231