summaryrefslogtreecommitdiff
path: root/rt/share/html/Search/Chart
diff options
context:
space:
mode:
Diffstat (limited to 'rt/share/html/Search/Chart')
-rw-r--r--rt/share/html/Search/Chart204
1 files changed, 0 insertions, 204 deletions
diff --git a/rt/share/html/Search/Chart b/rt/share/html/Search/Chart
deleted file mode 100644
index abee3e52a..000000000
--- a/rt/share/html/Search/Chart
+++ /dev/null
@@ -1,204 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@bestpractical.com>
-%#
-%# (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
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
-%# 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'
-</%args>
-<%init>
-my $chart_class;
-use GD;
-use GD::Text;
-
-if ($ChartStyle eq 'pie') {
- require GD::Graph::pie;
- $chart_class = "GD::Graph::pie";
-} else {
- require GD::Graph::bars;
- $chart_class = "GD::Graph::bars";
-}
-
-use RT::Report::Tickets;
-my $tix = RT::Report::Tickets->new( $session{'CurrentUser'} );
-
-my ($count_name, $value_name) = $tix->SetupGroupings(
- Query => $Query, GroupBy => $PrimaryGroupBy,
-);
-
-my %class = (
- Queue => 'RT::Queue',
- Owner => 'RT::User',
- Creator => 'RT::User',
- LastUpdatedBy => 'RT::User',
-);
-my $class = $class{ $PrimaryGroupBy };
-
-my %data;
-my $max_value = 0;
-my $max_key_length = 0;
-while ( my $entry = $tix->Next ) {
- my $key;
- if ( $class ) {
- my $q = $class->new( $session{'CurrentUser'} );
- $q->Load( $entry->LabelValue( $value_name ) );
- $key = $q->Name;
- }
- else {
- $key = $entry->LabelValue($value_name);
- }
- $key ||= '(no value)';
-
- my $value = $entry->__Value( $count_name );
- if ($chart_class eq 'GD::Graph::pie') {
- $key = loc($key) ." - ". $value;
- } else {
- $key = loc($key);
- }
- $data{ $key } = $value;
- $max_value = $value if $max_value < $value;
- $max_key_length = length $key if $max_key_length < length $key;
-}
-
-unless (keys %data) {
- $data{''} = 0;
-}
-
-
-my $chart = $chart_class->new( 600 => 400 );
-$chart->set( pie_height => 60 ) if $chart_class eq 'GD::Graph::pie';
-my %font_config = RT->Config->Get('ChartFont');
-my $font = $font_config{ $session{CurrentUser}->UserObj->Lang || '' }
- || $font_config{'others'};
-$chart->set_title_font( $font, 16 ) if $chart->can('set_title_font');
-$chart->set_legend_font( $font, 16 ) if $chart->can('set_legend_font');
-$chart->set_x_label_font( $font, 14 ) if $chart->can('set_x_label_font');
-$chart->set_y_label_font( $font, 14 ) if $chart->can('set_y_label_font');
-$chart->set_label_font( $font, 14 ) if $chart->can('set_label_font');
-$chart->set_x_axis_font( $font, 12 ) if $chart->can('set_x_axis_font');
-$chart->set_y_axis_font( $font, 12 ) if $chart->can('set_y_axis_font');
-$chart->set_values_font( $font, 12 ) if $chart->can('set_values_font');
-$chart->set_value_font( $font, 12 ) if $chart->can('set_value_font');
-
-# Pie charts don't like having no input, so we show a special image
-# that indicates an error message. Because this is used in an <img>
-# context, it can't be a simple error message. Without this check,
-# the chart will just be a non-loading image.
-if ($tix->Count == 0) {
- my $plot = GD::Image->new(600 => 400);
- $plot->colorAllocate(255, 255, 255); # background
- my $black = $plot->colorAllocate(0, 0, 0);
-
- require GD::Text::Wrap;
- my $error = GD::Text::Wrap->new($plot,
- color => $black,
- text => loc("No tickets found."),
- );
- $error->set_font( $font, 16 );
- $error->draw(0, 0);
-
- $m->comp( 'SELF:Plot', plot => $plot, %ARGS );
-}
-
-if ($chart_class eq "GD::Graph::bars") {
- $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,
-# 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,
- );
-}
-
-# 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'
-];
-
-{
- no warnings 'redefine';
- *GD::Graph::pick_data_clr = sub {
- my $self = shift;
- my $color_hex = $self->{dclrs}[ $_[0] % @{ $self->{dclrs} } - 1 ];
- return map { hex } ( $color_hex =~ /(..)(..)(..)/ );
- };
-}
-
-my $plot = $chart->plot( [ [sort keys %data], [map $data{$_}, sort keys %data] ] ) or die $chart->error;
-$m->comp( 'SELF:Plot', plot => $plot, %ARGS );
-</%init>
-
-<%METHOD Plot>
-<%ARGS>
-$plot => undef
-</%ARGS>
-<%INIT>
-my @types = ('png', 'gif');
-for my $type (@types) {
- $plot->can($type)
- or next;
-
- $r->content_type("image/$type");
- $m->out( $plot->$type );
- $m->abort();
-}
-
-die "Your GD library appears to support none of the following image types: " . join(', ', @types);
-</%INIT>
-
-</%METHOD>