"select itemtype,description from itemtypes order by description");
$sth->execute;
push @authorised_values, ""
- unless ( $tagslib->{$tag}->{$subfield}->{mandatory} );
+ unless ( $tagslib->{$tag}->{$subfield}->{defaultvalue} and $tagslib->{$tag}->{$subfield}->{mandatory} );
my $itemtype;
if(exists $mandatory_z3950->{$tag.$subfield}){
$subfield_data{z3950_mandatory} = $mandatory_z3950->{$tag.$subfield};
}
- # decide if the subfield must be expanded (visible) by default or not
- # if it is mandatory, then expand. If it is hidden explicitly by the hidden flag, hidden anyway
+ # Subfield is hidden depending of hidden and mandatory flag, and is always
+ # shown if it contains anything or if its field is mandatory.
+ my $tdef = $tagslib->{$tag};
$subfield_data{visibility} = "display:none;"
- if ( ($tagslib->{$tag}->{$subfield}->{hidden} % 2 == 1) and $value ne ''
- or ($value eq '' and !$tagslib->{$tag}->{$subfield}->{mandatory})
- );
- # always expand all subfields of a mandatory field
- $subfield_data{visibility} = "" if $tagslib->{$tag}->{mandatory};
+ if $tdef->{$subfield}->{hidden} % 2 == 1 &&
+ $value eq '' &&
+ !$tdef->{$subfield}->{mandatory} &&
+ !$tdef->{mandatory};
# it's an authorised field
if ( $tagslib->{$tag}->{$subfield}->{authorised_value} ) {
$subfield_data{marc_value} =
size=\"67\"
maxlength=\"$max_length\"
\/>
- <a href=\"#\" class=\"buttonDot\"
- onclick=\"openAuth(this.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."'); return false;\" tabindex=\"1\" title=\"Tag Editor\">...</a>
+ <span class=\"subfield_controls\"><a href=\"#\" class=\"buttonDot\"
+ onclick=\"openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."'); return false;\" tabindex=\"1\" title=\"Tag Editor\"><img src=\"/intranet-tmpl/prog/img/edit-tag.png\" alt=\"Tag Editor\" /></a></span>
";
} else {
$subfield_data{marc_value} =
size=\"67\"
maxlength=\"$max_length\"
readonly=\"readonly\"
- \/><a href=\"#\" class=\"buttonDot\"
- onclick=\"openAuth(this.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."'); return false;\" tabindex=\"1\" title=\"Tag Editor\">...</a>
+ \/><span class=\"subfield_controls\"><a href=\"#\" class=\"buttonDot\"
+ onclick=\"openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."'); return false;\" tabindex=\"1\" title=\"Tag Editor\"><img src=\"/intranet-tmpl/prog/img/edit-tag.png\" alt=\"Tag Editor\" /></a></span>
";
}
# it's a plugin field
size=\"67\"
maxlength=\"$max_length\"
onblur=\"Blur$function_name($index_tag); \" \/>
- <a href=\"#\" class=\"buttonDot\" onclick=\"Clic$function_name('$subfield_data{id}'); return false;\" tabindex=\"1\" title=\"Tag Editor\">...</a>
+ <span class=\"subfield_controls\"><a href=\"#\" class=\"buttonDot\" onclick=\"Clic$function_name('$subfield_data{id}'); return false;\" tabindex=\"1\" title=\"Tag Editor\"><img src=\"/intranet-tmpl/prog/img/edit-tag.png\" alt=\"Tag Editor\" /></a></span>
$javascript";
} else {
warn "Plugin Failed: $plugin";
my ($countcreated,$countlinked);
while (my $data=$query->fetchrow_hashref){
foreach my $field ($record->field($data->{tagfield})){
- next if ($field->subfield('9'));
+ next if ($field->subfield('3') || $field->subfield('9'));
# No authorities id in the tag.
# Search if there is any authorities to link to.
my $query='at='.$data->{authtypecode}.' ';
warn "BIBLIOADDSAUTHORITIES: $error";
return (0,0) ;
}
- if ($results && scalar(@$results)==1) {
+ if ( @{$results} == 1) {
my $marcrecord = MARC::File::USMARC::decode($results->[0]);
$field->add_subfields('9'=>$marcrecord->field('001')->data);
$countlinked++;
- } elsif (scalar(@$results)>1) {
+ } elsif (@{$results} > 1) {
#More than One result
#This can comes out of a lack of a subfield.
# my $marcrecord = MARC::File::USMARC::decode($results->[0]);
# $record->field($data->{tagfield})->add_subfields('9'=>$marcrecord->field('001')->data);
- $countlinked++;
+ $countlinked++;
} else {
#There are no results, build authority record, add it to Authorities, get authid and add it to 9
###NOTICE : This is only valid if a subfield is linked to one and only one authtypecode
my $redirect = $input->param('redirect');
my $dbh = C4::Context->dbh;
-my $userflags = ($frameworkcode eq 'FA') ? "fast_cataloging" : "edit_catalogue";
+
+my $userflags = 'edit_catalogue';
+if ($frameworkcode eq 'FA'){
+ $userflags = 'fast_cataloging';
+}
$frameworkcode = &GetFrameworkCode($biblionumber)
- if ( $biblionumber and not($frameworkcode) );
+ if ( $biblionumber and not($frameworkcode) and $op ne 'addbiblio' );
$frameworkcode = '' if ( $frameworkcode eq 'Default' );
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{
- template_name => "cataloguing/addbiblio.tmpl",
+ template_name => "cataloguing/addbiblio.tt",
query => $input,
type => "intranet",
authnotrequired => 0,
}
);
+if ($frameworkcode eq 'FA'){
+ # We need to grab and set some variables in the template for use on the additems screen
+ $template->{VARS}->{'circborrowernumber'} = $input->param('borrowernumber');
+ $template->{VARS}->{'barcode'} = $input->param('barcode');
+ $template->{VARS}->{'branch'} = $input->param('branch');
+ $template->{VARS}->{'stickyduedate'} = $input->param('stickyduedate');
+ $template->{VARS}->{'duedatespec'} = $input->param('duedatespec');
+}
+
# Getting the list of all frameworks
# get framework list
my $frameworks = getframeworks;
frameworktext => $frameworks->{$thisframeworkcode}->{'frameworktext'},
);
if ($frameworkcode eq $thisframeworkcode){
- $row{'selected'}="selected=\"selected\"";
+ $row{'selected'} = 1;
}
push @frameworkcodeloop, \%row;
}
#-------------------------------------------------------------------------------------
if ( $op eq "addbiblio" ) {
#-------------------------------------------------------------------------------------
+ $template->param(
+ biblionumberdata => $biblionumber,
+ );
# getting html input
my @params = $input->param();
$record = TransformHtmlToMarc( \@params , $input );
# check for a duplicate
- my ($duplicatebiblionumber,$duplicatetitle) = FindDuplicate($record) if (!$is_a_modif);
+ my ( $duplicatebiblionumber, $duplicatetitle );
+ if ( !$is_a_modif ) {
+ ( $duplicatebiblionumber, $duplicatetitle ) = FindDuplicate($record);
+ }
my $confirm_not_duplicate = $input->param('confirm_not_duplicate');
# it is not a duplicate (determined either by Koha itself or by user checking it's not a duplicate)
if ( !$duplicatebiblionumber or $confirm_not_duplicate ) {
else {
( $biblionumber, $oldbibitemnum ) = AddBiblio( $record, $frameworkcode );
}
- if ($mode ne "popup" && !$is_a_modif && $redirect eq "items"){
- print $input->redirect(
+ if ($redirect eq "items" || ($mode ne "popup" && !$is_a_modif && $redirect ne "view")){
+ if ($frameworkcode eq 'FA'){
+ my $borrowernumber = $input->param('circborrowernumber');
+ my $barcode = $input->param('barcode');
+ my $branch = $input->param('branch');
+ my $stickyduedate = $input->param('stickyduedate');
+ my $duedatespec = $input->param('duedatespec');
+ print $input->redirect(
+ "/cgi-bin/koha/cataloguing/additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode&borrowernumber=$borrowernumber&branch=$branch&barcode=$barcode&stickyduedate=$stickyduedate&duedatespec=$duedatespec"
+ );
+ exit;
+ }
+ else {
+ print $input->redirect(
"/cgi-bin/koha/cataloguing/additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode"
- );
- exit;
+ );
+ exit;
+ }
}
- elsif($is_a_modif || $redirect eq "view"){
+ elsif($is_a_modif || $redirect eq "view"){
my $defaultview = C4::Context->preference('IntranetBiblioDefaultView');
my $views = { C4::Search::enabled_staff_search_views };
if ($defaultview eq 'isbd' && $views->{can_view_ISBD}) {
}
exit;
- }else {
+ }
+ else {
$template->param(
biblionumber => $biblionumber,
done =>1,
#----------------------------------------------------------------------------
# If we're in a duplication case, we have to set to "" the biblionumber
# as we'll save the biblio as a new one.
+ $template->param(
+ biblionumberdata => $biblionumber,
+ op => $op,
+ );
if ( $op eq "duplicate" ) {
$biblionumber = "";
}
if (C4::Context->preference("marcflavour") eq "MARC21"){
$template->param(MARC21 => 1);
}
+
+
$template->param(
popup => $mode,
frameworkcode => $frameworkcode,
itemtype => $frameworkcode,
+ borrowernumber => $loggedinuser
);
output_html_with_http_headers $input, $cookie, $template->output;