The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
%# One way to stop a runaway horse is to bet on him.
<& /Foundry/Elements/Header,
    Title => $QueueObj->Name,
    ($action ? (Action => $action) : ()),
    ($method ? (Method => $method) : ()),
&>
<input type="hidden" name="Queue" value="<% $ARGS{Queue} %>">

<br>
<table width="97%" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr> 
    <td><& /Foundry/Elements/Tabs, Text => $m->base_comp->attr('Tab2'), Queue => $ARGS{Queue}, Skips => \%Skips &></td>
  </tr>
  <tr> 
    <td valign="top"> 
      <table border="0" cellspacing="0" cellpadding="4" class="poptable" width="100%">
        <tr> 
          <td valign="top"> 
% $m->call_next(%ARGS, QueueObj => $QueueObj) unless $r->uri =~ /Admin/ and !$IsMember;
	  </td>
	</tr>
      </table>
<br>

<& /Foundry/Elements/Footer &>
<%INIT>
my $QueueObj = RT::Queue->new($session{'CurrentUser'}); 
$QueueObj->Load($ARGS{Queue}||=$session{LastQueue}||=1);
$ARGS{Queue} = $session{LastQueue} = $QueueObj->Id || $session{LastQueue};
my $s = "?Queue=$ARGS{Queue}";

@RT::Tabs = (
    'Summary'		=> '/Foundry/Project/' . $s,
#   'News'		=> '/Foundry/Project/News/' . $s,
    'Tracker'		=> '/Foundry/Project/Tracker/' . $s,
    'Forums'		=> '/Foundry/Project/Forum/' . $s,
    'Wiki'		=> '/Foundry/Project/Wiki/' . $s,
    'Version Control'	=> '/Foundry/Project/Source/' . $s,
    'Downloads'		=> '/Foundry/Project/Download/' . $s,
);

my $IsMember = $QueueObj->HasWatcher($session{CurrentUser}->UserObj)
    || $session{CurrentUser}->UserObj->HasRight( Right => 'SuperUser', Object => $QueueObj );

my %Skips;
if ($IsMember) {
    push @RT::Tabs, ( 'Project Admin' => '/Foundry/Project/Admin/' . $s );
}
elsif ( $RT::SkipEmptyTabs ) {
    my $UnixName = $QueueObj->OriginObj->CustomFieldValue('UnixName') or return;
    # XXX - refactor this to somewhere else
    if (-e "$RT::VarPath/Foundry/sympa") {
	$Skips{'Forums'}++ unless glob("$RT::VarPath/Foundry/sympa/expl/$UnixName-*");
    }
    if (-e "$RT::VarPath/Foundry/kwiki") {
	require File::Compare;
	$Skips{'Wiki'}++ unless File::Compare::compare(
	    "$RT::VarPath/Foundry/kwiki/.default/database/HomePage",
	    "$RT::VarPath/Foundry/kwiki/$UnixName/database/HomePage",
	);
    }
    if (-e "$RT::VarPath/Foundry/svn") {
	if (open my $fh, "/usr/depot/rt3/var/Foundry/svn/$UnixName/db/revisions") {
	    local $/ = \32768;
	    my $rev = <$fh>;
	    close $fh;
	    $Skips{'Version Control'}++ unless index($rev, '(revision 1 2)') > -1;
	}
    }
    my $file = RT::Ticket->new($session{'CurrentUser'});
    $file->LoadByCols(
	Queue	=> $QueueObj->Id,
	Type	=> 'release',
	Status	=> 'resolved',
    );
    $Skips{'Downloads'}++ unless $file->Id;
}

my $action = $m->base_comp->attr('Action');
my $method = $m->base_comp->attr('Method');
</%INIT>
<%ATTR>
Action	=> undef
Method	=> undef
</%ATTR>