<& /Elements/Header, Title => 'Modify people related to queue ' . $QueueObj->Name &> <& /Admin/Elements/QueueTabs, id => $id &> <& /Elements/ListActions, actions => \@results &>
<& /Elements/TitleBoxStart, title => 'Modify watchers for queue \''.$QueueObj->Name ."'", width => "100%" &>

Current watchers

(Check box to delete)

Cc:
    %# Print out a placeholder if there are none. %if ($cc->Count == 0 ) {
  • none % } %while (my $watcher=$cc->Next) {
  • %# account %if ($watcher->IsUser) { <%$watcher->OwnerObj->RealName%>: %} else { Email address: %} <%$watcher->Email%> %}
Administrative Cc:
    %# Print out a placeholder if there are none. %if ($admincc->Count == 0 ) {
  • none % } %while (my $watcher=$admincc->Next) {
  • %# account %if ($watcher->IsUser) { <%$watcher->OwnerObj->RealName%>: %} else { Email address: %} <%$watcher->Email%> %}

New watchers

Find people whose
<& /Elements/SelectUsers &>
Add new watchers:
% if ($msg) { <%$msg%> % } elsif ($Users) {
    % while (my $u = $Users->Next ) {
  • <&/Elements/SelectWatcherType, Scope=>'queue', Name => "WatcherTypeUser".$u->Id &> <%$u->Name%> (<%$u->RealName%>) % }
% }
<& /Elements/TitleBoxEnd &> <& /Elements/Submit, Label => 'Save Changes', Caption => "If you've updated anything above, be sure to" &>
<%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'}); } <%ARGS> $UserField => 'Name' $UserOp => '=' $UserString => undef $Type => undef $id => undef