[Rt-commit] r16532 - in rt/3.8/trunk: lib/RT share/html/Ticket/Elements

ruz at bestpractical.com ruz at bestpractical.com
Fri Oct 24 17:37:10 EDT 2008


Author: ruz
Date: Fri Oct 24 17:37:09 2008
New Revision: 16532

Added:
   rt/3.8/trunk/share/html/Elements/ShowUserEmailFrequency
Modified:
   rt/3.8/trunk/lib/RT/User_Overlay.pm
   rt/3.8/trunk/share/html/Ticket/Elements/ShowGroupMembers
   rt/3.8/trunk/share/html/Ticket/Elements/ShowPeople

Log:
* show how often user recieves messages on a ticket

Modified: rt/3.8/trunk/lib/RT/User_Overlay.pm
==============================================================================
--- rt/3.8/trunk/lib/RT/User_Overlay.pm	(original)
+++ rt/3.8/trunk/lib/RT/User_Overlay.pm	Fri Oct 24 17:37:09 2008
@@ -562,6 +562,47 @@
 
 }
 
+=head2 EmailFrequency
+
+Takes optional Ticket argument in paramhash. Returns 'no email',
+'squelched', 'daily', 'weekly' or empty string depending on
+user preferences.
+
+=over 4
+
+=item 'no email' - user has no email, so can not recieve notifications.
+
+=item 'squelched' - returned only when Ticket argument is provided and
+notifications to the user has been supressed for this ticket.
+
+=item 'daily' - retruned when user recieve daily messages digest instead
+of immediate delivery.
+
+=item 'weekly' - previous, but weekly.
+
+=item empty string returned otherwise.
+
+=back
+
+=cut
+
+sub EmailFrequency {
+    my $self = shift;
+    my %args = (
+        Ticket => undef,
+        @_
+    );
+    return '' unless $self->id && $self->id != $RT::Nobody->id
+        && $self->id != $RT::SystemUser->id;
+    return 'no email' unless my $email = $self->EmailAddress;
+    return 'squelched' if $args{'Ticket'} &&
+        grep lc $email eq lc $_->Content, $args{'Ticket'}->SquelchMailTo;
+    my $frequency = RT->Config->Get( 'EmailFrequency', $self ) || '';
+    return 'daily' if $frequency =~ /daily/i;
+    return 'weekly' if $frequency =~ /weekly/i;
+    return '';
+}
+
 =head2 CanonicalizeEmailAddress ADDRESS
 
 CanonicalizeEmailAddress converts email addresses into canonical form.
@@ -1641,7 +1682,6 @@
     );
 }
 
-
 1;
 
 

Added: rt/3.8/trunk/share/html/Elements/ShowUserEmailFrequency
==============================================================================
--- (empty file)
+++ rt/3.8/trunk/share/html/Elements/ShowUserEmailFrequency	Fri Oct 24 17:37:09 2008
@@ -0,0 +1,9 @@
+(<% loc($frequency) %>)
+<%INIT>
+my $frequency = $User->EmailFrequency( Ticket => $Ticket );
+return unless $frequency;
+</%INIT>
+<%ARGS>
+$User
+$Ticket => undef
+</%ARGS>

Modified: rt/3.8/trunk/share/html/Ticket/Elements/ShowGroupMembers
==============================================================================
--- rt/3.8/trunk/share/html/Ticket/Elements/ShowGroupMembers	(original)
+++ rt/3.8/trunk/share/html/Ticket/Elements/ShowGroupMembers	Fri Oct 24 17:37:09 2008
@@ -49,7 +49,8 @@
 
 % my $Users = $Group->UserMembersObj( Recursively => $Recursively );
 % while ( my $user = $Users->Next ) {
-<& /Elements/ShowUser, User => $user, Ticket => $Ticket &><br />
+<& /Elements/ShowUser, User => $user, Ticket => $Ticket &>
+<& /Elements/ShowUserEmailFrequency, User => $user, Ticket => $Ticket &><br />
 % }
 % my $Groups = $Group->GroupMembersObj( Recursively => $Recursively );
 % $Groups->LimitToUserDefinedGroups;

Modified: rt/3.8/trunk/share/html/Ticket/Elements/ShowPeople
==============================================================================
--- rt/3.8/trunk/share/html/Ticket/Elements/ShowPeople	(original)
+++ rt/3.8/trunk/share/html/Ticket/Elements/ShowPeople	Fri Oct 24 17:37:09 2008
@@ -48,7 +48,9 @@
 <table>
   <tr>
     <td class="label"><&|/l&>Owner</&>:</td>
-    <td class="value"><& /Elements/ShowUser, User => $Ticket->OwnerObj, Ticket => $Ticket &></td>
+% my $owner = $Ticket->OwnerObj;
+    <td class="value"><& /Elements/ShowUser, User => $owner, Ticket => $Ticket &>
+    <& /Elements/ShowUserEmailFrequency, User => $owner, Ticket => $Ticket &></td>
   </tr>
   <tr>
     <td class="labeltop"><&|/l&>Requestors</&>:</td>
@@ -63,6 +65,8 @@
     <td class="value"><& ShowGroupMembers, Group => $Ticket->AdminCc, Ticket => $Ticket &></td>
   </tr>
 </table>
+<%INIT>
+</%INIT>
 <%ARGS>
 $Ticket => undef
 </%ARGS>


More information about the Rt-commit mailing list