[Rt-commit] rt branch, reminders-fixes, updated. rt-3.9.7-1083-g8e62e12

Shawn Moore sartak at bestpractical.com
Mon Dec 27 22:30:55 EST 2010


The branch, reminders-fixes has been updated
       via  8e62e1227f7c84c7be4e1500b57c9ddc2355e450 (commit)
       via  c74f25ac404a26917be85e7a2845ace5ce4dcc0e (commit)
      from  b23fa125a12bfbf7370ed08b3982d2f228ab33f4 (commit)

Summary of changes:
 share/html/Ticket/Elements/Reminders |   22 +++++++++++++++++++++-
 t/web/reminders.t                    |   15 +++------------
 2 files changed, 24 insertions(+), 13 deletions(-)

- Log -----------------------------------------------------------------
commit c74f25ac404a26917be85e7a2845ace5ce4dcc0e
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Mon Dec 27 22:25:03 2010 -0500

    First pass at counting unresolved reminders

diff --git a/share/html/Ticket/Elements/Reminders b/share/html/Ticket/Elements/Reminders
index b56a64a..da4ebd2 100644
--- a/share/html/Ticket/Elements/Reminders
+++ b/share/html/Ticket/Elements/Reminders
@@ -102,12 +102,21 @@ if ( $request_args->{'NewReminder-Subject'} ) {
     );
 }
 
-# We've made changes, let's reload our search
+my $count_reminders = RT::Reminders->new($session{'CurrentUser'});
+$count_reminders->Ticket($Ticket->id);
+my $count_tickets = $count_reminders->Collection;
+if (!$ShowCompleted) {
+    # XXX: don't break encapsulation if we can avoid it
+    $count_tickets->FromSQL('Type = "reminder" AND RefersTo = "'.$Ticket->id.'" AND Status != "resolved"');
+}
+my $has_reminders = $count_tickets->Count;
 
+# We've made changes, let's reload our search
 $reminder_collection = $Ticket->Reminders->Collection;
 </%init>
 <input type="hidden" class="hidden" name="id" value="<% $Ticket->id %>" />
 <input type="hidden" class="hidden" name="update-reminders" value="1" />
+% if ($has_reminders) {
 <table border="0" cellpadding="1" cellspacing="0" class="collection-as-table"<% $Edit ? ' style="width: auto;"' : '' |n %>>
 <tr>
 % if ( $Edit ) {
@@ -138,6 +147,8 @@ $reminder_collection = $Ticket->Reminders->Collection;
 % if ( $visible > 0 ) {
 <i><&|/l&>(Check box to complete)</&></i><br /><br />
 % }
+% }
+
 <&|/l&>New reminder:</&>
 <& SELF:NewReminder, Ticket => $Ticket &>
 <%method NewReminder>
diff --git a/t/web/reminders.t b/t/web/reminders.t
index f7daa3f..32e130c 100644
--- a/t/web/reminders.t
+++ b/t/web/reminders.t
@@ -15,19 +15,13 @@ ok($ticket->id, 'created a ticket');
 $m->goto_ticket($ticket->id);
 $m->text_contains('New reminder:', 'can create a new reminder');
 $m->content_unlike(qr{Check box to complete}, "we don't display this text when there are no reminders");
-TODO: {
-    local $TODO = "we display the reminder titlebar even though we have no reminders";
-    $m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
-}
+$m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
 
 $m->follow_link_ok({id => 'page-reminders'});
 $m->title_is("Reminders for ticket #" . $ticket->id);
 $m->text_contains('New reminder:', 'can create a new reminder');
 $m->content_unlike(qr{Check box to complete}, "we don't display this text when there are no reminders");
-TODO: {
-    local $TODO = "we display the reminder titlebar even though we have no reminders";
-    $m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
-}
+$m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
 
 $m->goto_ticket($ticket->id);
 $m->form_name('UpdateReminders');
@@ -72,10 +66,7 @@ is($reminder->Status, 'resolved');
 
 $m->text_contains('New reminder:', 'can create a new reminder');
 $m->content_unlike(qr{Check box to complete}, "we don't display this text when there are open reminders");
-TODO: {
-    local $TODO = "we display the reminder titlebar even though we have no open reminders";
-    $m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
-}
+$m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
 $m->content_unlike(qr{baby's first reminder}, "we don't display resolved reminders");
 
 $m->follow_link_ok({id => 'page-reminders'});

commit 8e62e1227f7c84c7be4e1500b57c9ddc2355e450
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Mon Dec 27 22:30:28 2010 -0500

    Always include hidden form fields for resolved reminders
    
        Otherwise when we iterate over all this ticket's reminders we'll
        reopen resolved reminders

diff --git a/share/html/Ticket/Elements/Reminders b/share/html/Ticket/Elements/Reminders
index da4ebd2..50be14a 100644
--- a/share/html/Ticket/Elements/Reminders
+++ b/share/html/Ticket/Elements/Reminders
@@ -147,6 +147,15 @@ $reminder_collection = $Ticket->Reminders->Collection;
 % if ( $visible > 0 ) {
 <i><&|/l&>(Check box to complete)</&></i><br /><br />
 % }
+% } else {
+
+%# we must always include resolved reminders due to the browser
+%# checkbox-with-false-value issue
+% while ( my $reminder = $reminder_collection->Next ) {
+% if ( $reminder->Status eq 'resolved' && !$ShowCompleted ) {
+<input type="hidden" class="hidden" name="Complete-Reminder-<% $reminder->id %>" value="1" />
+% }
+% }
 % }
 
 <&|/l&>New reminder:</&>

-----------------------------------------------------------------------


More information about the Rt-commit mailing list