X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FFile.pm;h=3412ffbbb2483a838916ff254465622728f525b5;hb=0956f2d427fe43c70fca245bc55ce85423b76ce8;hp=4c0ef6ffa347531480ffe6987200bfd1ed93a416;hpb=e14e91e1dddf03735e10f38bedcdcf49a8c6c163;p=kivitendo-erp.git diff --git a/SL/Controller/File.pm b/SL/Controller/File.pm index 4c0ef6ffa..3412ffbbb 100644 --- a/SL/Controller/File.pm +++ b/SL/Controller/File.pm @@ -44,22 +44,23 @@ use Rose::Object::MakeMethods::Generic __PACKAGE__->run_before('check_object_params', only => [ qw(list ajax_delete ajax_importdialog ajax_import ajax_unimport ajax_upload ajax_files_uploaded) ]); my %file_types = ( - 'sales_quotation' => { gen => 1, gltype => '', dir => 'SalesQuotation', model => 'Order', right => 'import_ar' }, - 'sales_order' => { gen => 1, gltype => '', dir => 'SalesOrder', model => 'Order', right => 'import_ar' }, - 'sales_delivery_order' => { gen => 1, gltype => '', dir => 'SalesDeliveryOrder', model => 'DeliveryOrder', right => 'import_ar' }, - 'invoice' => { gen => 1, gltype => 'ar', dir => 'SalesInvoice', model => 'Invoice', right => 'import_ar' }, - 'credit_note' => { gen => 1, gltype => '', dir => 'CreditNote', model => 'Invoice', right => 'import_ar' }, - 'request_quotation' => { gen => 3, gltype => '', dir => 'RequestForQuotation', model => 'Order', right => 'import_ap' }, - 'purchase_order' => { gen => 3, gltype => '', dir => 'PurchaseOrder', model => 'Order', right => 'import_ap' }, - 'purchase_delivery_order' => { gen => 3, gltype => '', dir => 'PurchaseDeliveryOrder', model => 'DeliveryOrder', right => 'import_ap' }, - 'purchase_invoice' => { gen => 2, 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' }, - 'part' => { gen => 0, gltype => '', dir => 'Part', model => 'Part', right => 'xx' }, - 'gl_transaction' => { gen => 2, gltype => 'gl', dir => 'GeneralLedger', model => 'GLTransaction', right => 'import_ap' }, - 'draft' => { gen => 0, gltype => '', dir => 'Draft', model => 'Draft', right => 'xx' }, - 'csv_customer' => { gen => 1, gltype => '', dir => 'Reports', model => 'Customer', right => 'xx' }, - 'csv_vendor' => { gen => 1, gltype => '', dir => 'Reports', model => 'Vendor', right => 'xx' }, + 'sales_quotation' => { gen => 1, gltype => '', dir =>'SalesQuotation', model => 'Order', right => 'import_ar' }, + 'sales_order' => { gen => 1, gltype => '', dir =>'SalesOrder', model => 'Order', right => 'import_ar' }, + 'sales_delivery_order' => { gen => 1, gltype => '', dir =>'SalesDeliveryOrder', model => 'DeliveryOrder', right => 'import_ar' }, + 'invoice' => { gen => 1, gltype => 'ar', dir =>'SalesInvoice', model => 'Invoice', right => 'import_ar' }, + 'credit_note' => { gen => 1, gltype => '', dir =>'CreditNote', model => 'Invoice', right => 'import_ar' }, + 'request_quotation' => { gen => 3, gltype => '', dir =>'RequestForQuotation', model => 'Order', right => 'import_ap' }, + 'purchase_order' => { gen => 3, gltype => '', dir =>'PurchaseOrder', model => 'Order', right => 'import_ap' }, + 'purchase_delivery_order' => { gen => 3, gltype => '', dir =>'PurchaseDeliveryOrder',model => 'DeliveryOrder', right => 'import_ap' }, + 'purchase_invoice' => { gen => 2, 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' }, + 'part' => { gen => 0, gltype => '', dir =>'Part', model => 'Part', right => 'xx' }, + 'gl_transaction' => { gen => 2, gltype => 'gl', dir =>'GeneralLedger', model => 'GLTransaction', right => 'import_ap' }, + 'draft' => { gen => 0, gltype => '', dir =>'Draft', model => 'Draft', right => 'xx' }, + 'csv_customer' => { gen => 1, gltype => '', dir =>'Reports', model => 'Customer', right => 'xx' }, + 'csv_vendor' => { gen => 1, gltype => '', dir =>'Reports', model => 'Vendor', right => 'xx' }, + 'shop_image' => { gen => 0, gltype => '', dir =>'ShopImages', model => 'Part', right => 'xx' }, ); #--- 4 locale ---# @@ -134,7 +135,8 @@ sub action_ajax_unimport { sub action_ajax_rename { my ($self) = @_; - my $file = SL::File->get(id => $::form->{id}); + my ($id, $version) = split /_/, $::form->{id}; + my $file = SL::File->get(id => $id); if ( ! $file ) { $self->js->flash('error', $::locale->text('File not exists !'))->render(); return; @@ -252,20 +254,22 @@ sub action_ajax_files_uploaded { source => $source, file_type => $self->file_type, file_name => $basefile, - ); - - if ($existobj) { - push @existing, $existobj->id.'_'.$sfile->file_name; - } else { - my $fileobj = SL::File->save(object_id => $self->object_id, - object_type => $self->object_type, - mime_type => $mime_type, - source => $source, - file_type => $self->file_type, - file_name => $basefile, - ## two possibilities: which is better ? content or sessionfile ?? - #file_contents => ${$upfiles[$idx]->{data}}, - file_path => $sfile->file_name + ); + + if ($existobj) { + push @existing, $existobj->id.'_'.$sfile->file_name; + } else { + my $fileobj = SL::File->save(object_id => $self->object_id, + object_type => $self->object_type, + mime_type => $mime_type, + source => $source, + file_type => $self->file_type, + file_name => $basefile, + title => $::form->{title}, + description => $::form->{description}, + ## two possibilities: what is better ? content or sessionfile ?? + file_contents => ${$upfiles[$idx]->{data}}, + file_path => $sfile->file_name ); unlink($sfile->file_name); } @@ -317,9 +321,9 @@ sub check_object_params { } elsif ( $::form->{object_type} ) { $type = $::form->{object_type}; } - die "No object type" unless $type; - die "No file type" unless $::form->{file_type}; - die "Unkown object type" unless $file_types{$type}; + die "No object type" unless $type; + die "No file type" unless $::form->{file_type}; + die "Unknown object type" unless $file_types{$type}; $self->is_global($gldoc); $self->file_type($::form->{file_type}); @@ -347,9 +351,13 @@ sub _delete_all { foreach my $id_version (@{ $::form->{$ids} || [] }) { my ($id, $version) = split /_/, $id_version; my $dbfile = SL::File->get(id => $id); - $dbfile->version($version) if $dbfile && $version; - if ( $dbfile && $dbfile->delete ) { - $files .= ' ' . $dbfile->file_name; + if ( $dbfile ) { + if ( $version ) { + $dbfile->version($version); + $files .= ' ' . $dbfile->file_name if $dbfile->delete_version; + } else { + $files .= ' ' . $dbfile->file_name if $dbfile->delete; + } } } $self->js->flash('info', $infotext . $files) if $files; @@ -376,7 +384,14 @@ sub _do_list { ); } $self->files(\@files); - $self->_mk_render('file/list', 1, 0, $json); + + if($self->object_type eq 'shop_image'){ + $self->js + ->run('kivi.ShopPart.show_images', $self->object_id) + ->render(); + }else{ + $self->_mk_render('file/list', 1, 0, $json); + } } sub _get_from_import { @@ -448,7 +463,7 @@ sub _mk_render { my $first = shift @{$self->existing}; my ($first_id, $sfile) = split('_', $first, 2); my $file = SL::File->get(id => $first_id ); - $self->js->run('kivi.File.askForRename', $first_id, $file->file_name, $sfile, join (',', @{$self->existing}), $self->is_global); + $self->js->run('kivi.File.askForRename', $first_id, $file->file_type, $file->file_name, $sfile, join (',', @{$self->existing}), $self->is_global); } $self->js->render(); } else { @@ -480,7 +495,8 @@ sub _get_sources { 'chkall_title' => $main::locale->text('Delete all'), 'file_title' => $main::locale->text('filename'), 'confirm_text' => $main::locale->text('delete'), - 'can_rename' => 1, + 'can_delete' => $::instance_conf->get_doc_delete_printfiles, + 'can_rename' => $::instance_conf->get_doc_delete_printfiles, 'rename_title' => $main::locale->text('Rename Documents'), 'done_text' => $main::locale->text('deleted') }; @@ -500,6 +516,7 @@ sub _get_sources { 'can_rename' => 1, 'rename_title' => $main::locale->text('Rename Documents'), 'can_import' => 1, + 'can_delete' => 0, 'import_title' => $main::locale->text('Add Document from \'#1\'', $scanner_or_mailrx->{name}), 'path' => $scanner_or_mailrx->{directory}, 'done_text' => $main::locale->text('unimported') @@ -521,6 +538,7 @@ sub _get_sources { 'are_existing' => $self->existing ? 1 : 0, 'rename_title' => $main::locale->text('Rename Attachments'), 'can_upload' => 1, + 'can_delete' => 1, 'upload_title' => $main::locale->text('Upload Attachments'), 'done_text' => $main::locale->text('deleted') }; @@ -539,6 +557,7 @@ sub _get_sources { 'are_existing' => $self->existing ? 1 : 0, 'rename_title' => $main::locale->text('Rename Images'), 'can_upload' => 1, + 'can_delete' => 1, 'upload_title' => $main::locale->text('Upload Images'), 'done_text' => $main::locale->text('deleted') };