[HEAD](bug #3318) Granular renew permissions
[koha.git] / admin / itemtypes.pl
index 8e3291e..2c31a18 100755 (executable)
@@ -44,6 +44,7 @@ use strict;
 use CGI;
 
 use List::Util qw/min/;
+use File::Spec;
 
 use C4::Koha;
 use C4::Context;
@@ -101,35 +102,7 @@ if ( $op eq 'add_form' ) {
         $data = $sth->fetchrow_hashref;
     }
 
-    # build list of images
-    my $src = "intranet"; # so that the getitemtypeimage functions know where they were called from -fbcit
-    my $imagedir_filesystem = getitemtypeimagedir($src);
-    my $imagedir_web        = getitemtypeimagesrc($src);
-    opendir( DIR, $imagedir_filesystem )
-      or warn "cannot opendir " . $imagedir_filesystem . ": " . $!;
-    my @imagelist;
-    my $i              = 0;
-    my $image_per_line = 12;
-    while ( my $line = readdir(DIR) ) {
-        $i++;
-        if ( $line =~ /\.(gif|png)$/i ) {
-            if ( $i == $image_per_line ) {
-                $i = 0;
-                push @imagelist, { KohaImage => '', KohaImageSrc => '' };
-            }
-            else {
-                push(
-                    @imagelist,
-                    {
-                        KohaImage    => $line,
-                        KohaImageSrc => $imagedir_web . '/' . $line,
-                        checked      => $line eq $data->{imageurl} ? 1 : 0,
-                    }
-                );
-            }
-        }
-    }
-    closedir DIR;
+    my $imagesets = C4::Koha::getImageSets( checked => $data->{'imageurl'} );
 
     my $remote_image = undef;
     if ( defined $data->{imageurl} and $data->{imageurl} =~ /^http/i ) {
@@ -139,13 +112,12 @@ if ( $op eq 'add_form' ) {
     $template->param(
         itemtype        => $itemtype,
         description     => $data->{'description'},
-        renewalsallowed => $data->{'renewalsallowed'},
         rentalcharge    => sprintf( "%.2f", $data->{'rentalcharge'} ),
         notforloan      => $data->{'notforloan'},
         imageurl        => $data->{'imageurl'},
         template        => C4::Context->preference('template'),
         summary         => $data->{summary},
-        IMAGESLOOP      => \@imagelist,
+        imagesets       => $imagesets,
         remote_image    => $remote_image,
     );
 
@@ -165,7 +137,6 @@ elsif ( $op eq 'add_validate' ) {
         my $query2 = '
             UPDATE itemtypes
             SET    description = ?
-                 , renewalsallowed = ?
                  , rentalcharge = ?
                  , notforloan = ?
                  , imageurl = ?
@@ -175,7 +146,6 @@ elsif ( $op eq 'add_validate' ) {
         $sth = $dbh->prepare($query2);
         $sth->execute(
             $input->param('description'),
-            $input->param('renewalsallowed'),
             $input->param('rentalcharge'),
             ( $input->param('notforloan') ? 1 : 0 ),
             (
@@ -192,7 +162,7 @@ elsif ( $op eq 'add_validate' ) {
     else {    # add a new itemtype & not modif an old
         my $query = "
             INSERT INTO itemtypes
-                (itemtype,description,renewalsallowed,rentalcharge, notforloan, imageurl,summary)
+                (itemtype,description,rentalcharge, notforloan, imageurl,summary)
             VALUES
                 (?,?,?,?,?,?,?);
             ";
@@ -201,7 +171,6 @@ elsif ( $op eq 'add_validate' ) {
         $sth->execute(
             $input->param('itemtype'),
             $input->param('description'),
-            $input->param('renewalsallowed'),
             $input->param('rentalcharge'),
             $input->param('notforloan') ? 1 : 0,
             $image eq 'removeImage' ?           ''                 :
@@ -231,14 +200,13 @@ elsif ( $op eq 'delete_confirm' ) {
 
     my $sth =
       $dbh->prepare(
-"select itemtype,description,renewalsallowed,rentalcharge from itemtypes where itemtype=?"
+"select itemtype,description,rentalcharge from itemtypes where itemtype=?"
       );
     $sth->execute($itemtype);
     my $data = $sth->fetchrow_hashref;
     $template->param(
         itemtype        => $itemtype,
         description     => $data->{description},
-        renewalsallowed => $data->{renewalsallowed},
         rentalcharge    => sprintf( "%.2f", $data->{rentalcharge} ),
         imageurl        => $data->{imageurl},
         total           => $total
@@ -267,11 +235,9 @@ else {    # DEFAULT
     # if we are on the last page, the number of the last word to display
     # must not exceed the length of the results array
     my $last = min( $first + $pagesize - 1, scalar @{$results} - 1, );
-    my $toggle = 0;
     my @loop;
     foreach my $itemtype ( @{$results}[ $first .. $last ] ) {
-        $itemtype->{toggle} = ($toggle++ % 2) ? 0 : 1 ;
-        $itemtype->{imageurl} = getitemtypeimagesrcfromurl( $itemtype->{imageurl} );
+        $itemtype->{imageurl} = getitemtypeimagelocation( 'intranet', $itemtype->{imageurl} );
         $itemtype->{rentalcharge} = sprintf( '%.2f', $itemtype->{rentalcharge} );
         push( @loop, $itemtype );
     }