summaryrefslogtreecommitdiff
path: root/rt/webrt/Admin/Keywords
diff options
context:
space:
mode:
Diffstat (limited to 'rt/webrt/Admin/Keywords')
-rw-r--r--rt/webrt/Admin/Keywords/Modify.html96
-rw-r--r--rt/webrt/Admin/Keywords/index.html110
2 files changed, 206 insertions, 0 deletions
diff --git a/rt/webrt/Admin/Keywords/Modify.html b/rt/webrt/Admin/Keywords/Modify.html
new file mode 100644
index 000000000..bb7e2db8c
--- /dev/null
+++ b/rt/webrt/Admin/Keywords/Modify.html
@@ -0,0 +1,96 @@
+<& /Admin/Elements/Header, Title => $title &>
+<& /Admin/Elements/Tabs &>
+
+
+<& /Elements/TitleBoxStart, title => %$title &>
+<FORM METHOD="POST" ACTION="<%$RT::WebPath%>/Admin/Keywords/Modify.html">
+<INPUT TYPE="hidden" NAME="id" VALUE="<% $id %>">
+Keyword <INPUT NAME="Name" VALUE="<% $Keyword->Name %>"><BR>
+
+Parent <SELECT NAME="Parent">
+ <OPTION VALUE=""<% defined($Keyword->Parent) ? '' : ' SELECTED' %>>-</OPTION>
+%while ( $parent = $parents->Next ) {
+ <OPTION VALUE="<% $parent->id %>"<% defined($Keyword->Parent) && $parent->id == $Keyword->Parent ? ' SELECTED' : '' %>><% $parent->Name %></OPTION>
+%}
+</SELECT>
+
+
+New children of this keyword. one per line.
+<TEXTAREA NAME="Kids" ROWS=4><% $kidstring %></TEXTAREA>
+<BR>
+
+<& /Elements/Submit, Label => $submit &>
+</FORM>
+<& /Elements/TitleBoxEnd &>
+
+<%INIT>
+
+my $Keyword = new RT::Keyword($session{CurrentUser});
+my ($title, $submit, %kids, $kid);
+
+if ( $Create ) {
+ $title = "Create a new Keyword";
+ $submit = "Create";
+ $id = "new";
+ %kids = ();
+ $Parent = ''; #silence
+}
+else {
+ if ( $id eq 'new' ) {
+ $id = $Keyword->Create( Name => $Name, Parent => $Parent )
+ or Abort("can't create keyword Name=>$Name, Parent=>$Parent");
+ } else {
+ $Keyword->Load($id) || Abort("Can't load keyword id $id");
+
+ #foreach my $field ( grep eval "defined(\$$_)", qw( Name Parent )) {
+ # eval "\$Keyword->Set(\$field=>\$$field); #sigh
+ #}
+
+ $Keyword->SetName($Name) if defined($Name);
+ $Keyword->SetParent($Parent) if defined($Parent);
+ }
+
+ $title = "Modify the Keyword <B>". $Keyword->Name. "</B>";
+ $submit = "Modify";
+}
+
+
+my $kids = $Keyword->Children(new RT::Keywords($session{CurrentUser}));
+
+$kids{$kid->Name} = $kid while $kid = $kids->Next;
+
+if ( defined($Kids) ) {
+ my %newkids;
+
+ %newkids = map { $_=>1 } split(/\r/, $Kids);
+
+ }
+ foreach ( grep { ! defined($newkids{$_}) } keys %kids ) {
+ $kids{$_}->Delete;
+ delete $kids{$_};
+ }
+ foreach ( grep { ! defined($kids{$_}) } keys %newkids ) {
+ $kids{$_} = new RT::Keyword($session{CurrentUser});
+ $kids{$_}->Create( Name => $_, Parent => $id )
+ or Abort("can't create keyword Name=>$_, Parent=>$id");
+ }
+
+}
+
+
+my $parent;
+my $parents = new RT::Keywords($session{CurrentUser});
+$parents->UnLimit;
+
+my $kidstring = join("\r", keys %kids);
+
+</%INIT>
+
+<%ARGS>
+$id => undef
+$Create => undef
+$Name => undef
+$Parent => undef
+$Kids => undef
+
+</%ARGS>
diff --git a/rt/webrt/Admin/Keywords/index.html b/rt/webrt/Admin/Keywords/index.html
new file mode 100644
index 000000000..12814ec03
--- /dev/null
+++ b/rt/webrt/Admin/Keywords/index.html
@@ -0,0 +1,110 @@
+<& /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>