RTx-Statistics in 2.1 / 3.8
[freeside.git] / rt / share / html / RTx / Statistics / UserTest / index.html
diff --git a/rt/share/html/RTx/Statistics/UserTest/index.html b/rt/share/html/RTx/Statistics/UserTest/index.html
new file mode 100755 (executable)
index 0000000..7bc25da
--- /dev/null
@@ -0,0 +1,54 @@
+<& /Elements/Header, Title => 'Time to Resolve in Queue' &>
+<& /RTx/Statistics/Elements/Tabs,  Title => 'Time to Resolve, by ticket in Queue:' . $QueueObj->Name() &>
+
+
+<form method="POST">
+
+See Queue:<BR>
+<& /Elements/SelectQueue, Name=>"queue", Default => "$queue" &>
+<BR>
+<INPUT TYPE="submit" VALUE="Go!"</INPUT>
+</form>
+
+<BR>
+% my $url = 'Elements/Chart?x_labels=';
+% my $i;
+% $url .= join ",", (map {(int($_/2) == $_/2 && (++$i)%2) ? $_/2 : ""} grep {$counts[$_]} 0..($#counts-1)), "longer";
+% $url .= '&';
+% $url .= "marker_size=1&";
+% $url .= "data1=".(join ",", map { $_ || () } @counts)."&";
+% chop $url;
+<IMG SRC="<% $url %>">
+
+<BR>
+
+<%ARGS>
+$queue => $Statistics::TimeToResolveGraphQueue;
+</%ARGS>
+
+<%INIT>
+use RTx::Statistics;
+
+my @days = qw(Sun Mon Tue Wed Thu Fri Sat);
+my $n = 0;
+my @data = ([]);
+my @msgs;
+my @counts;
+
+my $QueueObj = new RT::Queue($session{'CurrentUser'});
+$QueueObj->Load($queue);
+
+my $tix = new RT::Tickets($session{'CurrentUser'});
+$tix->LimitQueue (VALUE => $queue) if $queue;
+$tix->LimitStatus(VALUE => "resolved");
+$tix->UnLimit;
+if ($tix->Count) {
+    while (my $t = $tix->RT::SearchBuilder::Next) {  # BLOODY HACK
+        my $when = $t->ResolvedObj->Unix - $t->CreatedObj->Unix;
+        next unless $when > 0; # Doubly bloody hack
+        my $max = (60*60*24*2) / 1800;
+        my $x = int($when / 1800);
+        $counts[$x > $max ? $max : $x]++;
+    }
+}
+</%INIT>