Bug 14013 - Use name of a saved report as part of the file name for download
authorMarc Véron <veron@veron.ch>
Sun, 19 Apr 2015 16:40:09 +0000 (18:40 +0200)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Wed, 22 Apr 2015 17:34:06 +0000 (14:34 -0300)
This patch propoeses the name of a saved report as part of the download file name.

To test:

- Apply patch
- Got to Home > Reports > Guided reports wizard > Saved reports (or create a new report from sql)
- Run a saved report
- Download the report (as csv, tab, ods)
Result: The downlaod file name proposed should be prepended by the report name, separated with a -

- Bonus test: Try to downlaod saved reports which have special character in their name.

NOTE: Used "ñ/â is N/A" as a report name. The /'s were translated
      to underscored, but the letters were as expected.

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tt
reports/guided_reports.pl

index d2420a0..d77824d 100644 (file)
@@ -841,6 +841,7 @@ canned reports and writing custom SQL reports.</p>
 <input type="hidden" name="sql" value="[% sql |html %]" />
 <input type="hidden" name="phase" value="Export" />
 <input type="submit" name="submit" value="Download" /></fieldset>
+<input type="hidden" name="reportname" value="[% name %]" />
 </form>
 [% END %]
 [% END %]
index d90adfb..366a12d 100755 (executable)
@@ -797,6 +797,8 @@ elsif ($phase eq 'Export'){
        # export results to tab separated text or CSV
        my $sql    = $input->param('sql');  # FIXME: use sql from saved report ID#, not new user-supplied SQL!
     my $format = $input->param('format');
+    my $reportname = $input->param('reportname');
+    my $reportfilename = $reportname ? "$reportname-reportresults.$format" : "reportresults.$format" ;
        my ($sth, $q_errors) = execute_query($sql);
     unless ($q_errors and @$q_errors) {
         my ( $type, $content );
@@ -870,7 +872,7 @@ elsif ($phase eq 'Export'){
         }
         print $input->header(
             -type => $type,
-            -attachment=>"reportresults.$format"
+            -attachment=> $reportfilename
         );
         print $content;