--- /dev/null
+<& /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>
+% 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>