<& /Elements/Header, title => 'Statistics' &>

Number of Tickets <%ucfirst $status%> Per Queue Per Day

% for (sort keys %queues) { % # Propagate Queues argument % delete $queues{$_}, next if not $_; % } % my @legend; % for (sort keys %queues) { % push @legend, $_; % my $Queueobj = new RT::Queue($session{'CurrentUser'}); % $Queueobj->Load($_); % next if !$Queueobj->CurrentUserHasRight('SeeQueue'); % } % for my $d (0..$#dates) { % my $x = 1; % } %}
Dates <% $_ %>
<% $days[(localtime($dates[$d]->Unix))[6]]." ". (localtime($dates[$d]->Unix))[3]%> % for (sort keys %queues) { % my $Queueobj = new RT::Queue($session{'CurrentUser'}); % $Queueobj->Load($_); % next if !$Queueobj->CurrentUserHasRight('SeeQueue'); % my $q = $_; % my $tix = new RT::Tickets($session{'CurrentUser'}); % if ($status eq "resolved") { % $tix->LimitStatus(VALUE => $status); % $tix->LimitResolved(VALUE => $dates[$d]->ISO, OPERATOR => ">="); % if ($dates[$d+1]) { % $tix->LimitResolved(VALUE => $dates[$d+1]->ISO, OPERATOR => "<="); % } % } elsif ($status eq "created") { % $tix->LimitCreated(VALUE => $dates[$d]->ISO, OPERATOR => ">="); % if ($dates[$d+1]) { % $tix->LimitCreated(VALUE => $dates[$d+1]->ISO, OPERATOR => "<="); % } % } elsif ($status eq "killed") { % $tix->LimitStatus(VALUE => "dead"); % $tix->LimitLastUpdated(VALUE => $dates[$d]->ISO, OPERATOR => ">="); % if ($dates[$d+1]) { % $tix->LimitLastUpdated(VALUE => $dates[$d+1]->ISO, OPERATOR => "<="); % } % } % $tix->LimitQueue (VALUE => $q); <% $tix->Count %> % $data[$x++][$d] = $tix->Count;
Show:
Add Queue:

See weekends: name="weekends">
Days to see:

% my $url = 'https://rt.oucs.ox.ac.uk/chart?type=lines&x_labels=['; % $url .= join ",", @{ shift @data }; % $url .= ']&'; % $url .= 'set_legend=['.(join ",", @legend)."]&"; % for (0..$#data) { % $url .= "data".(1+$_)."=[".(join ",", @{$data[$_]})."]&"; % } % chop $url; <%ARGS> $status => "resolved" $max => 5 @queues => qw(advisory maillist registration micros) $weekends => 0 <%INIT> my @days = qw(Sun Mon Tue Wed Thu Fri Sat); my $n = 0; my @data = ([]); my @dates; my @msgs; $max--; my %queues = map { $_ => 1; } (@queues); for (grep {/delqueue/} keys %ARGS) { /delqueue(.*)/; delete $queues{$1}; @queues = sort keys %queues; } my $queue = new RT::Queues($session{CurrentUser}); $queue->UnLimit; until ($#dates == $max) { my $date = new RT::Date($session{CurrentUser}); $date->Set(Value=>time - $n, Format => 'unix'); $date->SetToMidnight; my $when = $days[(localtime($date->SetToMidnight))[6]]; $n+= 60*60*24; next if !$weekends and ( $when eq "Sat" or $when eq "Sun" ); unshift @dates, $date; unshift @{ $data[0] }, $days[(localtime($date->Unix))[6]]."%20". (localtime($date->Unix))[3]; }