X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=patroncards%2Fimage-manage.pl;h=514ea942c137f920cd1d999d017a6b30cb8e582b;hb=a6d709dcc378aed0f00e13dbe590a5e43370b450;hp=78f0463e60cb6f6c460459dbc0391b2430206620;hpb=66aacace086f16d2eca860cc6c2aa164866d0488;p=srvgit diff --git a/patroncards/image-manage.pl b/patroncards/image-manage.pl index 78f0463e60..514ea942c1 100755 --- a/patroncards/image-manage.pl +++ b/patroncards/image-manage.pl @@ -6,7 +6,6 @@ use strict; use CGI qw ( -utf8 ); use Graphics::Magick; use POSIX qw(ceil); -use autouse 'Data::Dumper' => qw(Dumper); use C4::Context; use C4::Auth; @@ -26,8 +25,8 @@ my ($template, $loggedinuser, $cookie) = get_template_and_user({ debug => 0, }); -my $image_name = $cgi->param('image_name') || ''; my $file_name = $cgi->param('uploadfile') || ''; +my $image_name = $cgi->param('image_name') || $file_name; my $upload_file = $cgi->upload('uploadfile') || ''; my $op = $cgi->param('op') || 'none'; my @image_ids = $cgi->multi_param('image_id') if $cgi->param('image_id'); @@ -47,9 +46,12 @@ my $image_limit = C4::Context->preference('ImageLimit') || ''; my $errstr = ''; # NOTE: For error codes see error-messages.inc if ($op eq 'upload') { - if (!$upload_file) { - warn sprintf('An error occurred while attempting to upload file %s.', $source_file); - $errstr = 301; + # Checking for duplicate image name + my $dbh = C4::Context->dbh; + my $query = "SELECT COUNT(*) FROM creator_images WHERE image_name=?"; + my ( $exists ) = $dbh->selectrow_array( $query, undef, $image_name ); + if ( $exists ) { + $errstr = 304; $template->param( IMPORT_SUCCESSFUL => 0, SOURCE_FILE => $source_file, @@ -57,13 +59,10 @@ if ($op eq 'upload') { TABLE => $table, error => $errstr, ); - } - else { - my $image = Graphics::Magick->new; - eval{$image->Read($cgi->tmpFileName($file_name));}; - if ($@) { - warn sprintf('An error occurred while creating the image object: %s',$@); - $errstr = 202; + } else { + if (!$upload_file) { + warn sprintf('An error occurred while attempting to upload file %s.', $source_file); + $errstr = 301; $template->param( IMPORT_SUCCESSFUL => 0, SOURCE_FILE => $source_file, @@ -73,31 +72,46 @@ if ($op eq 'upload') { ); } else { - my $errstr = ''; - my $size = $image->Get('filesize'); - $errstr = 302 if $size > 500000; - $image->Set(magick => 'png'); # convert all images to png as this is a lossless format which is important for resizing operations later on - my $err = put_image($image_name, $image->ImageToBlob()) || '0'; - $errstr = 101 if $err == 1; - $errstr = 303 if $err == 202; - if ($errstr) { + my $image = Graphics::Magick->new; + eval{$image->Read($cgi->tmpFileName($file_name));}; + if ($@) { + warn sprintf('An error occurred while creating the image object: %s',$@); + $errstr = 202; $template->param( IMPORT_SUCCESSFUL => 0, SOURCE_FILE => $source_file, IMAGE_NAME => $image_name, TABLE => $table, error => $errstr, - image_limit => $image_limit, ); } else { - $table = html_table($display_columns->{'image'}, get_image(undef, "image_id, image_name")); # refresh table data after successfully performing save operation - $template->param( - IMPORT_SUCCESSFUL => 1, - SOURCE_FILE => $source_file, - IMAGE_NAME => $image_name, - TABLE => $table, - ); + my $errstr = ''; + my $size = $image->Get('filesize'); + $errstr = 302 if $size > 500000; + $image->Set(magick => 'png'); # convert all images to png as this is a lossless format which is important for resizing operations later on + my $err = put_image($image_name, $image->ImageToBlob()) || '0'; + $errstr = 101 if $err == 1; + $errstr = 303 if $err == 202; + if ($errstr) { + $template->param( + IMPORT_SUCCESSFUL => 0, + SOURCE_FILE => $source_file, + IMAGE_NAME => $image_name, + TABLE => $table, + error => $errstr, + image_limit => $image_limit, + ); + } + else { + $table = html_table($display_columns->{'image'}, get_image(undef, "image_id, image_name")); # refresh table data after successfully performing save operation + $template->param( + IMPORT_SUCCESSFUL => 1, + SOURCE_FILE => $source_file, + IMAGE_NAME => $image_name, + TABLE => $table, + ); + } } } }