[Rt-commit] [rtir] 02/02: Add support for custom roles in RTIR forms
Shawn Moore
shawn at bestpractical.com
Tue Dec 8 17:38:57 EST 2015
This is an automated email from the git hooks/post-receive script.
shawn pushed a commit to branch 3.4/custom-roles
in repository rtir.
commit bd3136d3482cd93700731ef0cff176ddba40a68a
Author: Shawn M Moore <shawn at bestpractical.com>
Date: Tue Dec 8 22:28:02 2015 +0000
Add support for custom roles in RTIR forms
---
html/RTIR/Create.html | 20 ++++++++++++++++++++
html/RTIR/Elements/AddWatchers | 11 ++++++-----
html/RTIR/Elements/EditPeople | 17 +++++++++++++++++
html/RTIR/Elements/ShowPeople | 29 +++++++++++++++++++++++++++++
4 files changed, 72 insertions(+), 5 deletions(-)
diff --git a/html/RTIR/Create.html b/html/RTIR/Create.html
index 6ba28fb..7c85b2c 100644
--- a/html/RTIR/Create.html
+++ b/html/RTIR/Create.html
@@ -131,6 +131,7 @@
QueueObj => $QueueObj,
},
},
+ { special => 'roles' },
],
&>
@@ -259,6 +260,25 @@
</font></i></td>
</tr>
+% my $roles = $QueueObj->CustomRoles;
+% $roles->LimitToMultipleValue;
+% while (my $role = $roles->Next) {
+ <tr>
+ <td class="label"><% $role->Name %>:</td>
+ <td class="value"><& /Elements/EmailInput,
+ Name => $role->GroupType, Default => $ARGS{$role->GroupType}, Size => undef,
+ &></td>
+ </tr>
+% if ($role->EntryHint) {
+ <tr>
+ <td class="label"> </td>
+ <td class="comment"><i><font size="-2">
+ <% $role->EntryHint %>
+ </font></i></td>
+ </tr>
+% }
+% }
+
<tr>
<td class="label"><&|/l&>Subject</&>:</td>
<td class="value"><input type="text" name="Subject" maxsize="200" value="<% $Subject || '' %>" /></td>
diff --git a/html/RTIR/Elements/AddWatchers b/html/RTIR/Elements/AddWatchers
index cf355e8..8d82b40 100644
--- a/html/RTIR/Elements/AddWatchers
+++ b/html/RTIR/Elements/AddWatchers
@@ -53,7 +53,7 @@
% if ( $Users ) {
<tr><td><&|/l&>Type</&></td><td><&|/l&>Username</&></td></tr>
% while ( my $u = $Users->Next ) {
-<tr><td><& /Elements/SelectWatcherType, Name => "Ticket-AddWatcher-Principal-". $u->PrincipalId &></td>
+<tr><td><& /Elements/SelectWatcherType, Name => "Ticket-AddWatcher-Principal-". $u->PrincipalId, Queue => $Ticket->QueueObj &></td>
<td><& /Elements/ShowUser, User => $u &></td></tr>
% }
% }
@@ -61,20 +61,20 @@
% if ( $Groups->Count ) {
<tr><td><&|/l&>Type</&></td><td><&|/l&>Group</&></td></tr>
% while ( my $g = $Groups->Next ) {
-<tr><td><& /Elements/SelectWatcherType, Name => "Ticket-AddWatcher-Principal-". $g->PrincipalId, Scope => 'queue' &></td>
+<tr><td><& /Elements/SelectWatcherType, Name => "Ticket-AddWatcher-Principal-". $g->PrincipalId, Scope => 'queue', Queue => $Ticket->QueueObj &></td>
<td><% $g->Name %> (<% $g->Description||'' %>)</td></tr>
% }
% }
<tr><td><&|/l&>Type</&></td><td><&|/l&>Email</&></td></tr>
-<tr><td><& /Elements/SelectWatcherType, Name => "WatcherTypeEmail1" &></td>
+<tr><td><& /Elements/SelectWatcherType, Name => "WatcherTypeEmail1", Queue => $Ticket->QueueObj &></td>
<td><input type="text" name="WatcherAddressEmail1" size="15" /></td></tr>
-<tr><td><& /Elements/SelectWatcherType, Name => "WatcherTypeEmail2" &></td>
+<tr><td><& /Elements/SelectWatcherType, Name => "WatcherTypeEmail2", Queue => $Ticket->QueueObj &></td>
<td><input type="text" name="WatcherAddressEmail2" size="15" /></td></tr>
-<tr><td><& /Elements/SelectWatcherType, Name => "WatcherTypeEmail3" &></td>
+<tr><td><& /Elements/SelectWatcherType, Name => "WatcherTypeEmail3", Queue => $Ticket->QueueObj &></td>
<td><input type="text" name="WatcherAddressEmail3" size="15" /></td></tr>
</table>
@@ -99,4 +99,5 @@ $Groups->LimitToUserDefinedGroups;
$UserField => 'Name'
$UserOp => '='
$UserString => undef
+$Ticket
</%ARGS>
diff --git a/html/RTIR/Elements/EditPeople b/html/RTIR/Elements/EditPeople
index 2de9c2a..2fc4007 100644
--- a/html/RTIR/Elements/EditPeople
+++ b/html/RTIR/Elements/EditPeople
@@ -82,6 +82,23 @@
<& /Ticket/Elements/EditWatchers, TicketObj => $Ticket, Watchers => $Ticket->AdminCc &>
</td>
</tr>
+
+% my $multi_roles = $Ticket->QueueObj->CustomRoles;
+% $multi_roles->LimitToMultipleValue;
+% while (my $role = $multi_roles->Next) {
+
+ <tr>
+ <td height="1" colspan="2" bgcolor="#999999"></td>
+ <tr>
+ <td class="labeltop">
+ <% $role->Name %>:
+ </td>
+ <td class="value">
+ <& /Ticket/Elements/EditWatchers, Watchers => $Ticket->RoleGroup($role->GroupType), TicketObj => $Ticket &>
+ </td>
+
+ </tr>
+% }
</table>
</td>
diff --git a/html/RTIR/Elements/ShowPeople b/html/RTIR/Elements/ShowPeople
index d8e3e05..2dbf531 100644
--- a/html/RTIR/Elements/ShowPeople
+++ b/html/RTIR/Elements/ShowPeople
@@ -57,6 +57,25 @@
% $m->callback( User => $owner, Ticket => $Ticket, %ARGS, CallbackName => 'AboutThisUser' );
</td>
</tr>
+
+% my $single_roles = $Ticket->QueueObj->CustomRoles;
+% $single_roles->LimitToSingleValue;
+% while (my $role = $single_roles->Next) {
+% my $group = $Ticket->RoleGroup($role->GroupType);
+% my $users = $group->UserMembersObj( Recursively => 0 );
+
+%# $users can be empty for tickets created before the custom role is added to the queue,
+%# so fall back to nobody
+
+% my $user = $users->First || RT->Nobody;
+ <tr>
+ <td class="label"><% $role->Name %>:</td>
+ <td class="value"><& /Elements/ShowUser, User => $user, Ticket => $Ticket &></td>
+ <& /Elements/ShowUserEmailFrequency, User => $user, Ticket => $Ticket &>
+% $m->callback( User => $user, Ticket => $Ticket, %ARGS, CallbackName => 'AboutThisUser' );
+ </tr>
+% }
+
<tr>
<td class="labeltop"><&|/l&>Correspondents</&>:</td>
<td class="value"><& /Ticket/Elements/ShowGroupMembers, Group => $Ticket->Requestors, Ticket => $Ticket &></td>
@@ -69,6 +88,16 @@
<td class="labeltop"><&|/l&>AdminCc</&>:</td>
<td class="value"><& /Ticket/Elements/ShowGroupMembers, Group => $Ticket->AdminCc, Ticket => $Ticket &></td>
</tr>
+
+% my $multi_roles = $Ticket->QueueObj->CustomRoles;
+% $multi_roles->LimitToMultipleValue;
+% while (my $role = $multi_roles->Next) {
+ <tr>
+ <td class="labeltop"><% $role->Name %>:</td>
+ <td class="value"><& /Ticket/Elements/ShowGroupMembers, Group => $Ticket->RoleGroup($role->GroupType), Ticket => $Ticket &></td>
+ </tr>
+% }
+
<& /Elements/ShowCustomFields, Grouping => 'People', Object => $Ticket, Table => 0 &>
</table>
<%ARGS>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the rt-commit
mailing list