Bug 9503 Correct name of parameter passed to parcel.pl
[koha.git] / authorities / authorities.pl
index d4f1601..ee842e0 100755 (executable)
@@ -47,7 +47,7 @@ builds list, depending on authorised value...
 
 =cut
 
-sub build_authorized_values_list ($$$$$$$) {
+sub build_authorized_values_list {
     my ( $tag, $subfield, $value, $dbh, $authorised_values_sth,$index_tag,$index_subfield ) = @_;
 
     my @authorised_values;
@@ -152,9 +152,15 @@ sub create_input {
         $value =~ s/DD/$day/g;
     }
     my $dbh = C4::Context->dbh;
+
+    # map '@' as "subfield" label for fixed fields
+    # to something that's allowed in a div id.
+    my $id_subfield = $subfield;
+    $id_subfield = "00" if $id_subfield eq "@";
+
     my %subfield_data = (
         tag        => $tag,
-        subfield   => $subfield,
+        subfield   => $id_subfield,
         marc_lib   => substr( $tagslib->{$tag}->{$subfield}->{lib}, 0, 22 ),
         marc_lib_plain => $tagslib->{$tag}->{$subfield}->{lib}, 
         tag_mandatory  => $tagslib->{$tag}->{mandatory},
@@ -162,14 +168,10 @@ sub create_input {
         repeatable     => $tagslib->{$tag}->{$subfield}->{repeatable},
         kohafield      => $tagslib->{$tag}->{$subfield}->{kohafield},
         index          => $index_tag,
-        id             => "tag_".$tag."_subfield_".$subfield."_".$index_tag."_".$index_subfield,
+        id             => "tag_".$tag."_subfield_".$id_subfield."_".$index_tag."_".$index_subfield,
         value          => $value,
+        random         => CreateKey(),
     );
-    if($subfield eq '@'){
-        $subfield_data{id} = "tag_".$tag."_subfield_00_".$index_tag."_".$index_subfield;
-    } else {
-        $subfield_data{id} = "tag_".$tag."_subfield_".$subfield."_".$index_tag."_".$index_subfield;
-    }
 
     if(exists $mandatory_z3950->{$tag.$subfield}){
         $subfield_data{z3950_mandatory} = $mandatory_z3950->{$tag.$subfield};
@@ -194,17 +196,16 @@ sub create_input {
             id=\"".$subfield_data{id}."\"
             name=\"".$subfield_data{id}."\"
             value=\"$value\"
-            class=\"input_marceditor readonly\"
-            tabindex=\"1\"
-            readonly=\"readonly\" \/>
+            class=\"input_marceditor\"
+            tabindex=\"1\" \/>
         <a href=\"#\" class=\"buttonDot\"
-        onclick=\"openAuth(this.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."'); return false;\" tabindex=\"1\" title=\"Tag Editor\">...</a>
+        onclick=\"openAuth(this.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."','auth'); return false;\" tabindex=\"1\" title=\"Tag Editor\">...</a>
     ";
     # it's a plugin field
     }
     elsif ( $tagslib->{$tag}->{$subfield}->{'value_builder'} ) {
 
-        # opening plugin. Just check wether we are on a developper computer on a production one
+        # opening plugin. Just check whether we are on a developer computer on a production one
         # (the cgidir differs)
         my $cgidir = C4::Context->intranetdir . "/cgi-bin/cataloguing/value_builder";
         unless (-r $cgidir and -d $cgidir) {
@@ -321,11 +322,11 @@ Create a random value to set it into the input name
 
 =cut
 
-sub CreateKey(){
+sub CreateKey {
     return int(rand(1000000));
 }
 
-sub build_tabs ($$$$$) {
+sub build_tabs {
     my ( $template, $record, $dbh, $encoding,$input ) = @_;
 
     # fill arrays
@@ -499,7 +500,7 @@ sub build_tabs ($$$$$) {
 }
 
 
-sub build_hidden_data () {
+sub build_hidden_data {
     # build hidden data =>
     # we store everything, even if we show only requested subfields.
 
@@ -581,8 +582,7 @@ if ($op eq "add") {
     # build indicator hash.
     my @ind_tag = $input->param('ind_tag');
     my @indicator = $input->param('indicator');
-    my @params = $input->param();
-    my $record = TransformHtmlToMarc(\@params,$input);
+    my $record = TransformHtmlToMarc($input);
     if  (C4::Context->preference("marcflavour") eq "UNIMARC"){
         unless ($record->field('100')){
         use POSIX qw(strftime);
@@ -605,7 +605,11 @@ if ($op eq "add") {
         } else {
             ($authid) = AddAuthority($record,$authid,$authtypecode);
         }
-        print $input->redirect("detail.pl?authid=$authid");
+        if ($myindex) {
+            print $input->redirect("blinddetail-biblio-search.pl?authid=$authid&index=$myindex");
+        } else {
+            print $input->redirect("detail.pl?authid=$authid");
+        }
         exit;
     } else {
     # it may be a duplicate, warn the user and do nothing
@@ -613,7 +617,7 @@ if ($op eq "add") {
         build_hidden_data;
         $template->param(authid =>$authid,
                         duplicateauthid     => $duplicateauthid,
-                        duplicateauthvalue  => $duplicateauthvalue,
+                        duplicateauthvalue  => $duplicateauthvalue->{'authorized'}->[0]->{'heading'},
                         );
     }
 } elsif ($op eq "delete") {