Bug 38514: Filter out autocomplete list of authorities with ConsiderHeadingUse

After adding ConsiderHeadingUse system preference we can limit search
results of authority finder plugin to authorities useable in specyfic
type of fields (based on 008/14-16 data in authorities record).

The autocomplete feature in auth_finder.pl should obey the ConsiderHeadingUse
setting.

Test plan:
==========
0. Have a standard KTD enviromnent.
1. Apply Bug 38494.
2. Set ConsiderHeadingUse system preference to "Don't", ShowHeadingUse to
   'Show'.
3. Go to the Cataloging editor and open the authority finder plugin for
   the 650 field.
4. Type "Application" in "Search main heading ($a only)" field.
5. Notice two autocomplete values: "Application program interfaces
   (Computer software)" and "Application software".
6. Click search button.
7. There are two result: "Application program interfaces (Computer
   software)" (the one with 'v' Subject in Heading Use column) and
   Application software Development (with 'x' Subject in Heading Use
   column).
8. Close the authority finder window, cancel the editor. Set
   ConsiderHeadingUse system preference to "Do".
9. Go to the Cataloging editor and open the authority finder plugin for
   the 650 field.
10. Type "Application" in "Search main heading ($a only)" field.
11. Notice two autocomplete values: "Application program interfaces
   (Computer software)" and "Application software".
12. Click search button.
13. There is only one result: "Application program interfaces (Computer
   software)" (the one with 'v' Subject in Heading Use column).
   So we get only one result but there were two autocomplete hints.
14. Apply the patch ; restart all ; clear the browser js cache (or go to
    a private browser window).
15. Repeat p. 9-10.
16. Notice that there is only one autocomplete hint: "Application
   program interfaces (Computer software)".
17. Click search button.
18. There is only one result: "Application program interfaces (Computer
   software)" (the one with 'v' Subject in Heading Use column).

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
Janusz Kaczmarek 2024-11-22 23:04:56 +00:00 committed by Lucas Gass
parent eef4683e9a
commit f801230f01
No known key found for this signature in database
GPG Key ID: 60B447398B0D36CA
2 changed files with 24 additions and 0 deletions

View File

@ -53,12 +53,32 @@ if ( $auth_status ne "ok" ) {
my @value = $query->multi_param('term');
my $searchtype = $query->param('querytype');
my @marclist = ($searchtype);
my $index = $query->param('index');
my $authtypecode = $query->param('authtypecode');
my @and_or = $query->multi_param('and_or');
my @excluding = $query->multi_param('excluding');
my @operator = $query->multi_param('operator');
my $orderby = $query->param('orderby');
if ( C4::Context->preference('ConsiderHeadingUse') ) {
my $marcflavour = C4::Context->preference('marcflavour');
my $biblio_tag = substr( $index, 4, 3 );
if ( $marcflavour eq 'MARC21' ) {
my $heading_use_search_field =
$biblio_tag =~ /^[127]/ ? 'Heading-use-main-or-added-entry'
: $biblio_tag =~ /^6/ ? 'Heading-use-subject-added-entry'
: $biblio_tag =~ /^[48]/ ? 'Heading-use-series-added-entry'
: undef;
if ($heading_use_search_field) {
push @marclist, $heading_use_search_field;
push @and_or, 'and';
push @excluding, '';
push @operator, 'is';
push @value, 'a';
}
}
}
my $resultsperpage = 50;
my $startfrom = 0;

View File

@ -19,6 +19,7 @@ $(document).ready(function () {
url: "/cgi-bin/koha/authorities/ysearch.pl",
dataType: "json",
data: {
index: index,
authtypecode: authtypecode,
term: request.term,
op: "do_search",
@ -52,6 +53,7 @@ $(document).ready(function () {
url: "/cgi-bin/koha/authorities/ysearch.pl",
dataType: "json",
data: {
index: index,
authtypecode: authtypecode,
term: request.term,
op: "do_search",
@ -85,6 +87,7 @@ $(document).ready(function () {
url: "/cgi-bin/koha/authorities/ysearch.pl",
dataType: "json",
data: {
index: index,
authtypecode: authtypecode,
term: request.term,
op: "do_search",
@ -118,6 +121,7 @@ $(document).ready(function () {
url: "/cgi-bin/koha/authorities/ysearch.pl",
dataType: "json",
data: {
index: index,
authtypecode: authtypecode,
term: request.term,
op: "do_search",