361e5f83e2
This patch does several things: - Set the default for 008/15-17 to "no " (yes, there is space at the end) - Link from 008/15-17 in the value builder to NORMARC country codes - Set the default for 008/35-37 to "nor" (by setting the DefaultLanguageField008 syspref) - Link from 008/35-37 in the value builder to NORMARC language codes - Fix a missing <tr> around field 35-37 To reproduce: - Run through the Web-installer in Norwegian and choose NORMARC as the MARC flavour - Go to Home > Cataloging > Add MARC record and add a new record - Click in the field for 008. The default should look like: 130415t xxu||||| |||| 00| 0 eng d ^^^ ^^^ - Reload the page and open the value builder for 008. Problems: - The text for 15-17 links to MARC21 country codes - The default for 15-17 is xxu - The text for 35-37 links to MARC21 language codes - The default for 35-37 is eng - If you choose e.g. "Monografier" in the top dropdown then click on "OK" the window does not close To test: - Apply the patch and run through the Web-installer again, selecting Norwegian and NORMARC - Go to Home > Cataloging > Add MARC record and add a new record - Click in the field for 008. The default should look like: 130415t no ||||| |||| 00| 0 nor d ^^^ ^^^ - Reload the page and open the value builder for 008. - Check that... - The default for 15-17 is "no " (with a space at the end) - The link goes to NORMARC country codes - The default for 35-37 is "nor" - The link goes to NORMARC language codes - Select something from the top dropdown and click "OK". Check that the window closes and that the values that are entered into the 008 field matches what you chose in the popup window. Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Trusing Magnus is right, so testing for any regressions mainly, all good Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Only changes NORMARC specific plugin and system preferences files. Changes all seem logical to me. Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
190 lines
5.6 KiB
Perl
Executable file
190 lines
5.6 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
# Copyright 2009 Magnus Enger Libriotech
|
|
#
|
|
# This file is part of Koha.
|
|
#
|
|
# Koha is free software; you can redistribute it and/or modify it under the
|
|
# terms of the GNU General Public License as published by the Free Software
|
|
# Foundation; either version 2 of the License, or (at your option) any later
|
|
# version.
|
|
#
|
|
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License along with
|
|
# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
|
|
# Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
use strict;
|
|
use C4::Auth;
|
|
use CGI;
|
|
use C4::Context;
|
|
|
|
use C4::Search;
|
|
use C4::Output;
|
|
|
|
=head1
|
|
|
|
plugin_parameters : other parameters added when the plugin is called by the dopop function
|
|
|
|
=cut
|
|
|
|
# find today's date
|
|
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
|
|
|
|
$year += 1900;
|
|
$mon += 1;
|
|
my $dateentered = substr($year, 2, 2) . sprintf("%0.2d", $mon) . sprintf("%0.2d", $mday);
|
|
|
|
sub plugin_parameters {
|
|
my ($dbh, $record, $tagslib, $i, $tabloop) = @_;
|
|
return "";
|
|
}
|
|
|
|
sub plugin_javascript {
|
|
my $lang = C4::Context->preference('DefaultLanguageField008' );
|
|
$lang = "eng" unless $lang;
|
|
$lang = pack("A3", $lang);
|
|
my ($dbh, $record, $tagslib, $field_number, $tabloop) = @_;
|
|
my $function_name = $field_number;
|
|
my $res = "
|
|
<script type=\"text/javascript\">
|
|
//<![CDATA[
|
|
|
|
function Focus$function_name(subfield_managed) {
|
|
|
|
if ( document.getElementById(\"$field_number\").value ) {
|
|
}
|
|
else {
|
|
document.getElementById(\"$field_number\").value='$dateentered' + 't no ||||| |||| 00| 0 $lang d';
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
function Blur$function_name(subfield_managed) {
|
|
return 1;
|
|
}
|
|
|
|
function Clic$function_name(i) {
|
|
defaultvalue=document.getElementById(\"$field_number\").value;
|
|
defaultvalue=defaultvalue.replace(/ /g, \"+\");
|
|
newin=window.open(\"../cataloguing/plugin_launcher.pl?plugin_name=normarc_field_008.pl&index=$field_number&result=\"+defaultvalue,\"unimarc field 100\",'width=1000,height=600,toolbar=false,scrollbars=yes');
|
|
|
|
}
|
|
//]]>
|
|
</script>
|
|
";
|
|
|
|
return ($function_name, $res);
|
|
}
|
|
|
|
sub plugin {
|
|
my $lang = C4::Context->preference('DefaultLanguageField008' );
|
|
$lang = "eng" unless $lang;
|
|
$lang = pack("A3", $lang);
|
|
my ($input) = @_;
|
|
my $index = $input->param('index');
|
|
my $result = $input->param('result');
|
|
|
|
my $dbh = C4::Context->dbh;
|
|
|
|
my ($template, $loggedinuser, $cookie) = get_template_and_user(
|
|
{ template_name => "cataloguing/value_builder/normarc_field_008.tmpl",
|
|
query => $input,
|
|
type => "intranet",
|
|
authnotrequired => 0,
|
|
flagsrequired => { editcatalogue => 1 },
|
|
debug => 1,
|
|
}
|
|
);
|
|
|
|
# $result = " t xxu 00 0 eng d" unless $result;
|
|
$result = "$dateentered" . "t no ||||| |||| 00| 0 $lang d" unless $result;
|
|
my $f1 = substr($result, 0, 6);
|
|
my $f6 = substr($result, 6, 1);
|
|
my $f710 = substr($result, 7, 4);
|
|
my $f1114 = substr($result, 11, 4);
|
|
my $f1517 = substr($result, 15, 3);
|
|
my $f18 = substr($result, 18, 1);
|
|
my $f19 = substr($result, 19, 1);
|
|
my $f20 = substr($result, 20, 1);
|
|
my $f21 = substr($result, 21, 1);
|
|
my $f22 = substr($result, 22, 1);
|
|
my $f23 = substr($result, 23, 1);
|
|
my $f24 = substr($result, 24, 1);
|
|
my $f25 = substr($result, 25, 1);
|
|
my $f26 = substr($result, 26, 1);
|
|
my $f27 = substr($result, 27, 1);
|
|
my $f28 = substr($result, 28, 1);
|
|
my $f29 = substr($result, 29, 1);
|
|
my $f30 = substr($result, 30, 1);
|
|
my $f31 = substr($result, 31, 1);
|
|
my $f32 = substr($result, 32, 1);
|
|
my $f33 = substr($result, 33, 1);
|
|
my $f34 = substr($result, 34, 1);
|
|
my $f3537 = substr($result, 35, 3);
|
|
my $f38 = substr($result, 38, 1);
|
|
my $f39 = substr($result, 39, 1);
|
|
|
|
# bug 2563
|
|
$f710 = "" if ($f710 =~ /^\s*$/);
|
|
$f1114 = "" if ($f1114 =~ /^\s*$/);
|
|
|
|
if ((!$f1) || ($f1 =~ m/ /)) {
|
|
$f1 = $dateentered;
|
|
}
|
|
|
|
$template->param(
|
|
index => $index,
|
|
f1 => $f1,
|
|
f6 => $f6,
|
|
"f6$f6" => $f6,
|
|
f710 => $f710,
|
|
f1114 => $f1114,
|
|
f1517 => $f1517,
|
|
f18 => $f18,
|
|
"f18$f18" => $f18,
|
|
f19 => $f19,
|
|
"f19$f19" => $f19,
|
|
f20 => $f20,
|
|
"f20$f20" => $f20,
|
|
f21 => $f21,
|
|
"f21$f21" => $f21,
|
|
f22 => $f22,
|
|
"f22$f22" => $f22,
|
|
f23 => $f23,
|
|
"f23$f23" => $f23,
|
|
f24 => $f24,
|
|
"f24$f24" => $f24,
|
|
f25 => $f25,
|
|
"f25$f25" => $f25,
|
|
f26 => $f26,
|
|
"f26$f26" => $f26,
|
|
f27 => $f27,
|
|
"f27$f27" => $f27,
|
|
f28 => $f28,
|
|
"f28$f28" => $f28,
|
|
f29 => $f29,
|
|
"f29$f29" => $f29,
|
|
f30 => $f30,
|
|
"f30$f30" => $f30,
|
|
f31 => $f31,
|
|
"f31$f31" => $f31,
|
|
f32 => $f32,
|
|
"f32$f32" => $f32,
|
|
f33 => $f33,
|
|
"f33$f33" => $f33,
|
|
f34 => $f34,
|
|
"f34$f34" => $f34,
|
|
f3537 => $f3537,
|
|
f38 => $f38,
|
|
"f38$f38" => $f38,
|
|
f39 => $f39,
|
|
"f39$f39" => $f39,
|
|
);
|
|
output_html_with_http_headers $input, $cookie, $template->output;
|
|
}
|
|
|
|
1;
|