& /Elements/Header, Title => 'Modify people related to queue ' . $QueueObj->Name &> <& /Admin/Elements/QueueTabs, id => $id &> <& /Elements/ListActions, actions => \@results &>
<%INIT> my ($field, @results, $User, $Users, $watcher, $key, $msg); # {{{ Load the queue #If we get handed two ids, mason will make them an array. bleck. # We want teh first one. Just because there's no other sensible way # to deal my $QueueObj = new RT::Queue($session{'CurrentUser'}); $QueueObj->Load($id) || Abort("Couldn't load queue '$id'"); # }}} # {{{ Delete deletable watchers foreach $key (keys %ARGS) { if (($key =~ /^DelWatcher(\d*)$/) and ($ARGS{$key})) { $RT::Logger->debug("Deleting watcher $1\n"); my ($code, $msg) = $QueueObj->DeleteWatcher($1); push @results, $msg; } } # }}} # {{{ Add new watchers foreach $key (keys %ARGS) { #They're in this order because otherwise $1 gets clobbered :/ if ( ($ARGS{$key} =~ /^(AdminCc|Cc)$/) and ($key =~ /^WatcherTypeUser(\d*)$/) ) { $RT::Logger->debug("Adding a watcher $1 to ".$ARGS{$key}."\n"); my ($code, $msg) = $QueueObj->AddWatcher(Type => $ARGS{$key}, Owner => $1); push @results, $msg; } } # }}} my $admincc = $QueueObj->AdminCc; my $cc = $QueueObj->Cc; if (!$ARGS{'UserString'}) { $msg = "No users selected."; } else { $Users = new RT::Users($session{'CurrentUser'}); $Users->Limit(FIELD => $ARGS{'UserField'}, VALUE => $ARGS{'UserString'}, OPERATOR => $ARGS{'UserOp'}); } %INIT> <%ARGS> $UserField => 'Name' $UserOp => '=' $UserString => undef $Type => undef $id => undef %ARGS>