diff options
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/pref/pref-process.html | 3 | ||||
-rw-r--r-- | httemplate/pref/pref.html | 15 | ||||
-rw-r--r-- | httemplate/search/elements/search-xls.html | 13 |
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)); |