summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/pref/pref-process.html3
-rw-r--r--httemplate/pref/pref.html15
-rw-r--r--httemplate/search/elements/search-xls.html13
3 files changed, 25 insertions, 6 deletions
diff --git a/httemplate/pref/pref-process.html b/httemplate/pref/pref-process.html
index bd6bb860a..932cf1a0a 100644
--- a/httemplate/pref/pref-process.html
+++ b/httemplate/pref/pref-process.html
@@ -48,7 +48,8 @@ unless ( $error ) { # if ($access_user) {
my %param = $access_user->options;
#XXX autogen
- my @paramlist = qw( locale menu_position default_customer_view mobile_menu
+ my @paramlist = qw( locale menu_position default_customer_view
+ spreadsheet_format mobile_menu
disable_html_editor disable_enter_submit_onetimecharge
email_address
snom-ip snom-username snom-password
diff --git a/httemplate/pref/pref.html b/httemplate/pref/pref.html
index 8e56355db..9ebf2f1ba 100644
--- a/httemplate/pref/pref.html
+++ b/httemplate/pref/pref.html
@@ -75,6 +75,21 @@ Interface
</SELECT>
</TD>
</TR>
+
+ <TR>
+ <TH ALIGN="right">Spreadsheet download format: </TH>
+ <TD COLSPAN=2>
+ <SELECT NAME="spreadsheet_format">
+% my $xls = $curuser->option('spreadsheet_format') eq 'XLS';
+% my $xlsx = $curuser->option('spreadsheet_format') eq 'XLSX';
+ <OPTION VALUE=""></OPTION>
+ <OPTION VALUE="XLS"<% $xls ? 'SELECTED' : '' %>>XLS (Excel 97/2000/XP)
+ </OPTION>
+ <OPTION VALUE="XLSX"<% $xlsx ? 'SELECTED' : ''%>>XLSX (Excel 2007+)
+ </OPTION>
+ </SELECT>
+ </TD>
+ </TR>
<TR>
<TH ALIGN="right" COLSPAN=1>Disable HTML editor for customer notes: </TH>
diff --git a/httemplate/search/elements/search-xls.html b/httemplate/search/elements/search-xls.html
index a3a8226c5..c862dfbbe 100644
--- a/httemplate/search/elements/search-xls.html
+++ b/httemplate/search/elements/search-xls.html
@@ -7,14 +7,17 @@ my $header = $args{'header'};
my $rows = $args{'rows'};
my %opt = %{ $args{'opt'} };
+my $format = $FS::CurrentUser::CurrentUser->spreadsheet_format;
+my $filename = $opt{'name'} || PL($opt{'name_singular'});
+$filename .= $format->{extension};
+
#http_header('Content-Type' => 'application/excel' ); #eww
#http_header('Content-Type' => 'application/msexcel' ); #alas
#http_header('Content-Type' => 'application/x-msexcel' ); #?
#http://support.microsoft.com/kb/199841
-http_header('Content-Type' => 'application/vnd.ms-excel' );
-http_header('Content-Disposition' =>
- 'attachment;filename="'.($opt{'name'} || PL($opt{'name_singular'}) ).'.xls"');
+http_header('Content-Type' => $format->{mime_type} );
+http_header('Content-Disposition' => qq!attachment;filename="$filename"! );
#http://support.microsoft.com/kb/812935
#http://support.microsoft.com/kb/323308
@@ -22,8 +25,8 @@ $HTML::Mason::Commands::r->headers_out->{'Cache-control'} = 'max-age=0';
my $data = '';
my $XLS = new IO::Scalar \$data;
-my $workbook = Spreadsheet::WriteExcel->new($XLS)
- or die "Error opening .xls file: $!";
+my $workbook = $format->{class}->new($XLS)
+ or die "Error opening Excel file: $!";
my $worksheet = $workbook->add_worksheet(substr($opt{'title'},0,31));