Bug 11313: supply empty value in mandatory comboboxs in MARC record editors
[koha.git] / cataloguing / addbiblio.pl
index bfb62f0..118bfc2 100755 (executable)
@@ -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('IndependentBranches') &&
-                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;
@@ -392,7 +395,7 @@ sub create_input {
                     ($is_readonly ? "readonly=\"readonly\"" : "").
                     "\/>
                     <span class=\"subfield_controls\"><a href=\"#\" class=\"buttonDot tag_editor\"
-                       onclick=\"openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."','biblio'); return false;\" tabindex=\"1\">Tag editor</a></span>
+                       onclick=\"openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."','biblio'); return false;\" tabindex=\"1\" title=\"Tag editor\">Tag editor</a></span>
             ";
     # it's a plugin field
     }
@@ -421,7 +424,7 @@ sub create_input {
                             size=\"67\"
                             maxlength=\"".$subfield_data{maxlength}."\"
                             onblur=\"Blur$function_name($index_tag); \" \/>
-                            <span class=\"subfield_controls\"><a href=\"#\" class=\"buttonDot tag_editor\" onclick=\"Clic$function_name('$subfield_data{id}'); return false;\" tabindex=\"1\">Tag editor</a></span>
+                            <span class=\"subfield_controls\"><a href=\"#\" class=\"buttonDot tag_editor\" onclick=\"Clic$function_name('$subfield_data{id}'); return false;\" tabindex=\"1\" title=\"Tag editor\">Tag editor</a></span>
                     $javascript";
         } else {
             warn "Plugin Failed: $plugin";
@@ -821,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);