Bug 29173: Fixed pre-filling of the search form from the "Replace record with ZR39.50/SRU" (Authority page detail)

Now this action has the same pre-filling behaviour as the "Edit" -> "Edit Record" -> "Replace Record via Z39.50/SRU Search" action.
Author Personal - Author Meeting/Conf. - Uniform Title and Subject are filled in if the subfield contains data (like the "Edit->Replace" action).
Unimarc and Marc21 specificities are supported.

Test Plan :

1) You must have a Z39.50/SRU server for authorities
2) Go to an authority detail page (Author - Uniform title - Subject)
3)After go to "Edit"-> "Edit record" -> "Replace record via..." or
choose "Replace Record.." directly
4) See that form is also prefilled with data now

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 26c26164ba)
Signed-off-by: Jacob O'Mara <jacob.omara@ptfs-europe.com>
This commit is contained in:
Thibaud Guillot 2022-03-29 16:12:48 +02:00 committed by Jacob O'Mara
parent 27d128c3ab
commit d788bf07c2

View file

@ -24,19 +24,51 @@ use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_html_with_http_headers );
use C4::Context;
use C4::Breeding qw( Z3950Search Z3950SearchAuth );
use MARC::Record;
use Koha::Authorities;
use Koha::Authority::Types;
use C4::AuthoritiesMarc qw( GetAuthority );
my $input = CGI->new;
my $dbh = C4::Context->dbh;
my $error = $input->param('error');
my $authid = $input->param('authid') || 0;
my $record = GetAuthority($authid);
my $marc_flavour = C4::Context->preference('marcflavour');
my $authfields_mapping = {
'authorpersonal' => $marc_flavour eq 'MARC21' ? '100' : '200',
'authorcorp' => $marc_flavour eq 'MARC21' ? '110' : '210',
'authormeetingcon' => $marc_flavour eq 'MARC21' ? '111' : '210',
'uniformtitle' => $marc_flavour eq 'MARC21' ? '130' : '230',
'subject' => $marc_flavour eq 'MARC21' ? '150' : '250',
};
my $nameany = $input->param('nameany');
my $authorany = $input->param('authorany');
my $authorcorp = $input->param('authorcorp');
my $authorpersonal = $input->param('authorpersonal');
my $authormeetingcon = $input->param('authormeetingcon');
my $authorcorp =
$record
? $record->subfield( $authfields_mapping->{'authorcorp'}, 'a' )
: $input->param('authorcorp');
my $authorpersonal =
$record
? $record->subfield( $authfields_mapping->{'authorpersonal'}, 'a' )
: $input->param('authorpersonal');
my $authormeetingcon =
$record
? $record->subfield( $authfields_mapping->{'authormeetingcon'}, 'a' )
: $input->param('authormeetingcon');
my $title = $input->param('title');
my $uniformtitle = $input->param('uniformtitle');
my $subject = $input->param('subject');
my $uniformtitle =
$record
? $record->subfield( $authfields_mapping->{'uniformtitle'}, 'a' )
: $input->param('uniformtitle');
my $subject =
$record
? $record->subfield( $authfields_mapping->{'subject'}, 'a' )
: $input->param('subject');
my $subjectsubdiv = $input->param('subjectsubdiv');
my $srchany = $input->param('srchany');
my $op = $input->param('op')||'';