X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=rt%2Fshare%2Fhtml%2FAdmin%2FQueues%2FPeople.html;h=e3a9d0c204248fe6738fe9a9d49975745074b05b;hb=e9e0cf0989259b94d9758eceff448666a2e5a5cc;hp=0a2ab0de2c0c35960de69f085e687c94d456e94c;hpb=b4b0c7e72d7eaee2fbfc7022022c9698323203dd;p=freeside.git diff --git a/rt/share/html/Admin/Queues/People.html b/rt/share/html/Admin/Queues/People.html index 0a2ab0de2..e3a9d0c20 100755 --- a/rt/share/html/Admin/Queues/People.html +++ b/rt/share/html/Admin/Queues/People.html @@ -1,40 +1,40 @@ %# BEGIN BPS TAGGED BLOCK {{{ -%# +%# %# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC -%# -%# +%# +%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC +%# +%# %# (Except where explicitly superseded by other copyright notices) -%# -%# +%# +%# %# LICENSE: -%# +%# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. -%# +%# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. -%# +%# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -%# -%# +%# +%# %# CONTRIBUTION SUBMISSION POLICY: -%# +%# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) -%# +%# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,13 +43,11 @@ %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# 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>