[freeside-commits] freeside/rt/html/RTx/Statistics/DayOfWeek index.html, NONE, 1.1

Ivan,,, ivan at wavetail.420.am
Wed Jun 20 15:28:24 PDT 2007


Update of /home/cvs/cvsroot/freeside/rt/html/RTx/Statistics/DayOfWeek
In directory wavetail:/tmp/cvs-serv10214/rt/html/RTx/Statistics/DayOfWeek

Added Files:
	index.html 
Log Message:
integrate RTx::Statistics package, part of merging spiritone RT changes (#1661)

--- NEW FILE: index.html ---
<& /Elements/Header, Title =>loc('Tickets by Day Of Week in Queue:' . $QueueObj->Name()) &>
<& /RTx/Statistics/Elements/Tabs, Title =>loc('Trends in ticket status by Day Of Week in Queue:' . $QueueObj->Name()) &>

<h3>Description</h3>
<p>The purpose of this page is to show historical trends for each day of the week. 
It displays details of number of tickets created in your
selected queue for each day. It also hows how many of those created tickets were Resolved or Deleted</p>

<form method="POST" action="index.html">


%my $title = "Ticket counts by day of week in " . $QueueObj->Name();
<&|/Elements/TitleBox, 
	title => $title,
	title_href => "/RTx/Statistics/DayOfWeek/index.html?$QueryString" &>
<TABLE BORDER=0 cellspacing=0 cellpadding=1 WIDTH=100%>
% if ($ShowHeader) {
<& /RTx/Statistics/Elements/CollectionAsTable/Header, 
    Format => \@Format, 
    FormatString => $Format,
    AllowSorting => $AllowSorting, 
    Order => $Order, 
    Query => undef,
    Rows => $Rows,
    Page => $Page,
    OrderBy => $OrderBy , 
    BaseURL => $BaseURL,
    maxitems => $maxitems &> 
% }
% my $line = 1;
% for my $d (0..$#days) {
%     my $x = 1;
%     $values{Statistics_Date} = $days[$d];
%# NOTE Show all status values???
%     $values{Statistics_Created_Count} = $counts[$d]{new};
%     $values{Statistics_Resolved_Count} = $counts[$d]{resolved};
%     $values{Statistics_Deleted_Count} = $counts[$d]{deleted};
<&   /RTx/Statistics/Elements/CollectionAsTable/Row, Format => \@Format, i => $line, record => $record, maxitems => $maxitems &>
%    $line++;
% }
% $values {Statistics_Date} = "Totals";
% $values {Statistics_Created_Count} = $Totals{new};
% $values {Statistics_Resolved_Count} = $Totals{resolved};
% $values {Statistics_Deleted_Count} = $Totals{deleted};
<&   /RTx/Statistics/Elements/CollectionAsTable/Row, Format => \@BoldFormat, i => $line, record => $record, maxitems => $maxitems &>
</table>
</&>

<hr>

<BR />
<BR />

<%perl>
my $url = 'Elements/Chart?&x_labels=';
for (0..$#days) {
  $url .= $days[$_] . "," ;
}
chop $url;
$url .= "&";

my @things = qw(new resolved deleted);
for my $th (0..$#things) {
  $url .= "data".(1+$th)."=".(join ",", map { $counts[$_]{$things[$th]} } (0..6))."&";
}
chop $url;
$url .= '&set_legend=Created,Resolved,Deleted';
</%perl>

<& /RTx/Statistics/Elements/GraphBox, GraphURL => $url &>

% Statistics::DebugLog("queue name=" . $QueueObj->Id() . "\n");

<& /RTx/Statistics/Elements/ControlsAsTable/ControlBox, 
         Title => "Change Queue", 
         ShowSingleQueue => 1, Queue => $QueueObj->Id()
 &>

</form>

% Statistics::DebugInit( $m );

<%ARGS>
$Queue => $Statistics::DayOfWeekQueue

$AllowSorting => undef
$Order => undef
$OrderBy => undef
$ShowNavigation => 1
$ShowHeader => 1
$Rows => 50
$Page => 1
$BaseURL => undef
</%ARGS>

<%INIT>
use GD::Graph;
use RTx::Statistics;
my @days = qw(Sun Mon Tue Wed Thu Fri Sat);
my $n = 0;
my @data = ([]);
my @msgs;
my @counts;
my %Totals = (
  resolved => 0,
  deleted => 0,
  new => 0
);
my $QueryString = "Queue=$Queue";
my $maxitems = 4;
my %record;
my %values;
my $record = \%record;

$record{values} = \%values;

my $Format = qq{ Statistics_Date, 
                 '__Statistics_Created_Count__/STYLE:text-align:right;', 
                 '__Statistics_Resolved_Count__/STYLE:text-align:right;', 
		 '__Statistics_Deleted_Count__/STYLE:text-align:right;' };
my $BoldFormat = qq{ '<B>__Statistics_Date__</B>', 
                     '<B>__Statistics_Created_Count__</B>/STYLE:text-align:right;',
                     '<B>__Statistics_Resolved_Count__</B>/STYLE:text-align:right;',
		     '<B>__Statistics_Deleted_Count__</B>/STYLE:text-align:right;' };
my (@Format) = $m->comp('/RTx/Statistics/Elements/CollectionAsTable/ParseFormat', Format => $Format);
my (@BoldFormat) = $m->comp('/RTx/Statistics/Elements/CollectionAsTable/ParseFormat', Format => $BoldFormat);

my $QueueObj = new RT::Queue($session{'CurrentUser'});
$QueueObj->Load($Queue);
$RT::Logger->warning("Loaded queue $Queue, name=". $QueueObj->Name());

my $tix = new RT::Tickets($session{'CurrentUser'});
$tix->LimitQueue (VALUE => $Queue);
$tix->UnLimit;
if ($tix->Count) {
    # Initialize the counters to zero, so that all the cells show up
    foreach my $day (0.. at days) {
        $counts[$day]{resolved} = 0;
        $counts[$day]{deleted} = 0;
        $counts[$day]{new} = 0;
    }
    while (my $t = $tix->RT::SearchBuilder::Next) {  # BLOODY HACK
        if($t->Status eq "resolved") {
          $counts[(localtime($t->ResolvedObj->Unix))[6]]{resolved}++;
	  $Totals{resolved}++;
	}
	if($t->Status eq "deleted") {
	  $counts[(localtime($t->LastUpdatedObj->Unix))[6]]{deleted}++;
	  $Totals{deleted}++;
        }
        $counts[(localtime($t->CreatedObj->Unix))[6]]{new}++;
	$Totals{new}++;
    }
}
</%INIT>



More information about the freeside-commits mailing list