X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FAdmin%2FQueues%2FPeople.html;h=8a226e894a5bd97e8bfd8368c6be5b46615f3821;hp=917d88c33fa5dc5e2ca62d371e20c1914f6540ef;hb=919e930aa9279b3c5cd12b593889cd6de79d67bf;hpb=fc6209f398899f0211cfcedeb81a3cd65e04a941 diff --git a/rt/share/html/Admin/Queues/People.html b/rt/share/html/Admin/Queues/People.html index 917d88c33..8a226e894 100755 --- a/rt/share/html/Admin/Queues/People.html +++ b/rt/share/html/Admin/Queues/People.html @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -45,11 +45,9 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} -<& /Elements/Header, Title => loc('Modify people related to queue [_1]', $QueueObj->Name) &> -<& /Admin/Elements/QueueTabs, id => $id, - QueueObj => $QueueObj, - current_tab => $current_tab, - Title => loc('Modify people related to queue [_1]', $QueueObj->Name) &> +<& /Elements/Header, Title => $title &> + +<& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &> @@ -63,15 +61,11 @@

<&|/l&>Current watchers

+% for my $Name (RT::Queue->ManageableRoleGroupTypes) { +<& /Admin/Elements/EditQueueWatcherGroup, Label => loc($Name), QueueObj => $QueueObj, Watchers => $QueueObj->$Name &> +% } -<&|/l&>Cc: - -<& /Admin/Elements/EditQueueWatchers, QueueObj => $QueueObj, Watchers => $QueueObj->Cc &> - -<&|/l&>Administrative Cc: - -<& /Admin/Elements/EditQueueWatchers, QueueObj => $QueueObj, Watchers => $QueueObj->AdminCc &> - +% $m->callback(CallbackName => 'CurrentWatchers', QueueObj => $QueueObj); @@ -132,22 +126,13 @@ <%INIT> -my $current_tab; my ($field, @results, $User, $Users, $Groups, $watcher, $user_msg, $group_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'}); +my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load($id) || Abort(loc("Couldn't load queue", $id)); -# }}} unless ($OnlySearchForPeople or $OnlySearchForGroup) { -# {{{ Delete deletable watchers +# Delete deletable watchers foreach my $key (keys %ARGS) { my $id = $QueueObj->Id; @@ -158,46 +143,49 @@ unless ($OnlySearchForPeople or $OnlySearchForGroup) { push @results, $msg; } } -# }}} - -# {{{ Add new watchers - foreach my $key (keys %ARGS) { - #They're in this order because otherwise $1 gets clobbered :/ - if ( ($ARGS{$key} =~ /^(AdminCc|Cc)$/) and - ($key =~ /^Queue-AddWatcher-Principal-(\d*)$/) ) { - $RT::Logger->debug("Adding a watcher $1 to ".$ARGS{$key}."\n"); - my ($code, $msg) = $QueueObj->AddWatcher(Type => $ARGS{$key}, - PrincipalId => $1); + +# Add new watchers + foreach my $key (keys %ARGS) { + my $type = $ARGS{$key}; + + next unless $key =~ /^Queue-AddWatcher-Principal-(\d*)$/; + my $id = $1; + + next unless RT::Queue->IsManageableRoleGroupType($type); + + my ($code, $msg) = $QueueObj->AddWatcher( + Type => $type, + PrincipalId => $id, + ); push @results, $msg; - } } - -# }}} } -if (!length $ARGS{'UserString'}) { -$user_msg = loc("No principals selected."); - } -else { - $Users = new RT::Users($session{'CurrentUser'}); - $Users->Limit(FIELD => $ARGS{'UserField'}, - VALUE => $ARGS{'UserString'}, - OPERATOR => $ARGS{'UserOp'}); - } - -if (!length $ARGS{'GroupString'}) { -$group_msg = loc("No principals selected."); - } -else { -$Groups = new RT::Groups($session{'CurrentUser'}); -$Groups->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'UserDefined'); -$Groups->Limit(FIELD => $ARGS{'GroupField'}, - VALUE => $ARGS{'GroupString'}, - OPERATOR => $ARGS{'GroupOp'}); - } - -$current_tab = 'Admin/Queues/People.html?id='.$QueueObj->id; +if ( $ARGS{'UserString'} ) { + $Users = RT::Users->new( $session{'CurrentUser'} ); + $Users->Limit( FIELD => $ARGS{'UserField'}, + VALUE => $ARGS{'UserString'}, + OPERATOR => $ARGS{'UserOp'} + ); +} else { + $user_msg = loc("No principals selected."); + } + +if ( $ARGS{'GroupString'} ) { + $Groups = RT::Groups->new( $session{'CurrentUser'} ); + $Groups->Limit( FIELD => 'Domain', + OPERATOR => '=', + VALUE => 'UserDefined' + ); + $Groups->Limit( FIELD => $ARGS{'GroupField'}, + VALUE => $ARGS{'GroupString'}, + OPERATOR => $ARGS{'GroupOp'} + ); +} else { + $group_msg = loc("No principals selected."); +} +my $title = loc('People related to queue [_1]', $QueueObj->Name); <%ARGS>