Bug 9978: Replace license header with the correct license (GPLv3+)
[srvgit] / cataloguing / value_builder / macles.pl
index 76f213b..bab687b 100755 (executable)
@@ -5,22 +5,22 @@
 #
 # This file is part of Koha.
 #
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 #
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
 
 use strict;
 #use warnings; FIXME - Bug 2505
-use CGI;
+use CGI qw ( -utf8 );
 use C4::Context;
 use C4::Output;
 use C4::Auth;
@@ -31,17 +31,6 @@ use vars qw( $authorised_values_sth);
 use vars qw( $is_a_modif );
 use utf8;
 
-=head1
-
-plugin_parameters : other parameters added when the plugin is called by the dopop function
-
-=cut
-
-sub plugin_parameters {
-my ($dbh,$record,$tagslib,$i,$tabloop) = @_;
-return "";
-}
-
 sub plugin_javascript {
 my ($dbh,$record,$tagslib,$field_number,$tabloop) = @_;
 my $function_name= "macles".(int(rand(100000))+1);
@@ -49,14 +38,6 @@ my $res="
 <script type=\"text/javascript\">
 //<![CDATA[
 
-function Focus$function_name(subfield_managed) {
-return 1;
-}
-
-function Blur$function_name(subfield_managed) {
-       return 1;
-}
-
 function Clic$function_name(i) {
        newin=window.open(\"../cataloguing/plugin_launcher.pl?plugin_name=macles.pl&index=\"+i,\"MACLES\",',toolbar=false,scrollbars=yes');
 
@@ -84,10 +65,6 @@ my ($input) = @_;
     my @innerloop;
     my (%numbers,%cells,@colhdr,@rowhdr,@multiplelines,@lists,$table);
     while (my $tab = $rq->fetchrow_hashref){
-#       if (! utf8::is_utf8($tab->{lib})) {
-#         utf8::decode($tab->{lib});
-#       }
-#       warn $tab->{lib};
       my $number=substr($tab->{authorised_value},0,1);
       if ($tab->{authorised_value}=~/[0-9]XX/){
         $numbers{$number}->{'hdr_tab'}=$tab->{lib};
@@ -117,68 +94,85 @@ my ($input) = @_;
       }
 #        use Data::Dumper;warn "BIGLOOP IN".Dumper(@BIGLOOP);
     }
-    foreach my $num (sort keys %numbers){
-       my @tmpcolhdr;
-       my @tmprowhdr;
-        @tmpcolhdr = @{$numbers{$num}->{'col_hdr'}} if ($numbers{$num}->{'col_hdr'});
-        @tmprowhdr = @{$numbers{$num}->{"row_hdr"}} if ($numbers{$num}->{'row_hdr'});
-      my @lines;
-      my @lists;
-      my %BIGLOOPcell;
-      foreach my $row (@tmprowhdr){
-        my $tmprowvalue=$row->{rowvalue};
-         my $rowcode;
-          $rowcode=$1 if $tmprowvalue=~/[0-9]([0-9])\./;
-        my @cells;
-        if (scalar(@tmpcolhdr)>0){
-        #cas du tableau bidim
-          foreach my $col (@tmpcolhdr){
-            my $tmpcolvalue=$col->{colvalue};
-             my $colcode;
-              $colcode=$1 if $tmpcolvalue=~/[0-9]\.([0-9])/;
-            my %cell;
-            $cell{celvalue}=$num.$rowcode.$colcode;
-            $cell{rowvalue}=$tmprowvalue;
-            $cell{colvalue}=$tmpcolvalue;
-            if ($numbers{$num}->{$num.$rowcode.$colcode}){
-              foreach (@{$numbers{$num}->{$num.$rowcode.$colcode}}){
-                push @{$cell{libs}},{'lib'=>$_};
-              }
-            }else {
-              push @{$cell{libs}},{'lib'=>$num.$rowcode.$colcode};
+    foreach my $num ( sort keys %numbers ) {
+        my @tmpcolhdr;
+        my @tmprowhdr;
+        @tmpcolhdr = @{ $numbers{$num}->{'col_hdr'} }
+          if ( $numbers{$num}->{'col_hdr'} );
+        @tmprowhdr = @{ $numbers{$num}->{"row_hdr"} }
+          if ( $numbers{$num}->{'row_hdr'} );
+        my @lines;
+        my @lists;
+        my %BIGLOOPcell;
+        foreach my $row (@tmprowhdr) {
+            my $tmprowvalue = $row->{rowvalue};
+            my $rowcode;
+            $rowcode = $1 if $tmprowvalue =~ /[0-9]([0-9])\./;
+            my @cells;
+            if ( scalar(@tmpcolhdr) > 0 ) {
+
+                #cas du tableau bidim
+                foreach my $col (@tmpcolhdr) {
+                    my $tmpcolvalue = $col->{colvalue};
+                    my $colcode;
+                    $colcode = $1 if $tmpcolvalue =~ /[0-9]\.([0-9])/;
+                    my %cell;
+                    $cell{celvalue} = $num . $rowcode . $colcode;
+                    $cell{rowvalue} = $tmprowvalue;
+                    $cell{colvalue} = $tmpcolvalue;
+                    if ( $numbers{$num}->{ $num . $rowcode . $colcode } ) {
+
+                        foreach (
+                            @{ $numbers{$num}->{ $num . $rowcode . $colcode } }
+                          )
+                        {
+                            push @{ $cell{libs} }, { 'lib' => $_ };
+                        }
+                    }
+                    else {
+                        push @{ $cell{libs} },
+                          { 'lib' => $num . $rowcode . $colcode };
+                    }
+                    push @cells, \%cell;
+                }
+                if ( $numbers{$num}->{ $num . $rowcode } ) {
+                    my @tmpliblist = @{ $numbers{$num}->{ $num . $rowcode } };
+                    push @lists,
+                      { 'lib' => $row->{rowlib}, 'liblist' => \@tmpliblist };
+                }
             }
-            push @cells,\%cell;
-          }
-          if ($numbers{$num}->{$num.$rowcode}){
-            my @tmpliblist=@{$numbers{$num}->{$num.$rowcode}};
-            push @lists,{'lib'=>$row->{rowlib},'liblist'=>\@tmpliblist};
-          }
-        } else {
-        #Cas de la liste simple
-          foreach my $key (sort keys %{$numbers{$num}}){
-            my %cell;
-            if ($key=~/$num$rowcode[0-9]/){
-              $cell{celvalue}=$key;
-              foreach my $lib (@{$numbers{$num}->{$key}}){
-                push @{$cell{'libs'}},{'lib'=>$lib};
-              }
-              push @cells,\%cell;
+            else {
+
+                #Cas de la liste simple
+                foreach my $key ( sort keys %{ $numbers{$num} } ) {
+                    my %cell;
+                    if ( $key =~ /$num$rowcode[0-9]/ ) {
+                        $cell{celvalue} = $key;
+                        foreach my $lib ( @{ $numbers{$num}->{$key} } ) {
+                            push @{ $cell{'libs'} }, { 'lib' => $lib };
+                        }
+                        push @cells, \%cell;
+                    }
+                }
             }
-          }
+            push @lines,
+              {
+                'cells'    => \@cells,
+                'rowvalue' => $row->{rowvalue},
+                'rowlib'   => $row->{rowlib}
+              };
         }
-        push @lines,{'cells'=>\@cells,'rowvalue'=>$row->{rowvalue},'rowlib'=>$row->{rowlib}};
-      }
-      $BIGLOOPcell{'Lists'}=\@lists if (scalar(@lists)>0);
-      $BIGLOOPcell{'lines'}=\@lines if (scalar(@lines)>0);
-      $BIGLOOPcell{'col_hdr'}=\@tmpcolhdr if (scalar(@tmpcolhdr)>0);
-      $BIGLOOPcell{'Table'}=$numbers{$num}->{'Table'};
-      $BIGLOOPcell{'hdr_tab'}=$numbers{$num}->{'hdr_tab'};
-      $BIGLOOPcell{'number'}=$num;
-      push @BIGLOOP,\%BIGLOOPcell;
+        $BIGLOOPcell{'Lists'}   = \@lists     if ( scalar(@lists) > 0 );
+        $BIGLOOPcell{'lines'}   = \@lines     if ( scalar(@lines) > 0 );
+        $BIGLOOPcell{'col_hdr'} = \@tmpcolhdr if ( scalar(@tmpcolhdr) > 0 );
+        $BIGLOOPcell{'Table'}   = $numbers{$num}->{'Table'};
+        $BIGLOOPcell{'hdr_tab'} = $numbers{$num}->{'hdr_tab'};
+        $BIGLOOPcell{'number'}  = $num;
+        push @BIGLOOP, \%BIGLOOPcell;
     }
 #     warn "BIGLOOP OUT".Dumper(@BIGLOOP);
     my ($template, $loggedinuser, $cookie)
-        = get_template_and_user({template_name => "cataloguing/value_builder/macles.tmpl",
+        = get_template_and_user({template_name => "cataloguing/value_builder/macles.tt",
                     query => $input,
                     type => "intranet",
                     authnotrequired => 0,
@@ -189,6 +183,3 @@ my ($input) = @_;
        $template->param("index"=>$index);
        output_html_with_http_headers $input, $cookie, $template->output;
 }
-1;
-
-