X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=cataloguing%2Faddbiblio.pl;h=118bfc2db1abe60ceaa32a9d0322e3745886124a;hb=2b1ffd66bb88d13ac755ad1cb1aa7d86d70dc893;hp=e2ea1cdf89a826ed5abaae30052e1fe316ce0d0b;hpb=9c0b2e408b496b999cdbede92e651f3aef588209;p=koha-ffzg.git
diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl
index e2ea1cdf89..118bfc2db1 100755
--- a/cataloguing/addbiblio.pl
+++ b/cataloguing/addbiblio.pl
@@ -172,10 +172,11 @@ sub build_authorized_values_list {
#---- branch
if ( $tagslib->{$tag}->{$subfield}->{'authorised_value'} eq "branches" ) {
#Use GetBranches($onlymine)
- my $onlymine=C4::Context->preference('IndependantBranches') &&
- C4::Context->userenv &&
- C4::Context->userenv->{flags} % 2 == 0 &&
- C4::Context->userenv->{branch};
+ my $onlymine =
+ C4::Context->preference('IndependentBranches')
+ && C4::Context->userenv
+ && !C4::Context->IsSuperLibrarian()
+ && C4::Context->userenv->{branch};
my $branches = GetBranches($onlymine);
my @branchloop;
foreach my $thisbranch ( sort keys %$branches ) {
@@ -191,7 +192,8 @@ sub build_authorized_values_list {
"select itemtype,description from itemtypes order by description");
$sth->execute;
push @authorised_values, ""
- unless ( $tagslib->{$tag}->{$subfield}->{defaultvalue} and $tagslib->{$tag}->{$subfield}->{mandatory} );
+ unless ( $tagslib->{$tag}->{$subfield}->{mandatory}
+ && ( $value || $tagslib->{$tag}->{$subfield}->{defaultvalue} ) );
my $itemtype;
@@ -228,7 +230,8 @@ sub build_authorized_values_list {
);
push @authorised_values, ""
- unless ( $tagslib->{$tag}->{$subfield}->{mandatory} );
+ unless ( $tagslib->{$tag}->{$subfield}->{mandatory}
+ && ( $value || $tagslib->{$tag}->{$subfield}->{defaultvalue} ) );
while ( my ( $value, $lib ) = $authorised_values_sth->fetchrow_array ) {
push @authorised_values, $value;
@@ -391,8 +394,8 @@ sub create_input {
maxlength=\"".$subfield_data{maxlength}."\"".
($is_readonly ? "readonly=\"readonly\"" : "").
"\/>
- {$tag}->{$subfield}->{authtypecode}."','biblio'); return false;\" tabindex=\"1\" title=\"Tag Editor\">
+ {$tag}->{$subfield}->{authtypecode}."','biblio'); return false;\" tabindex=\"1\" title=\"Tag editor\">Tag editor
";
# it's a plugin field
}
@@ -421,7 +424,7 @@ sub create_input {
size=\"67\"
maxlength=\"".$subfield_data{maxlength}."\"
onblur=\"Blur$function_name($index_tag); \" \/>
-
+ Tag editor
$javascript";
} else {
warn "Plugin Failed: $plugin";
@@ -724,6 +727,7 @@ my $op = $input->param('op');
my $mode = $input->param('mode');
my $frameworkcode = $input->param('frameworkcode');
my $redirect = $input->param('redirect');
+my $searchid = $input->param('searchid');
my $dbh = C4::Context->dbh;
my $hostbiblionumber = $input->param('hostbiblionumber');
my $hostitemnumber = $input->param('hostitemnumber');
@@ -739,6 +743,7 @@ if ($frameworkcode eq 'FA'){
$userflags = 'fast_cataloging';
}
+my $changed_framework = $input->param('changed_framework');
$frameworkcode = &GetFrameworkCode($biblionumber)
if ( $biblionumber and not($frameworkcode) and $op ne 'addbiblio' );
@@ -819,6 +824,7 @@ if ($hostbiblionumber) {
if ($parentbiblio) {
my $marcflavour = C4::Context->preference('marcflavour');
$record = MARC::Record->new();
+ SetMarcUnicodeFlag($record, $marcflavour);
my $hostfield = prepare_host_field($parentbiblio,$marcflavour);
if ($hostfield) {
$record->append_fields($hostfield);
@@ -863,7 +869,7 @@ if ( $op eq "addbiblio" ) {
my $oldbibnum;
my $oldbibitemnum;
if (C4::Context->preference("BiblioAddsAuthorities")){
- my ($countlinked,$countcreated)=BiblioAutoLink($record,$frameworkcode);
+ BiblioAutoLink( $record, $frameworkcode );
}
if ( $is_a_modif ) {
ModBiblioframework( $biblionumber, $frameworkcode );
@@ -872,7 +878,7 @@ if ( $op eq "addbiblio" ) {
else {
( $biblionumber, $oldbibitemnum ) = AddBiblio( $record, $frameworkcode );
}
- if ($redirect eq "items" || ($mode ne "popup" && !$is_a_modif && $redirect ne "view")){
+ if ($redirect eq "items" || ($mode ne "popup" && !$is_a_modif && $redirect ne "view" && $redirect ne "just_save")){
if ($frameworkcode eq 'FA'){
print $input->redirect(
'/cgi-bin/koha/cataloguing/additem.pl?'
@@ -880,7 +886,7 @@ if ( $op eq "addbiblio" ) {
.'&frameworkcode='.$frameworkcode
.'&circborrowernumber='.$fa_circborrowernumber
.'&branch='.$fa_branch
- .'&barcode='.uri_escape_utf8($fa_barcode)
+ .'&barcode='.uri_escape($fa_barcode)
.'&stickyduedate='.$fa_stickyduedate
.'&duedatespec='.$fa_duedatespec
);
@@ -888,27 +894,31 @@ if ( $op eq "addbiblio" ) {
}
else {
print $input->redirect(
- "/cgi-bin/koha/cataloguing/additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode"
+ "/cgi-bin/koha/cataloguing/additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode&searchid=$searchid"
);
exit;
}
}
- elsif($is_a_modif || $redirect eq "view"){
+ elsif(($is_a_modif || $redirect eq "view") && $redirect ne "just_save"){
my $defaultview = C4::Context->preference('IntranetBiblioDefaultView');
my $views = { C4::Search::enabled_staff_search_views };
if ($defaultview eq 'isbd' && $views->{can_view_ISBD}) {
- print $input->redirect("/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=$biblionumber");
+ print $input->redirect("/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
} elsif ($defaultview eq 'marc' && $views->{can_view_MARC}) {
- print $input->redirect("/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode");
+ print $input->redirect("/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode&searchid=$searchid");
} elsif ($defaultview eq 'labeled_marc' && $views->{can_view_labeledMARC}) {
- print $input->redirect("/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=$biblionumber");
+ print $input->redirect("/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
} else {
- print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber");
+ print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber&searchid=$searchid");
}
exit;
- }
- else {
+ }
+ elsif ($redirect eq "just_save"){
+ my $tab = $input->param('current_tab');
+ print $input->redirect("/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=$biblionumber&framework=$frameworkcode&tab=$tab&searchid=$searchid");
+ }
+ else {
$template->param(
biblionumber => $biblionumber,
done =>1,
@@ -959,7 +969,10 @@ elsif ( $op eq "delete" ) {
$biblionumber = "";
}
- if ( $record ne -1 ) {
+ if($changed_framework eq "changed"){
+ $record = TransformHtmlToMarc( $input );
+ }
+ elsif( $record ne -1 ) {
#FIXME: it's kind of silly to go from MARC::Record to MARC::File::XML and then back again just to fix the encoding
eval {
my $uxml = $record->as_xml;
@@ -987,7 +1000,9 @@ $template->param(
popup => $mode,
frameworkcode => $frameworkcode,
itemtype => $frameworkcode,
- borrowernumber => $loggedinuser,
+ borrowernumber => $loggedinuser,
+ tab => $input->param('tab')
);
+$template->{'VARS'}->{'searchid'} = $searchid;
output_html_with_http_headers $input, $cookie, $template->output;