<& /Elements/Header, Title => loc('RT Statistics: Calls per queue per day') &> <& /Statistics/Elements/Tabs, Title => loc('RT Statistics: Calls 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; % for (sort keys %queues) { % my $Queueobj = new RT::Queue($session{'CurrentUser'}); % $Queueobj->Load($_); % next if !$Queueobj->CurrentUserHasRight('SeeQueue'); % my $q = $_; % } % }
<&|/l&>Dates <% $_ %>
<% Statistics::FormatDate($dateformat, $dates[$d]) %> % 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 "deleted") { % $tix->LimitStatus(VALUE => $status); % $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;
<&|/l&>Show: <&|/l&>Add Queue: <&|/l&>Days to see: <&|/l&>See weekends: name="weekends">

<%perl> my $url = 'Elements/Chart?x_labels='; #$url .= join ",", @{ shift @data } . "&"; for (0..$max) { $url .= $data[0][$_] . ","; } chop $url; $url .= "&"; shift @data; $url .= 'set_legend='.(join ",", @legend)."&"; for (0..$#data) { $url .= "data".(1+$_)."=".(join ",", @{$data[$_]})."&"; } chop $url; <%ARGS> $status => $Statistics::MultiQueueStatus $max => $Statistics::MultiQueueMaxRows @queues => @Statistics::MultiQueueQueueList $weekends => $Statistics::MultiQueueWeekends $dateformat => $Statistics::MultiQueueDateFormat <%INIT> use Statistics; 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'); Statistics::RTDateSetToLocalMidnight($date); $n+= 60*60*24; next if !$weekends and Statistics::RTDateIsWeekend($date); unshift @dates, $date; unshift @{ $data[0] }, Statistics::FormatDate($Statistics::MultiQueueLabelDateFormat, $date); }