X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FFile.pm;h=677be676bf5b30da845e0b3733f0a2e10b5c5c79;hb=2c5a4b0d406212de474b8aaa807d8e4ee9290b44;hp=28604249e37123f8b8bccf9e599eba70e0642d89;hpb=80b313fae445a6aa45a26561c0fd4ab364cb99ce;p=kivitendo-erp.git diff --git a/SL/File.pm b/SL/File.pm index 28604249e..677be676b 100644 --- a/SL/File.pm +++ b/SL/File.pm @@ -8,8 +8,10 @@ use Clone qw(clone); use SL::File::Backend; use SL::File::Object; use SL::DB::History; +use SL::DB::ShopImage; use SL::DB::File; use SL::Helper::UserPreferences; +use SL::Controller::Helper::ThumbnailCreator qw(file_probe_type); use SL::JSON; use constant RENAME_OK => 0; @@ -122,7 +124,7 @@ sub delete_all { sub delete { my ($self, %params) = @_; - die "no id or dbfile" unless $params{id} || $params{dbfile}; + die "no id or dbfile in delete" unless $params{id} || $params{dbfile}; my $rc = 0; eval { $rc = SL::DB->client->with_transaction(\&_delete, $self, %params); @@ -240,6 +242,21 @@ sub _save { $file->mtime(DateTime->now_local); $file->save; + #ShopImage + if($file->object_type eq "shop_image"){ + my $image_content = $params{file_contents}; + my $thumbnail = file_probe_type($image_content); + my $shopimage = SL::DB::ShopImage->new(); + $shopimage->assign_attributes( + file_id => $file->id, + thumbnail_content => $thumbnail->{thumbnail_img_content}, + org_file_height => $thumbnail->{file_image_height}, + org_file_width => $thumbnail->{file_image_width}, + thumbnail_content_type => $thumbnail->{thumbnail_img_content_type}, + object_id => $file->object_id, + ); + $shopimage->save; + } if ($params{file_type} eq 'document' && $params{source} ne 'created') { SL::DB::History->new( addition => 'IMPORT', @@ -307,7 +324,7 @@ sub sync_from_backend { return unless $params{file_type}; my $file = SL::DB::File->new; $file->file_type($params{file_type}); - my $backend = $self->_get_backend(dbfile => $file->backend); + my $backend = $self->_get_backend($self->_get_backend_by_file_type($file)); return unless $backend; $backend->sync_from_backend(%params); } @@ -319,13 +336,18 @@ sub _get_backend { my ($self, $backend_name) = @_; my $class = 'SL::File::Backend::' . $backend_name; my $obj = undef; + die $::locale->text('no backend enabled') if $backend_name eq 'None'; eval { eval "require $class"; $obj = $class->new; - die 'backend not enabled' unless $obj->enabled; + die $::locale->text('backend "#1" not enabled',$backend_name) unless $obj->enabled; 1; } or do { - die 'backend class not found'; + if ( $obj ) { + die $@; + } else { + die $::locale->text('backend "#1" not found',$backend_name); + } }; return $obj; }