Bug 6939 DefaultClassificationSource should be default in 942
[koha.git] / cataloguing / addbiblio.pl
index 7fabb77..3db1a65 100755 (executable)
@@ -215,10 +215,8 @@ sub build_authorized_values_list {
                         ($class_source eq $default_source);
             push @authorised_values, $class_source;
             $authorised_lib{$class_source} = $class_sources->{$class_source}->{'description'};
-            $value = $class_source unless ($value);
-            $value = $default_source unless ($value);
         }
-        #---- "true" authorised value
+        $value = $default_source unless $value;
     }
     else {
         $authorised_values_sth->execute(
@@ -293,14 +291,6 @@ sub create_input {
 
     $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
     if ( $value eq '' ) {
         $value = $tagslib->{$tag}->{$subfield}->{defaultvalue};
@@ -335,6 +325,7 @@ sub create_input {
         index          => $index_tag,
         id             => "tag_".$tag."_subfield_".$id_subfield."_".$index_tag."_".$index_subfield,
         value          => $value,
+        maxlength      => $tagslib->{$tag}->{$subfield}->{maxlength},
         random         => CreateKey(),
     );
 
@@ -374,7 +365,7 @@ sub create_input {
                     class=\"input_marceditor readonly\"
                     tabindex=\"1\"
                     size=\"5\"
-                    maxlength=\"$max_length\"
+                    maxlength=\"".$subfield_data{maxlength}."\"
                     readonly=\"readonly\"
                     \/>";
 
@@ -390,7 +381,7 @@ sub create_input {
                     class=\"input_marceditor readonly\"
                     tabindex=\"1\"
                     size=\"67\"
-                    maxlength=\"$max_length\"
+                    maxlength=\"".$subfield_data{maxlength}."\"
                     \/>
                     <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>
@@ -404,7 +395,7 @@ sub create_input {
                     class=\"input_marceditor readonly\"
                     tabindex=\"1\"
                     size=\"67\"
-                    maxlength=\"$max_length\"
+                    maxlength=\"".$subfield_data{maxlength}."\"
                     readonly=\"readonly\"
                     \/><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>
@@ -435,7 +426,7 @@ sub create_input {
                             class=\"input_marceditor\"
                             onfocus=\"Focus$function_name($index_tag)\"
                             size=\"67\"
-                            maxlength=\"$max_length\"
+                            maxlength=\"".$subfield_data{maxlength}."\"
                             onblur=\"Blur$function_name($index_tag); \" \/>
                             <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";
@@ -449,7 +440,7 @@ sub create_input {
                         value=\"$value\"
                         tabindex=\"1\"
                         size=\"67\"
-                        maxlength=\"$max_length\"
+                        maxlength=\"".$subfield_data{maxlength}."\"
                         class=\"input_marceditor\"
                 \/>
                 ";
@@ -463,7 +454,7 @@ sub create_input {
                     id=\"".$subfield_data{id}."\"
                     name=\"".$subfield_data{id}."\"
                     size=\"67\"
-                    maxlength=\"$max_length\"
+                    maxlength=\"".$subfield_data{maxlength}."\"
                     value=\"$value\" \/>
             ";
     }
@@ -497,7 +488,7 @@ sub create_input {
                         value=\"$value\"
                         tabindex=\"1\"
                         size=\"67\"
-                        maxlength=\"$max_length\"
+                        maxlength=\"".$subfield_data{maxlength}."\"
                         class=\"input_marceditor\"
                 \/>
                 ";
@@ -729,6 +720,7 @@ sub build_tabs {
 my $input = new CGI;
 my $error = $input->param('error');
 my $biblionumber  = $input->param('biblionumber'); # if biblionumber exists, it's a modif, not a new biblio.
+my $parentbiblio  = $input->param('parentbiblionumber');
 my $breedingid    = $input->param('breedingid');
 my $z3950         = $input->param('z3950');
 my $op            = $input->param('op');
@@ -808,13 +800,25 @@ if (($biblionumber) && !($breedingid)){
 if ($breedingid) {
     ( $record, $encoding ) = MARCfindbreeding( $breedingid ) ;
 }
+
 #populate hostfield if hostbiblionumber is available
-if ($hostbiblionumber){
-       my $marcflavour = C4::Context->preference("marcflavour");
-       $record=MARC::Record->new();
-       $record->leader('');
-        my $field = PrepHostMarcField($hostbiblionumber, $hostitemnumber,$marcflavour);
-       $record->append_fields($field);
+if ($hostbiblionumber) {
+    my $marcflavour = C4::Context->preference("marcflavour");
+    $record = MARC::Record->new();
+    $record->leader('');
+    my $field =
+      PrepHostMarcField( $hostbiblionumber, $hostitemnumber, $marcflavour );
+    $record->append_fields($field);
+}
+
+# This is  a child record
+if ($parentbiblio) {
+    my $marcflavour = C4::Context->preference('marcflavour');
+    $record = MARC::Record->new();
+    my $hostfield = prepare_host_field($parentbiblio,$marcflavour);
+    if ($hostfield) {
+        $record->append_fields($hostfield);
+    }
 }
 
 $is_a_modif = 0;
@@ -978,7 +982,6 @@ $template->param(
     frameworkcode => $frameworkcode,
     itemtype => $frameworkcode,
     borrowernumber => $loggedinuser, 
-    marcflavour => C4::Context->preference("marcflavour"),
 );
 
 output_html_with_http_headers $input, $cookie, $template->output;