%# BEGIN BPS TAGGED BLOCK {{{
%# 
%# COPYRIGHT:
%#  
%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
%#                                          <jesse@bestpractical.com>
%# 
%# (Except where explicitly superseded by other copyright notices)
%# 
%# 
%# LICENSE:
%# 
%# This work is made available to you under the terms of Version 2 of
%# the GNU General Public License. A copy of that license should have
%# been provided with this software, but in any event can be snarfed
%# from www.gnu.org.
%# 
%# This work is distributed in the hope that it will be useful, but
%# WITHOUT ANY WARRANTY; without even the implied warranty of
%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
%# General Public License for more details.
%# 
%# You should have received a copy of the GNU General Public License
%# along with this program; if not, write to the Free Software
%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%# 
%# 
%# CONTRIBUTION SUBMISSION POLICY:
%# 
%# (The following paragraph is not intended to limit the rights granted
%# to you to modify and distribute this software under the terms of
%# the GNU General Public License and is only of importance to you if
%# you choose to contribute your changes and enhancements to the
%# community by submitting them to Best Practical Solutions, LLC.)
%# 
%# By intentionally submitting any modifications, corrections or
%# derivatives to this work, or any other work intended for use with
%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
%# you are the copyright holder for those contributions and you grant
%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
%# royalty-free, perpetual, license to use, copy, create derivative
%# works based on those contributions, and sublicense and distribute
%# those contributions and any derivatives thereof.
%# 
%# END BPS TAGGED BLOCK }}}
<table border="0" cellspacing="0" cellpadding="1" width="100%">
<tr><th class="collection-as-table"><&|/l&>Queue</&></th>
% for my $condition (@$conditions) {
<th class="collection-as-table"><% $condition->{name} %></th>
% }
</tr>
% my $i;
% for my $queue (@queues) {
%   $i++;
%   my $queue_cond = "Queue = '$queue->{Name}' AND ";
%   my $all_q = $queue_cond . "(Status = 'open' OR Status = 'new' OR Status = 'stalled')";
<tr class="<% $i%2 ? 'oddline' : 'evenline'%>" >
<td><a href="<% $RT::WebPath%>/Search/Results.html?Query=<%$all_q%>" title="<% $queue->{Description} %>"><%$queue->{Name}%></a></td>
%   for my $condition (@$conditions) {
%       $Tickets->FromSQL($queue_cond.$condition->{cond}), 
<td align="right"><a href="<% $RT::WebPath%>/Search/Results.html?Query=<%$queue_cond.$condition->{cond}%>"><% $Tickets->Count %></a></td>
%   }
</tr>
% }
<tr><th class="collection-as-table"><&|/l&>Search</&></th>
% for my $condition (@$conditions) {
<th class="collection-as-table"><% $condition->{name} %></th>
% }
</tr>
% my $j;
% for my $portlet (@{$portlets->{summary}}) {
% my $OwnSearch = _list($portlet); 
% my $search;
% my $user = $session{'CurrentUser'}->UserObj;
% my $SearchArg;
% my $customize;
% if ($OwnSearch) {
%    my ($container_object, $search_id ) = _parse_saved_search ($OwnSearch);
%    $search = $container_object->Attributes->WithId($search_id);
%    unless ($search->Id && ref ($SearchArg = $search->Content) eq 'HASH') {
%        $m->out ("Saved Search $OwnSearch not found");
%        return;
%    }
%    $customize = $RT::WebPath.'/Search/Build.html?'.
%        $m->comp('/Elements/QueryString',
%                 LoadSavedSearch => $OwnSearch);
% my $rows = $user->Preferences('SummaryRows', $RT::DefaultSummaryRows);
% $SearchArg->{'Query'} =~ s/__CurrentUser__/$session{'CurrentUser'}->Id/ge;
% $SearchArg->{'Format'} =~ s/__WebPath__/$RT::WebPath/g;
% $SearchArg->{'Format'} =~ s/__loc\(["']?(\w+)["']?\)__/loc("$1")/ge;
% my $QueryString = '?' . $m->comp('/Elements/QueryString',
%                                  %$SearchArg);
%            #map { $_ => $SearchArg->{$_} } qw(Query Order OrderBy));

% my $search_cond = "$SearchArg->{'Query'} AND" ;
% my $all_q = $search_cond . "(Status = 'open' OR Status = 'new' OR Status = 'stalled')";
% $j++;
<tr class="<% $j%2 ? 'oddline' : 'evenline'%>" >
<td><a href="<% $RT::WebPath%>/Search/Results.html?Query=<% $all_q %>"><% loc($search->Description, $rows) %></
a></td>
% for my $condition (@$conditions){
%    my $Tickets = RT::Tickets->new($session{'CurrentUser'});
%    $Tickets->FromSQL( $search_cond.$condition->{cond} );
     <td align="right"><a href="<% $RT::WebPath%>/Search/Results.html?Query=<%$search_cond.$condition->{cond}%>"><% $Tickets->Count %></a></td>
%    }
</tr>
% }
% }
</table>


<%INIT>
my @queues;

if ($cache && exists $session{$cache}) {
    @queues = @{$session{$cache}};
}
else {
    my $Queues = RT::Queues->new($session{'CurrentUser'});
    $Queues->UnLimit();
    @queues = map {
	{ Name => $_->Name, Description => $_->Description,
	  id => $_->Id } }
	grep $queue_filter->($_), @{$Queues->ItemsArrayRef};

    $session{$cache} = \@queues if $cache;
}

my $Tickets = RT::Tickets->new($session{'CurrentUser'});

my %allowed_components = map {$_ => 1} @{$RT::HomepageComponents};

unless (exists $session{'my_rt_portlets'}) {
    my ($d_portlets) = RT::System->new($session{'CurrentUser'})->Attributes->Named('HomepageSettings');
    my $user = $session{'CurrentUser'}->UserObj;
    $session{'my_rt_portlets'} = $user->Preferences('HomepageSettings', $d_portlets->Content);
}

my $portlets = $session{'my_rt_portlets'};

sub _list {
    my $entry = shift;
    my $type = $entry->{type};
    if ($type eq 'saved') {
       return (SavedSearch => $entry->{name}) ;
       }
}
</%INIT>
<%ARGS>
$cache => undef
$queue_filter => undef
$conditions => ()
</%ARGS>
