The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
%# One nice thing about egotists: they don't talk about other people.

<& /Edit/Elements/104Header,
    Focus => 'NewCategory',
    Buttons => [
	Add => "index.html?Action-Add=1",
	Save => "javascript:document.getElementById('mainform').submit()",
	Delete => 1,
	Copy => '',
	Search => '',
    ],
    Method => 'POST',
&>

<input type="hidden" name="Category" value="<% $Category %>">
<table width="97%" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr> 
    <td><& /Edit/Elements/Tab, Text => 'Queues' &></td>
  </tr>
  <tr> 
    <td valign="top"> 
      <table border="0" cellspacing="0" cellpadding="4" class="poptable" width="100%">
        <tr> 
          <td valign="top"> 
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr> 
		<td><& /Edit/Elements/Tabs, Map => $ARGS{Map}, URL => '/Edit/Queues/Category/', Skip => '/Edit/Queues/Basic/' &></td>
              </tr>
              <tr> 
                <td class="tableEmboss">
                  <table width="100%" border="0" cellspacing="3" cellpadding="0">
                    <tr> 
                      <td><& Top, Item => $Category &></td>
                    </tr>
                    <tr> 
                      <td>
			<& List, Delete => 1, Item => $Category, List => $List, Categories => \%Categories, Begin => $Begin, ARGS => \%ARGS &>
                      </td>
                    </tr>
                  </table>
                </td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<%INIT>
my $Queues = RT::Queues->new($session{'CurrentUser'});
$Queues->UnLimit;

my %Categories = map { $_ => 0 } @{ $Queues->Categories };
$Categories{$_} = 0 for split(/\n/, $RT::SystemUser->Attribute('Categories'));

if ($Action eq 'Delete') {
    delete $Categories{$_} for @ListDelete;
    $Category = $NewCategory = '';
    $Begin = 0;
}

while (my $queue = $Queues->Next) {
    my $descr = $queue->Description;
    if ($Action eq 'Save' and length($NewCategory) and $descr eq $Category) {
	$queue->SetDescription($NewCategory);
	$descr = $NewCategory;
    }
    $Categories{$descr}++ if length $descr;
}

if ($Action eq 'Add') {
    $Category = '';
    $Begin = 0; 
}

if (length $NewCategory) {
    delete $Categories{$Category} if length($Category);
    $Categories{$Category = $NewCategory} = 0;
}

my $List = [ sort keys %Categories ];
$Queues->SetCategories( $List );
</%INIT>
<%ARGS>
$Category	=> ''
$NewCategory	=> ''
$Begin		=> 0
$Action		=> ''
@ListDelete	=> ()
</%ARGS>