From 26413f0d9594b465cbee93cadd6c0d355f48a81e Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" <> Date: Fri, 12 Sep 2003 05:34:04 +0000 Subject: Bug 215918 - All graphs that show numeric value on x-axis are useless and misleading. We now sort numerical fields numerically. Patch by gerv; r=jouni, a=justdave. --- report.cgi | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) (limited to 'report.cgi') diff --git a/report.cgi b/report.cgi index 487859190..970190742 100755 --- a/report.cgi +++ b/report.cgi @@ -156,6 +156,13 @@ my %names; # Read the bug data and count the bugs for each possible value of row, column # and table. +# +# We detect a numerical field, and sort appropriately, if all the values are +# numeric. +my $col_isnumeric = 1; +my $row_isnumeric = 1; +my $tbl_isnumeric = 1; + while (MoreSQLData()) { my ($row, $col, $tbl) = FetchSQLData(); $row = "" if ($row eq $columns{''}); @@ -166,11 +173,35 @@ while (MoreSQLData()) { $names{"col"}{$col}++; $names{"row"}{$row}++; $names{"tbl"}{$tbl}++; + + $col_isnumeric &&= ($col =~ /^-?\d+(\.\d+)?$/o); + $row_isnumeric &&= ($row =~ /^-?\d+(\.\d+)?$/o); + $tbl_isnumeric &&= ($tbl =~ /^-?\d+(\.\d+)?$/o); } -my @col_names = sort(keys(%{$names{"col"}})); -my @row_names = sort(keys(%{$names{"row"}})); -my @tbl_names = sort(keys(%{$names{"tbl"}})); +my @col_names; +my @row_names; +my @tbl_names; +sub numerically { $a <=> $b } + +# Use the appropriate sort for each dimension +if ($col_isnumeric) { + @col_names = sort numerically keys(%{$names{"col"}}); +} else { + @col_names = sort(keys(%{$names{"col"}})); +} + +if ($row_isnumeric) { + @row_names = sort numerically keys(%{$names{"row"}}); +} else { + @row_names = sort(keys(%{$names{"row"}})); +} + +if ($tbl_isnumeric) { + @tbl_names = sort numerically keys(%{$names{"tbl"}}); +} else { + @tbl_names = sort(keys(%{$names{"tbl"}})); +} # The GD::Graph package requires a particular format of data, so once we've # gathered everything into the hashes and made sure we know the size of the -- cgit v1.2.3-24-g4f1b