& /Elements/Header, Title => 'Admin/Keywords' &>
<& /Admin/Elements/Tabs, current_tab => 'Admin/Keywords/' &>
<& /Elements/ListActions, actions => \@Actions &>
<& /Elements/TitleBoxStart, title => 'Keywords' &>
<%$Root->Path%>
<& /Elements/TitleBoxEnd &>
<%INIT>
my (@Actions);
  
if ($ARGS{'KeyName-New'}) {
    my $NewKey = new RT::Keyword($session{'CurrentUser'});
    my ($val, $msg) = $NewKey->Create( Parent => $RootId, Name => $ARGS{'KeyName-New'});
    push (@Actions, $msg);
}
my $arg;
foreach $arg (keys %ARGS) {
    if ($arg =~ /^Disable-(\d*)$/) {
	my $id = $1;
	my $keyword = new RT::Keyword($session{'CurrentUser'});
	$keyword->Load($id);
	my ($val, $msg) = $keyword->SetDisabled(1);
	push (@Actions, $msg);
    }	
    elsif ($arg =~ /^Enable-(\d*)$/) {
	my $id = $1;
	my $keyword = new RT::Keyword($session{'CurrentUser'});
	$keyword->Load($id);
	my ($val, $msg) = $keyword->SetDisabled(0);
	push (@Actions, $msg);
    }
    elsif ($arg =~ /^KeyName-(\d*)$/) {
	my $id = $1;
	my $keyword = new RT::Keyword ($session{'CurrentUser'});
	$keyword->Load($id);
	if ($keyword->Name() ne $ARGS{"$arg"}) {
	    my ($val, $msg) = $keyword->SetName($ARGS{"$arg"});
	    push (@Actions, $msg);
	}	
	if (($ARGS{"KeyParent-$id"}) && 
	    ($keyword->Parent ne $ARGS{"KeyParent-$id"})) {
	    my ($val, $msg) = $keyword->SetParent($ARGS{"KeyParent-$id"});
	    push (@Actions, $msg);
	}	
    }	
}
my $Root = new RT::Keyword($session{'CurrentUser'});
my $Keywords;
#If we have a root load it.
if ($RootId != 0) {
    $Root->Load($RootId);
    $Keywords = $Root->Children();
    
}
else {
    $Keywords = new RT::Keywords($session{'CurrentUser'});
    $Keywords->LimitToParent(0);
}
if ($ShowDisabled) {
    $Keywords->{'find_disabled_rows'} = 1;
}
%INIT>
<%ARGS>
$RootId => 0
$Edit => undef
$ShowDisabled => 0
%ARGS>