<& /Elements/Header, Title => 'Admin/Keywords' &>
<& /Admin/Elements/Tabs, current_tab => 'Admin/Keywords/' &>

<& /Elements/ListActions, actions => \@Actions &>

<& /Elements/TitleBoxStart, title => 'Keywords' &>
<a href="<%$RT::WebPath%>/Admin/Keywords/?RootId=<%$Root->Parent%>"><%$Root->Path%></a>
<UL>
<FORM METHOD=POST ACTION="index.html">
<input type=hidden name=RootId value="<%$RootId%>">


% while (my $key = $Keywords->Next) {
    <LI><%$key->id%>:
% if ($Edit == $key->id) {
      <input name="KeyName-<%$key->id%>" value="<%$key->Name%>">
	  <input type=submit value="Update">
	    <input type=submit name="Disable-<%$key->id%>" value="Disable">
% } else {
	      <A HREF="?RootId=<%$key->id%>"><%$key->Name%></A>
% if ($key->Disabled) {
	<input type=submit name="Enable-<%$key->id%>" value="Enable">
% } else {
      [<a href="?Edit=<%$key->id%>&RootId=<%$Root->Id%>">edit</a>]
% }
% }


	  </LI>
% }
	  <LI>
	    <input name="KeyName-New"> <input type=submit value="Add">
</UL>
<BR>
	  <input type="checkbox" name="ShowDisabled"> Include disabled items in listing.
	<input type=submit value="Go!">

</FORM>

<& /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>
