1 <FORM METHOD="get" ACTION="<%$RT::WebPath%>/Admin/Keywords/Modify.html">
4 <INPUT TYPE="hidden" NAME="id" VALUE="<% $id %>">
5 Keyword <INPUT NAME="Name" VALUE="<% $Keyword->Name %>"><BR>
7 Parent <SELECT NAME="Parent">
8 <OPTION VALUE=""<% defined($Keyword->Parent) ? '' : ' SELECTED' %>>-</OPTION>
9 %while ( $parent = $parents->Next ) {
10 <OPTION VALUE="<% $parent->id %>"<% defined($Keyword->Parent) && $parent->id == $Keyword->Parent ? ' SELECTED' : '' %>><% $parent->Name %></OPTION>
15 Kids <FONT SIZE="-2">(separate by
16 <INPUT TYPE="radio" NAME="delim" VALUE="n"<% $delim eq 'n' ? ' CHECKED' : '' %>>
18 <INPUT TYPE="radio" NAME="delim" VALUE="s"<% $delim eq 's' ? ' CHECKED' : '' %>>
19 whitespace)</FONT><BR>
21 <TEXTAREA NAME="Kids" ROWS=4><% $kidstring %></TEXTAREA>
24 <& /Elements/Submit, Label => $submit &>
29 my $Keyword = new RT::Keyword($session{CurrentUser});
30 my ($title, $submit, %kids, $kid);
33 $title = "Create a new Keyword";
37 $Parent = ''; #silence
38 } elsif ( $id eq 'new' ) {
39 $id = $Keyword->Create( Name => $Name, Parent => $Parent )
40 or Abort("can't create keyword Name=>$Name, Parent=>$Parent");
42 $Keyword->Load($id) || Abort("Can't load keyword id $id");
43 #foreach my $field ( grep eval "defined(\$$_)", qw( Name Parent )) {
44 # eval "\$Keyword->Set(\$field=>\$$field); #sigh
46 $Keyword->SetName($Name) if defined($Name);
47 $Keyword->SetParent($Parent) if defined($Parent);
50 $title = "Modify the Keyword <B>". $Keyword->Name. "</B>";
53 my $kids = new RT::Keywords($session{CurrentUser});
54 $kids->Limit( FIELD => 'Parent', VALUE => $id, OPERATOR => '=' );
55 $kids{$kid->Name} = $kid while $kid = $kids->Next;
57 if ( defined($Kids) ) {
59 if ( $delim eq 'n' ) {
60 %newkids = map { $_=>1 } split(/\n/, $Kids);
61 } elsif ( $delim eq 's' ) {
62 %newkids = map { $_=>1 } split(' ', $Kids);
64 Abort("'$delim' isn't a valid keyword delimiter.");
66 foreach ( grep { ! defined($newkids{$_}) } keys %kids ) {
70 foreach ( grep { ! defined($kids{$_}) } keys %newkids ) {
71 $kids{$_} = new RT::Keyword($session{CurrentUser});
72 $kids{$_}->Create( Name => $_, Parent => $id )
73 or Abort("can't create keyword Name=>$_, Parent=>$id");
80 my $parents = new RT::Keywords($session{CurrentUser});
83 $delim = ( grep /\s/, keys %kids ) ? 'n' : 's';
84 my $kidstring = join("\n", keys %kids);