X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/7de440bfb460ac0e011b7a833390c980c0753984..a13f2a9bd60851cbfd495dcff82871fd89ec9acc:/SL/Controller/File.pm diff --git a/SL/Controller/File.pm b/SL/Controller/File.pm index 4ff35db44..7cd9406d0 100644 --- a/SL/Controller/File.pm +++ b/SL/Controller/File.pm @@ -66,6 +66,7 @@ my %file_types = ( 'purchase_invoice' => { gen => 6, gltype => 'ap', dir =>'PurchaseInvoice', model => 'PurchaseInvoice',right => 'import_ap' }, 'vendor' => { gen => 0, gltype => '', dir =>'Vendor', model => 'Vendor', right => 'xx' }, 'customer' => { gen => 1, gltype => '', dir =>'Customer', model => 'Customer', right => 'xx' }, + 'project' => { gen => 0, gltype => '', dir =>'Project', model => 'Project', right => 'xx' }, 'part' => { gen => 0, gltype => '', dir =>'Part', model => 'Part', right => 'xx' }, 'gl_transaction' => { gen => 6, gltype => 'gl', dir =>'GeneralLedger', model => 'GLTransaction', right => 'import_ap' }, 'draft' => { gen => 0, gltype => '', dir =>'Draft', model => 'Draft', right => 'xx' }, @@ -299,7 +300,10 @@ sub action_ajax_files_uploaded { sub action_download { my ($self) = @_; - my ($id, $version) = split /_/, $::form->{id}; + + my $id = $::form->{id}; + my $version = $::form->{version}; + my $file = SL::File->get(id => $id ); $file->version($version) if $version; my $ref = $file->get_content; @@ -314,10 +318,16 @@ sub action_download { sub action_ajax_get_thumbnail { my ($self) = @_; - my $file = SL::File->get(id => $::form->{file_id}); + my $id = $::form->{file_id}; + my $version = $::form->{file_version}; + my $file = SL::File->get(id => $id); + + $file->version($version) if $version; + my $thumbnail = _create_thumbnail($file, $::form->{size}); - my $overlay_selector = '#enlarged_thumb_' . $::form->{file_id}; + my $overlay_selector = '#enlarged_thumb_' . $id; + $overlay_selector .= '_' . $version if $version; $self->js ->attr($overlay_selector, 'src', 'data:' . $thumbnail->{thumbnail_img_content_type} . ';base64,' . MIME::Base64::encode_base64($thumbnail->{thumbnail_img_content})) ->data($overlay_selector, 'is-overlay-loaded', '1') @@ -396,7 +406,7 @@ sub _do_list { if ( $self->file_type eq 'document' ) { my @object_types; push @object_types, $self->object_type; - push @object_types, qw(dunning dunning1 dunning2 dunning3) if $self->object_type eq 'invoice'; # hardcoded object types? + push @object_types, qw(dunning1 dunning2 dunning3 dunning_invoice dunning_orig_invoice) if $self->object_type eq 'invoice'; # hardcoded object types? @files = SL::File->get_all_versions(object_id => $self->object_id, object_type => \@object_types, file_type => $self->file_type, @@ -669,7 +679,12 @@ sub _convert_pdf_to_png { my $size = $params{size} // 64; my $sfile = SL::SessionFile::Random->new(); - my $command = 'pdftoppm -singlefile -scale-to ' . $size . ' -png' . ' ' . $filename . ' ' . $sfile->file_name; + unless (-f $filename) { + $::lxdebug->message(LXDebug::WARN(), "_convert_pdf_to_png failed, no file found: $filename"); + return; + } + # quotemeta for storno case "storno\ zu\ 1020" *nix only + my $command = 'pdftoppm -singlefile -scale-to ' . $size . ' -png' . ' ' . quotemeta($filename) . ' ' . $sfile->file_name; if (system($command) == -1) { $::lxdebug->message(LXDebug::WARN(), "SL::File::_convert_pdf_to_png: system call failed: " . $ERRNO); @@ -677,6 +692,7 @@ sub _convert_pdf_to_png { } if ($CHILD_ERROR) { $::lxdebug->message(LXDebug::WARN(), "SL::File::_convert_pdf_to_png: pdftoppm failed with error code: " . ($CHILD_ERROR >> 8)); + $::lxdebug->message(LXDebug::WARN(), "SL::File::_convert_pdf_to_png: File: $filename"); return; }