Beispieldatei bei CSV-Import herunterladen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 7 Mar 2011 12:21:52 +0000 (13:21 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 16 Jun 2011 07:30:18 +0000 (09:30 +0200)
SL/Controller/CsvImport.pm
locale/de/all
templates/webpages/csv_import/form.html

index c0967ac..c30634b 100644 (file)
@@ -67,6 +67,26 @@ sub action_destroy {
   $self->redirect_to(action => 'new', 'profile.type' => $self->type);
 }
 
+sub action_download_sample {
+  my $self = shift;
+
+  $self->profile_from_form;
+  $self->setup_help;
+
+  my $file_name = 'csv_import_sample_' . $self->type . '.csv';
+  my $file      = SL::SessionFile->new($file_name, mode => '>', encoding => $self->profile->get('charset'));
+  my $csv       = Text::CSV_XS->new({ binary => 1, map { ( $_ => $self->profile->get($_) ) } qw(sep_char escape_char quote_char),});
+
+  $csv->print($file->fh, [ map { $_->{name}        } @{ $self->displayable_columns } ]);
+  $file->fh->print("\r\n");
+  $csv->print($file->fh, [ map { $_->{description} } @{ $self->displayable_columns } ]);
+  $file->fh->print("\r\n");
+
+  $file->fh->close;
+
+  $self->send_file($file->file_name);
+}
+
 #
 # filters
 #
index 0c238bf..7647d94 100644 (file)
@@ -614,6 +614,7 @@ $self->{texts} = {
   'Documents in the WebDAV repository' => 'Dokumente im WebDAV-Repository',
   'Done'                        => 'Fertig',
   'Download SEPA XML export file' => 'SEPA-XML-Exportdatei herunterladen',
+  'Download sample file'        => 'Beispieldatei herunterladen',
   'Download the backup'         => 'Die Sicherungsdatei herunterladen',
   'Draft saved.'                => 'Entwurf gespeichert.',
   'Drawing'                     => 'Zeichnung',
index c9c9133..b146465 100644 (file)
    </p>
 [%- END %]
 
+   <p>
+    [%- L.submit_tag('action_download_sample', LxERP.t8('Download sample file')) %]
+   </p>
+
   </div>
 
   <hr>