]> git.uio.no Git - usit-rt.git/blame - share/html/Admin/Queues/People.html
Upgrade to 4.0.10.
[usit-rt.git] / share / html / Admin / Queues / People.html
CommitLineData
84fb5b46
MKG
1%# BEGIN BPS TAGGED BLOCK {{{
2%#
3%# COPYRIGHT:
4%#
403d7b0b 5%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
84fb5b46
MKG
6%# <sales@bestpractical.com>
7%#
8%# (Except where explicitly superseded by other copyright notices)
9%#
10%#
11%# LICENSE:
12%#
13%# This work is made available to you under the terms of Version 2 of
14%# the GNU General Public License. A copy of that license should have
15%# been provided with this software, but in any event can be snarfed
16%# from www.gnu.org.
17%#
18%# This work is distributed in the hope that it will be useful, but
19%# WITHOUT ANY WARRANTY; without even the implied warranty of
20%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21%# General Public License for more details.
22%#
23%# You should have received a copy of the GNU General Public License
24%# along with this program; if not, write to the Free Software
25%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26%# 02110-1301 or visit their web page on the internet at
27%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
28%#
29%#
30%# CONTRIBUTION SUBMISSION POLICY:
31%#
32%# (The following paragraph is not intended to limit the rights granted
33%# to you to modify and distribute this software under the terms of
34%# the GNU General Public License and is only of importance to you if
35%# you choose to contribute your changes and enhancements to the
36%# community by submitting them to Best Practical Solutions, LLC.)
37%#
38%# By intentionally submitting any modifications, corrections or
39%# derivatives to this work, or any other work intended for use with
40%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
41%# you are the copyright holder for those contributions and you grant
42%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
43%# royalty-free, perpetual, license to use, copy, create derivative
44%# works based on those contributions, and sublicense and distribute
45%# those contributions and any derivatives thereof.
46%#
47%# END BPS TAGGED BLOCK }}}
48<& /Elements/Header, Title => $title &>
49
50<& /Elements/Tabs &>
51
52<& /Elements/ListActions, actions => \@results &>
53
54
55<form method="post" action="People.html">
56<input type="hidden" class="hidden" name="id" value="<%$QueueObj->Id%>" />
57
58<table width="100%">
59<tr>
60<td valign="top" >
61
62<h3><&|/l&>Current watchers</&></h3>
63
64% for my $Name (RT::Queue->ManageableRoleGroupTypes) {
65<& /Admin/Elements/EditQueueWatcherGroup, Label => loc($Name), QueueObj => $QueueObj, Watchers => $QueueObj->$Name &>
66% }
67
68% $m->callback(CallbackName => 'CurrentWatchers', QueueObj => $QueueObj);
69
70</td>
71<td valign="top">
72<h3><&|/l&>New watchers</&></h3>
73
74<&|/l&>Find people whose</&><br />
75<& /Elements/SelectUsers &>
76<input type="submit" class="button" name="OnlySearchForPeople" value="<&|/l&>Go!</&>" />
77<br />
78<&|/l&>Find groups whose</&><br />
79<& /Elements/SelectGroups &>
80<input type="submit" class="button" name="OnlySearchForGroup" value="<&|/l&>Go!</&>" />
81
82<p>
83<&|/l&>Add new watchers</&>:<br />
84<p>
85<strong><&|/l&>Users</&></strong>
86% if ($user_msg) {
87<br />
88<em><%$user_msg%></em>
89% } elsif ($Users) {
90<ul>
91% while (my $u = $Users->Next ) {
92<li><& /Elements/SelectWatcherType,
93 Scope => 'queue',
94 Name => "Queue-AddWatcher-Principal-". $u->PrincipalId,
95&>
96<& /Elements/ShowUser, User => $u &></li>
97% }
98</ul>
99% }
100
101<p>
102<strong><&|/l&>Groups</&></strong>
103
104% if ($group_msg) {
105<br />
106<em><%$group_msg%></em>
107% } elsif ($Groups) {
108<ul>
109% while (my $g = $Groups->Next ) {
110<li><&/Elements/SelectWatcherType, Scope=>'queue', Name =>
111"Queue-AddWatcher-Principal-".$g->PrincipalId &> <%$g->Name%>
112(<%$g->Description%>)
113% }
114</ul>
115% }
116
117</td>
118</tr>
119</table>
120
121
122
123
124<& /Elements/Submit, Label => loc('Save Changes'), Caption => loc("If you've updated anything above, be sure to"), Reset => 1 &>
125</form>
126
127<%INIT>
128
129my ($field, @results, $User, $Users, $Groups, $watcher, $user_msg, $group_msg);
130
131my $QueueObj = RT::Queue->new($session{'CurrentUser'});
132$QueueObj->Load($id) || Abort(loc("Couldn't load queue", $id));
133
134unless ($OnlySearchForPeople or $OnlySearchForGroup) {
135# Delete deletable watchers
136
137 foreach my $key (keys %ARGS) {
138 my $id = $QueueObj->Id;
139
140 if (($key =~ /^Queue-$id-DeleteWatcher-Type-(.*?)-Principal-(\d*)$/)) {;
141 my ($code, $msg) = $QueueObj->DeleteWatcher(Type => $1,
142 PrincipalId => $2);
143 push @results, $msg;
144 }
145 }
146
147# Add new watchers
148 foreach my $key (keys %ARGS) {
149 my $type = $ARGS{$key};
150
151 next unless $key =~ /^Queue-AddWatcher-Principal-(\d*)$/;
152 my $id = $1;
153
154 next unless RT::Queue->IsManageableRoleGroupType($type);
155
156 my ($code, $msg) = $QueueObj->AddWatcher(
157 Type => $type,
158 PrincipalId => $id,
159 );
160 push @results, $msg;
161 }
162}
163
164
165if ( $ARGS{'UserString'} ) {
166 $Users = RT::Users->new( $session{'CurrentUser'} );
167 $Users->Limit( FIELD => $ARGS{'UserField'},
168 VALUE => $ARGS{'UserString'},
169 OPERATOR => $ARGS{'UserOp'}
170 );
171} else {
172 $user_msg = loc("No principals selected.");
173 }
174
175if ( $ARGS{'GroupString'} ) {
176 $Groups = RT::Groups->new( $session{'CurrentUser'} );
177 $Groups->Limit( FIELD => 'Domain',
178 OPERATOR => '=',
179 VALUE => 'UserDefined'
180 );
181 $Groups->Limit( FIELD => $ARGS{'GroupField'},
182 VALUE => $ARGS{'GroupString'},
183 OPERATOR => $ARGS{'GroupOp'}
184 );
185} else {
186 $group_msg = loc("No principals selected.");
187}
188my $title = loc('People related to queue [_1]', $QueueObj->Name);
189</%INIT>
190
191<%ARGS>
192$OnlySearchForPeople => undef
193$OnlySearchForGroup => undef
194$UserField => 'Name'
195$UserOp => '='
196$UserString => undef
197$GroupField => 'Name'
198$GroupOp => '='
199$GroupString => undef
200$Type => undef
201$id => undef
202</%ARGS>
203