[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