From: Dobrica Pavlinusic Date: Thu, 22 Mar 2012 09:04:50 +0000 (+0100) Subject: Bug 7451 - PrepareItemrecordDisplay missing $subfield_data{id} which breaks AJAX... X-Git-Tag: v3.08.00~202 X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=commitdiff_plain;h=5ed65ad59fbd1ba2f8195e1d1f87466189bc6e4f;p=koha_gimpoz Bug 7451 - PrepareItemrecordDisplay missing $subfield_data{id} which breaks AJAX value_builders In current version of code, it gets initialized too late, so it produces unitialized warnings for hidden fields (which is non-fatal) and breaks generated JavaScript for AJAX value_builders (which is fatal) This bug was introduced in ticket 6106 which is modification of 5955 which didn't have this particular problem. Since then, this code moved to C4::Items because of de-nesting patches. Test scenario: 1. define 952$i plugin: stocknumberam123.pl (this is ajax value_builder) 2. go to one of following pages and verify that plugin works: acqui/addorderiso2709.pl acqui/neworderempty.pl acqui/orderreceive.pl serials/serials-edit.pl For stocknumberam123.pl plugin to work, you have to have at least one item with stocknumber in format which this plugin expects: capital letters, space, some number Signed-off-by: Katrin Fischer Works nicely, thanks for the great test plan. Signed-off-by: Paul Poulain --- diff --git a/C4/Items.pm b/C4/Items.pm index 365c1b3651..facd91f47e 100644 --- a/C4/Items.pm +++ b/C4/Items.pm @@ -2576,6 +2576,7 @@ sub PrepareItemrecordDisplay { $subfield_data{subfield} = $subfield; $subfield_data{countsubfield} = $cntsubf++; $subfield_data{kohafield} = $tagslib->{$tag}->{$subfield}->{'kohafield'}; + $subfield_data{id} = "tag_".$tag."_subfield_".$subfield."_".int(rand(1000000)); # $subfield_data{marc_lib}=$tagslib->{$tag}->{$subfield}->{lib}; $subfield_data{marc_lib} = $tagslib->{$tag}->{$subfield}->{lib}; @@ -2714,8 +2715,6 @@ sub PrepareItemrecordDisplay { my $extended_param = plugin_parameters( $dbh, $temp, $tagslib, $subfield_data{id}, undef ); my ( $function_name, $javascript ) = plugin_javascript( $dbh, $temp, $tagslib, $subfield_data{id}, undef ); $subfield_data{random} = int(rand(1000000)); # why do we need 2 different randoms? - my $index_subfield = int(rand(1000000)); - $subfield_data{id} = "tag_".$tag."_subfield_".$subfield."_".$index_subfield; $subfield_data{marc_value} = qq[