}
}
- if ( ref($record) eq undef ) {
+ if ( !defined(ref($record)) ) {
return -1;
}
else {
$value =~ s/"/"/g;
+ # determine maximum length; 9999 bytes per ISO 2709 except for leader and MARC21 008
+ my $max_length = 9999;
+ if ($tag eq '000') {
+ $max_length = 24;
+ } elsif ($tag eq '008' and C4::Context->preference('marcflavour') eq 'MARC21') {
+ $max_length = 40;
+ }
+
# if there is no value provided but a default value in parameters, get it
unless ($value) {
$value = $tagslib->{$tag}->{$subfield}->{defaultvalue};
class=\"input_marceditor\"
tabindex=\"1\"
size=\"5\"
- maxlength=\"255\"
+ maxlength=\"$max_length\"
readonly=\"readonly\"
\/>";
class=\"input_marceditor\"
tabindex=\"1\"
size=\"67\"
- maxlength=\"255\"
+ maxlength=\"$max_length\"
\/>
<a href=\"#\" class=\"buttonDot\"
onclick=\"Dopop('/cgi-bin/koha/authorities/auth_finder.pl?authtypecode=".$tagslib->{$tag}->{$subfield}->{authtypecode}."&index=$subfield_data{id}','$subfield_data{id}'); return false;\" title=\"Tag Editor\">...</a>
class=\"input_marceditor\"
tabindex=\"1\"
size=\"67\"
- maxlength=\"255\"
+ maxlength=\"$max_length\"
readonly=\"readonly\"
\/>
<a href=\"#\" class=\"buttonDot\"
class=\"input_marceditor\"
onfocus=\"Focus$function_name($index_tag)\"
size=\"67\"
- maxlength=\"255\"
+ maxlength=\"$max_length\"
onblur=\"Blur$function_name($index_tag); \" \/>
<a href=\"#\" class=\"buttonDot\" onclick=\"Clic$function_name('$subfield_data{id}'); return false;\" title=\"Tag Editor\">...</a>
$javascript";
value=\"$value\"
tabindex=\"1\"
size=\"67\"
- maxlength=\"255\"
+ maxlength=\"$max_length\"
class=\"input_marceditor\"
\/>
";
id=\"".$subfield_data{id}."\"
name=\"".$subfield_data{id}."\"
size=\"67\"
- maxlength=\"255\"
+ maxlength=\"$max_length\"
value=\"$value\" \/>
";
}
class=\"input_marceditor\"
tabindex=\"1\"
size=\"67\"
- maxlength=\"255\"
+ maxlength=\"$max_length\"
value=\"$value\"
\/>";
value=\"$value\"
tabindex=\"1\"
size=\"67\"
- maxlength=\"255\"
+ maxlength=\"$max_length\"
class=\"input_marceditor\"
\/>
";
index => $index_tag,
tag_lib => $tagslib->{$tag}->{lib},
repeatable => $tagslib->{$tag}->{repeatable},
+ mandatory => $tagslib->{$tag}->{mandatory},
subfield_loop => \@subfields_data,
fixedfield => $tag < 10?1:0,
random => CreateKey,
index => $index_tag,
tag_lib => $tagslib->{$tag}->{lib},
repeatable => $tagslib->{$tag}->{repeatable},
+ mandatory => $tagslib->{$tag}->{mandatory},
indicator1 => $indicator1,
indicator2 => $indicator2,
subfield_loop => \@subfields_data,
###NOTICE : This is only valid if a subfield is linked to one and only one authtypecode
###NOTICE : This can be a problem. We should also look into other types and rejected forms.
my $authtypedata=GetAuthType($data->{authtypecode});
+ next unless $authtypedata;
my $marcrecordauth=MARC::Record->new();
my $authfield=MARC::Field->new($authtypedata->{auth_tag_to_report},'','',"a"=>"".$field->subfield('a'));
map { $authfield->add_subfields($_->[0]=>$_->[1]) if ($_->[0]=~/[A-z]/ && $_->[0] ne "a" )} $field->subfields();