X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FSearch%2FChart;h=2a28d62c4a41137c759f223b7fe798b1078dfd6a;hp=abee3e52af3ddddb00e5f9f7625297fa4ad5803e;hb=919e930aa9279b3c5cd12b593889cd6de79d67bf;hpb=624b2d44625f69d71175c3348cae635d580c890b diff --git a/rt/share/html/Search/Chart b/rt/share/html/Search/Chart index abee3e52a..2a28d62c4 100644 --- a/rt/share/html/Search/Chart +++ b/rt/share/html/Search/Chart @@ -1,40 +1,40 @@ %# BEGIN BPS TAGGED BLOCK {{{ -%# +%# %# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC -%# -%# +%# +%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC +%# +%# %# (Except where explicitly superseded by other copyright notices) -%# -%# +%# +%# %# LICENSE: -%# +%# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. -%# +%# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. -%# +%# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -%# -%# +%# +%# %# CONTRIBUTION SUBMISSION POLICY: -%# +%# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) -%# +%# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,13 +43,12 @@ %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. -%# +%# %# END BPS TAGGED BLOCK }}} <%args> $Query => "id > 0" $PrimaryGroupBy => 'Queue' -$SecondaryGroupBy => undef -$ChartStyle => 'bars' +$ChartStyle => 'bar' <%init> my $chart_class; @@ -66,7 +65,8 @@ if ($ChartStyle eq 'pie') { use RT::Report::Tickets; my $tix = RT::Report::Tickets->new( $session{'CurrentUser'} ); - +my %AllowedGroupings = reverse $tix->Groupings( Query => $Query ); +$PrimaryGroupBy = 'Queue' unless exists $AllowedGroupings{$PrimaryGroupBy}; my ($count_name, $value_name) = $tix->SetupGroupings( Query => $Query, GroupBy => $PrimaryGroupBy, ); @@ -146,28 +146,31 @@ if ($tix->Count == 0) { } if ($chart_class eq "GD::Graph::bars") { + my $count = keys %data; $chart->set( x_label => $tix->Label( $PrimaryGroupBy ), y_label => loc('Tickets'), show_values => 1, - bar_spacing => 5, - bargroup_spacing => 10, x_label_position => 0.6, y_label_position => 0.6, values_space => -1, +# use a top margin enough to display values over the top line if needed + t_margin => 18, # the following line to make sure there's enough space for values to show y_max_value => 5*(int($max_value/5) + 2), # if there're too many bars or at least one key is too long, use vertical - x_labels_vertical => ( keys(%data) * $max_key_length > 60 ) ? 1 : 0, + x_labels_vertical => ( $count * $max_key_length > 60 ) ? 1 : 0, + $count > 30 ? ( bar_spacing => 1 ) : ( $count > 20 ? ( bar_spacing => 2 ) : + ( $count > 10 ? ( bar_spacing => 3 ) : ( bar_spacing => 5 ) ) + ), ); } # refine values' colors, with both Color::Scheme's help and my own tweak $chart->{dclrs} = [ '66cc66', 'ff6666', 'ffcc66', '663399', - '3333cc', - '339933', '993333', '996633', '663399', - '33cc33', 'cc3333', 'cc9933', '6633cc' + '3333cc', '339933', '993333', '996633', + '33cc33', 'cc3333', 'cc9933', '6633cc', ]; {