Changing table row color toggle so that color values can be specified in the template...
[koha-ffzg.git] / admin / marc_subfields_structure.pl
index ab9e92e..c8e60f3 100755 (executable)
@@ -37,9 +37,11 @@ sub StringSearch  {
        $sth->execute("$searchstring%",$frameworkcode);
        my @results;
        my $cnt=0;
+       my $u=1;
        while (my $data=$sth->fetchrow_hashref){
                push(@results,$data);
                $cnt ++;
+               $u++;
        }
        $sth->finish;
        $dbh->disconnect;
@@ -130,7 +132,16 @@ if ($op eq 'add_form') {
        }
        # build value_builder list
        my @value_builder=('');
-       opendir(DIR, "../value_builder") || die "can't opendir ../value_builder: $!";
+
+       # read value_builder directory.
+       # 2 cases here : on CVS install, $cgidir does not need a /cgi-bin
+       # on a standard install, /cgi-bin need to be added. 
+       # test one, then the other
+       my $cgidir = C4::Context->intranetdir ."/cgi-bin";
+       unless (opendir(DIR, "$cgidir/value_builder")) {
+               $cgidir = C4::Context->intranetdir;
+               opendir(DIR, "$cgidir/value_builder") || die "can't opendir $cgidir/value_builder: $!";
+       } 
        while (my $line = readdir(DIR)) {
                if ($line =~ /\.pl$/) {
                        push (@value_builder,$line);
@@ -142,14 +153,14 @@ if ($op eq 'add_form') {
        my $sth=$dbh->prepare("select * from marc_subfield_structure where tagfield=? and frameworkcode=?"); # and tagsubfield='$tagsubfield'");
        $sth->execute($tagfield,$frameworkcode);
        my @loop_data = ();
-       my $toggle="white";
+       my $toggle=1;
        my $i=0;
        while ($data =$sth->fetchrow_hashref) {
                my %row_data;  # get a fresh hash for the row data
-               if ($toggle eq 'white'){
-                       $toggle="#ffffcc";
+               if ($toggle eq 1){
+                       $toggle=0;
                } else {
-                       $toggle="white";
+                       $toggle=1;
                }
                $row_data{tab} = CGI::scrolling_list(-name=>'tab',
                                        -values=>['-1','0','1','2','3','4','5','6','7','8','9','10'],
@@ -195,6 +206,7 @@ if ($op eq 'add_form') {
                $row_data{hidden} = CGI::checkbox("hidden$i",$data->{'hidden'}?'checked':'',1,'');
                $row_data{isurl} = CGI::checkbox("isurl$i",$data->{'isurl'}?'checked':'',1,'');
                $row_data{bgcolor} = $toggle;
+               $row_data{link} = CGI::escapeHTML($data->{'link'});
                push(@loop_data, \%row_data);
                $i++;
        }
@@ -236,6 +248,7 @@ if ($op eq 'add_form') {
                                        -size=>1,
                                        -multiple=>0,
                                        );
+               $row_data{link} = CGI::escapeHTML($data->{'link'});
                $row_data{bgcolor} = $toggle;
                push(@loop_data, \%row_data);
        }
@@ -253,8 +266,8 @@ if ($op eq 'add_form') {
 } elsif ($op eq 'add_validate') {
        my $dbh = C4::Context->dbh;
        $template->param(tagfield => "$input->param('tagfield')");
-       my $sth=$dbh->prepare("replace marc_subfield_structure (tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,seealso,authorised_value,authtypecode,value_builder,hidden,isurl,frameworkcode)
-                                                                       values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
+       my $sth=$dbh->prepare("replace marc_subfield_structure (tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,seealso,authorised_value,authtypecode,value_builder,hidden,isurl,frameworkcode, link)
+                                                                       values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
        my @tagsubfield = $input->param('tagsubfield');
        my @liblibrarian        = $input->param('liblibrarian');
        my @libopac             = $input->param('libopac');
@@ -264,6 +277,7 @@ if ($op eq 'add_form') {
        my @authorised_values   = $input->param('authorised_value');
        my @authtypecodes       = $input->param('authtypecode');
        my @value_builder       =$input->param('value_builder');
+       my @link                =$input->param('link');
        for (my $i=0; $i<= $#tagsubfield ; $i++) {
                my $tagfield                    =$input->param('tagfield');
                my $tagsubfield         =$tagsubfield[$i];
@@ -280,6 +294,7 @@ if ($op eq 'add_form') {
                my $value_builder=$value_builder[$i];
                my $hidden = $input->param("hidden$i")?1:0;
                my $isurl = $input->param("isurl$i")?1:0;
+               my $link = $link[$i];
                if ($liblibrarian) {
                        unless (C4::Context->config('demo') eq 1) {
                                $sth->execute ($tagfield,
@@ -297,7 +312,9 @@ if ($op eq 'add_form') {
                                                                        $hidden,
                                                                        $isurl,
                                                                        $frameworkcode,
-                                                                       );
+
+        $link,
+                                             );
                        }
                }
        }
@@ -311,6 +328,7 @@ if ($op eq 'add_form') {
 } elsif ($op eq 'delete_confirm') {
        my $dbh = C4::Context->dbh;
        my $sth=$dbh->prepare("select * from marc_subfield_structure where tagfield=? and tagsubfield=? and frameworkcode=?");
+       #FIXME : called with 2 bind variables when 3 are needed
        $sth->execute($tagfield,$tagsubfield);
        my $data=$sth->fetchrow_hashref;
        $sth->finish;
@@ -339,13 +357,13 @@ if ($op eq 'add_form') {
 } else { # DEFAULT
        my $env;
        my ($count,$results)=StringSearch($env,$tagfield,$frameworkcode);
-       my $toggle="white";
+       my $toggle=1;
        my @loop_data = ();
        for (my $i=$offset; $i < ($offset+$pagesize<$count?$offset+$pagesize:$count); $i++){
-               if ($toggle eq 'white'){
-                       $toggle="#ffffcc";
+               if ($toggle eq 1){
+                       $toggle=0;
                } else {
-                       $toggle="white";
+                       $toggle=1;
                }
                my %row_data;  # get a fresh hash for the row data
                $row_data{tagfield} = $results->[$i]{'tagfield'};
@@ -361,8 +379,9 @@ if ($op eq 'add_form') {
                $row_data{value_builder}        = $results->[$i]{'value_builder'};
                $row_data{hidden}       = $results->[$i]{'hidden'};
                $row_data{isurl}        = $results->[$i]{'isurl'};
+               $row_data{link} = $results->[$i]{'link'};
                $row_data{delete} = "$script_name?op=delete_confirm&amp;tagfield=$tagfield&amp;tagsubfield=".$results->[$i]{'tagsubfield'}."&frameworkcode=$frameworkcode";
-               $row_data{bgcolor} = $toggle;
+               $row_data{toggle} = $toggle;
                if ($row_data{tab} eq -1) {
                        $row_data{subfield_ignored} = 1;
                }