From 8a17e45f7e56967069dc33440f90ffc4ab9a5131 Mon Sep 17 00:00:00 2001 From: Frédéric Buclin Date: Sun, 12 Aug 2012 12:11:10 +0200 Subject: Bug 746947: Determine the size of the images dynamically for graphical reports r=dkl a=LpSolit --- report.cgi | 29 +++++------ skins/standard/IE-fixes.css | 4 ++ skins/standard/reports.css | 25 +++++++++ template/en/default/reports/report.html.tmpl | 78 ++++++++-------------------- 4 files changed, 64 insertions(+), 72 deletions(-) diff --git a/report.cgi b/report.cgi index 5778841b3..0241f42b5 100755 --- a/report.cgi +++ b/report.cgi @@ -103,20 +103,18 @@ if (!($col_field || $row_field || $tbl_field)) { ThrowUserError("no_axes_defined"); } -my $width = $cgi->param('width'); -my $height = $cgi->param('height'); +# There is no UI for these parameters anymore, +# but they are still here just in case. +my $width = $cgi->param('width') || 1024; +my $height = $cgi->param('height') || 600; -if (defined($width)) { - (detaint_natural($width) && $width > 0) - || ThrowCodeError("invalid_dimensions"); - $width <= 2000 || ThrowUserError("chart_too_large"); -} +(detaint_natural($width) && $width > 0) + || ThrowCodeError("invalid_dimensions"); +$width <= 2000 || ThrowUserError("chart_too_large"); -if (defined($height)) { - (detaint_natural($height) && $height > 0) - || ThrowCodeError("invalid_dimensions"); - $height <= 2000 || ThrowUserError("chart_too_large"); -} +(detaint_natural($height) && $height > 0) + || ThrowCodeError("invalid_dimensions"); +$height <= 2000 || ThrowUserError("chart_too_large"); # These shenanigans are necessary to make sure that both vertical and # horizontal 1D tables convert to the correct dimension when you ask to @@ -244,7 +242,7 @@ $vars->{'row_names'} = \@row_names; $vars->{'tbl_names'} = \@tbl_names; # Below a certain width, we don't see any bars, so there needs to be a minimum. -if ($width && $cgi->param('format') eq "bar") { +if ($cgi->param('format') eq "bar") { my $min_width = (scalar(@col_names) || 1) * 20; if (!$cgi->param('cumulate')) { @@ -254,9 +252,8 @@ if ($width && $cgi->param('format') eq "bar") { $vars->{'min_width'} = $min_width; } -$vars->{'width'} = $width if $width; -$vars->{'height'} = $height if $height; - +$vars->{'width'} = $width; +$vars->{'height'} = $height; $vars->{'query'} = $query; $vars->{'saved_report_id'} = $cgi->param('saved_report_id'); $vars->{'debug'} = $cgi->param('debug'); diff --git a/skins/standard/IE-fixes.css b/skins/standard/IE-fixes.css index 9574d5f9e..65f33a637 100644 --- a/skins/standard/IE-fixes.css +++ b/skins/standard/IE-fixes.css @@ -52,3 +52,7 @@ form#Create #comp_desc { /* color:inherit */ color: expression(this.parentNode.currentStyle['color']); } + +#graphical_report { + width: auto\9; /* IE6-8 */ +} diff --git a/skins/standard/reports.css b/skins/standard/reports.css index 065fe72bb..97ef316ba 100644 --- a/skins/standard/reports.css +++ b/skins/standard/reports.css @@ -77,3 +77,28 @@ padding-bottom: .5em; color: #333; } + +.t1 { + background-color: #ffffff; /* white */ +} + +.t2 { + background-color: #dfefff; /* light blue */ +} + +.t3 { + background-color: #dddddd; /* grey */ +} + +.t4 { + background-color: #c3d3ed; /* darker blue */ +} + +.ttotal, .ttotal td { + background-color: #cfffdf; /* light green */ +} + +#graphical_report { + max-width: 100%; + height: auto; +} diff --git a/template/en/default/reports/report.html.tmpl b/template/en/default/reports/report.html.tmpl index 76049d04e..8219ebd89 100644 --- a/template/en/default/reports/report.html.tmpl +++ b/template/en/default/reports/report.html.tmpl @@ -21,8 +21,8 @@ # cumulate: boolean. For bar/line charts, whether to cumulate data sets. #%] -[% DEFAULT width = 600 - height = 350 +[% DEFAULT width = 1024 + height = 600 %] [% IF min_width AND width < min_width %] @@ -55,14 +55,8 @@ [% time = time FILTER time('%Y-%m-%d %H:%M:%S') FILTER html %] [% PROCESS global/header.html.tmpl - style = " - .t1 { background-color: #ffffff } /* white */ - .t2 { background-color: #dfefff } /* light blue */ - .t3 { background-color: #dddddd } /* grey */ - .t4 { background-color: #c3d3ed } /* darker blue */ - .ttotal, .ttotal td { background-color: #cfffdf } /* light green */ - " header_addl_info = time + style_urls = ['skins/standard/reports.css'] yui = ['datatable'] %] @@ -98,57 +92,29 @@ [% END %] [% END %] [% END %] - [% END %]width=[% width %]&height=[% height %] + [% END %]width=[% width %]&height=[% height %] [% END %] - - Graphical report results + + Graphical report results [% END %]
[% END %] - - - - - [% IF format != "table" %] - - - [% sizeurl = BLOCK %]report.cgi? - [% switchbase %]&action=wrap&format= - [% format FILTER html %][% END %] - - [% END %] - -
- [% formats = [ { name => "pie", description => "Pie" }, - { name => "bar", description => "Bar" }, - { name => "line", description => "Line" }, - { name => "table", description => "Table" } ] %] - - [% formaturl = "report.cgi?$switchbase&width=$width" _ - "&height=$height&action=wrap" %] - [% FOREACH other_format = formats %] - [% NEXT IF other_format.name == "pie" AND row_field AND col_field %] - [% UNLESS other_format.name == format %] - - [% END %] - [% other_format.description FILTER html %] - [% "" UNLESS other_format.name == format %] | - [% END %] - CSV - -        - - Taller
- Thinner * - Fatter    
- Shorter
-
+ [% formats = [ { name => "pie", description => "Pie" }, + { name => "bar", description => "Bar" }, + { name => "line", description => "Line" }, + { name => "table", description => "Table" } ] %] + + [% formaturl = "report.cgi?$switchbase&width=$width&height=$height&action=wrap" %] + [% FOREACH other_format = formats %] + [% NEXT IF other_format.name == "pie" AND row_field AND col_field %] + [% UNLESS other_format.name == format %] + + [% END %] + [% other_format.description FILTER html %] + [% "" UNLESS other_format.name == format %] | + [% END %] + CSV @@ -161,7 +127,7 @@ Edit this report [% END %] - +
 | [% IF saved_report_id %]