integrate RTx::Statistics package, part of merging spiritone RT changes (#1661)
[freeside.git] / rt / html / RTx / Statistics / UserTest / index.html
1 <& /Elements/Header, Title => 'Time to Resolve in Queue' &>
2 <& /RTx/Statistics/Elements/Tabs,  Title => 'Time to Resolve, by ticket in Queue:' . $QueueObj->Name() &>
3
4
5 <form method="POST">
6
7 See Queue:<BR>
8 <& /Elements/SelectQueue, Name=>"queue", Default => "$queue" &>
9 <BR>
10 <INPUT TYPE="submit" VALUE="Go!"</INPUT>
11 </form>
12
13 <BR>
14 % my $url = 'Elements/Chart?x_labels=';
15 % my $i;
16 % $url .= join ",", (map {(int($_/2) == $_/2 && (++$i)%2) ? $_/2 : ""} grep {$counts[$_]} 0..($#counts-1)), "longer";
17 % $url .= '&';
18 % $url .= "marker_size=1&";
19 % $url .= "data1=".(join ",", map { $_ || () } @counts)."&";
20 % chop $url;
21 <IMG SRC="<% $url %>">
22
23 <BR>
24
25 <%ARGS>
26 $queue => $Statistics::TimeToResolveGraphQueue;
27 </%ARGS>
28
29 <%INIT>
30 use RTx::Statistics;
31
32 my @days = qw(Sun Mon Tue Wed Thu Fri Sat);
33 my $n = 0;
34 my @data = ([]);
35 my @msgs;
36 my @counts;
37
38 my $QueueObj = new RT::Queue($session{'CurrentUser'});
39 $QueueObj->Load($queue);
40
41 my $tix = new RT::Tickets($session{'CurrentUser'});
42 $tix->LimitQueue (VALUE => $queue) if $queue;
43 $tix->LimitStatus(VALUE => "resolved");
44 $tix->UnLimit;
45 if ($tix->Count) {
46     while (my $t = $tix->RT::SearchBuilder::Next) {  # BLOODY HACK
47         my $when = $t->ResolvedObj->Unix - $t->CreatedObj->Unix;
48         next unless $when > 0; # Doubly bloody hack
49         my $max = (60*60*24*2) / 1800;
50         my $x = int($when / 1800);
51         $counts[$x > $max ? $max : $x]++;
52     }
53 }
54 </%INIT>