[Rt-commit] rt branch, 4.0/reminders-of-deleted-tickets, created. rt-4.0.10-18-g12c550e

Ruslan Zakirov ruz at bestpractical.com
Thu Jan 31 18:51:28 EST 2013


The branch, 4.0/reminders-of-deleted-tickets has been created
        at  12c550e441993347cd4855a4c25b35b0d6b6a6e8 (commit)

- Log -----------------------------------------------------------------
commit 79967378a88f50bdab534bc15847e3a05309a99e
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri Mar 9 09:47:31 2012 +0800

    show reminders for deleted tickets
    
    so user can resolve them from web ui

diff --git a/share/html/Elements/ShowReminders b/share/html/Elements/ShowReminders
index 8ae28e5..ca5b338 100644
--- a/share/html/Elements/ShowReminders
+++ b/share/html/Elements/ShowReminders
@@ -60,6 +60,7 @@ my $dueobj = $reminder->DueObj;
 my $overdue = $dueobj->Unix > 0 && $dueobj->Diff < 0 ? 1 : 0;
 
 my $targets = RT::Tickets->new($session{'CurrentUser'});
+$targets->{'allow_deleted_search'} = 1;
 $targets->FromSQL( "ReferredToBy = " . $reminder->id );
 
 if ( my $ticket= $targets->First ) {

commit 06763623061bac028f05c089b07b12e254ad1f6d
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri Mar 9 11:14:15 2012 +0800

    abort reminders creation in advance if the ticket can't be loaded or is deleted

diff --git a/lib/RT/Reminders.pm b/lib/RT/Reminders.pm
index 74b1006..42f4e1d 100644
--- a/lib/RT/Reminders.pm
+++ b/lib/RT/Reminders.pm
@@ -116,6 +116,16 @@ sub Add {
         @_
     );
 
+    my $ticket = RT::Ticket->new($self->CurrentUser);
+    $ticket->Load($self->Ticket);
+    if ( !$ticket->id ) {
+        return ( 0, $self->loc( "Failed to load ticket [_1]", $self->Ticket ) );
+    }
+
+    if ( $ticket->Status eq 'deleted' ) {
+        return ( 0, $self->loc("Can't link to a deleted ticket") );
+    }
+
     my $reminder = RT::Ticket->new($self->CurrentUser);
     my ( $status, $msg ) = $reminder->Create(
         Subject => $args{'Subject'},

commit 48489a2aaf9ff0da50f63a786cc4ce506ea75d4b
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri Mar 9 11:15:19 2012 +0800

    return the error message if the reminder is not created

diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index 1eaefc7..243f8d0 100644
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -2571,7 +2571,12 @@ sub ProcessTicketReminders {
             Owner   => $args->{'NewReminder-Owner'},
             Due     => $due_obj->ISO
         );
-        push @results, loc("Reminder '[_1]' added", $args->{'NewReminder-Subject'});
+        if ( $add_id ) {
+            push @results, loc("Reminder '[_1]' added", $args->{'NewReminder-Subject'});
+        }
+        else {
+            push @results, $msg;
+        }
     }
     return @results;
 }

commit 9ddbdfffd130ad8265a1f476b09a8a9f95e65c53
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri Mar 9 11:15:35 2012 +0800

    test reminders on deleted tickets

diff --git a/t/web/reminders.t b/t/web/reminders.t
index b07aefc..fa97413 100644
--- a/t/web/reminders.t
+++ b/t/web/reminders.t
@@ -1,6 +1,6 @@
 use strict;
 use warnings;
-use RT::Test tests => 35;
+use RT::Test tests => 39;
 
 my ($baseurl, $m) = RT::Test->started_ok;
 
@@ -26,6 +26,17 @@ $m->goto_ticket($ticket->id);
 $m->form_name('UpdateReminders');
 $m->field( 'NewReminder-Subject' => "baby's first reminder" );
 $m->submit;
+$m->content_contains("Reminder 'baby's first reminder' added");
+
+$ticket->SetStatus('deleted');
+is( $ticket->Status, 'deleted', 'deleted ticket' );
+$m->form_name('UpdateReminders');
+$m->field( 'NewReminder-Subject' => "link to a deleted ticket" );
+$m->submit;
+$m->content_contains("Can't link to a deleted ticket");
+
+$ticket->SetStatus('new');
+is( $ticket->Status, 'new', 'changed back to new' );
 
 my $reminders = RT::Reminders->new($user);
 $reminders->Ticket($ticket->id);

commit 47ad38bd4611512a2aba5e881ccc6d14cfb3df4b
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri Mar 9 11:26:02 2012 +0800

    Reminders->Add does *not* return txnid

diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index 243f8d0..2f28581 100644
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -2566,7 +2566,7 @@ sub ProcessTicketReminders {
           Format => 'unknown',
           Value => $args->{'NewReminder-Due'}
         );
-        my ( $add_id, $msg, $txnid ) = $Ticket->Reminders->Add(
+        my ( $add_id, $msg ) = $Ticket->Reminders->Add(
             Subject => $args->{'NewReminder-Subject'},
             Owner   => $args->{'NewReminder-Owner'},
             Due     => $due_obj->ISO

commit fa5b8be7dcc26f12656e775726e302a75e417504
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri Mar 9 11:30:20 2012 +0800

    test /Tools/MyReminders for deleted tickets

diff --git a/t/web/reminders.t b/t/web/reminders.t
index fa97413..a71169a 100644
--- a/t/web/reminders.t
+++ b/t/web/reminders.t
@@ -1,6 +1,6 @@
 use strict;
 use warnings;
-use RT::Test tests => 39;
+use RT::Test tests => 41;
 
 my ($baseurl, $m) = RT::Test->started_ok;
 
@@ -34,6 +34,10 @@ $m->form_name('UpdateReminders');
 $m->field( 'NewReminder-Subject' => "link to a deleted ticket" );
 $m->submit;
 $m->content_contains("Can't link to a deleted ticket");
+$m->get_ok('/Tools/MyReminders.html');
+$m->content_contains( "baby's first reminder",
+    'got the reminder even the ticket is deleted' );
+$m->goto_ticket( $ticket->id );
 
 $ticket->SetStatus('new');
 is( $ticket->Status, 'new', 'changed back to new' );

commit 68e04dd8b9b83b891530263fe45e433c5bcd5f1c
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri Mar 9 13:00:21 2012 +0800

    show process results for /Ticket/Reminders.html

diff --git a/share/html/Ticket/Reminders.html b/share/html/Ticket/Reminders.html
index d20ef1d..4a7069d 100644
--- a/share/html/Ticket/Reminders.html
+++ b/share/html/Ticket/Reminders.html
@@ -47,6 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <& /Elements/Header, Title => loc("Reminders for ticket #[_1]", $Ticket->Id) &>
 <& /Elements/Tabs &>
+<& /Elements/ListActions, actions => \@results &>
     
 % $m->callback(CallbackName => 'BeforeActionList', ARGSRef => \%ARGS, Ticket => $Ticket);
     
@@ -65,7 +66,7 @@
 <%INIT>
 my $Ticket = LoadTicket($id);
 
-ProcessTicketReminders( TicketObj => $Ticket, ARGSRef => \%ARGS );
+my @results = ProcessTicketReminders( TicketObj => $Ticket, ARGSRef => \%ARGS );
 </%INIT>
 <%ARGS>
 $id => undef

commit 9ef27079a00598df41a48a6e1d11dde5a486826d
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Fri Mar 23 18:54:58 2012 -0400

    Don't show the New reminder box on deleted tickets

diff --git a/share/html/Ticket/Elements/Reminders b/share/html/Ticket/Elements/Reminders
index 3765972..c119cd3 100644
--- a/share/html/Ticket/Elements/Reminders
+++ b/share/html/Ticket/Elements/Reminders
@@ -112,8 +112,10 @@ my $reminder_collection = $count_reminders->Collection;
 % }
 % }
 
+% if ($Ticket->Status ne "deleted") {
 <&|/l&>New reminder:</&>
 <& SELF:NewReminder, Ticket => $Ticket &>
+% }
 <%method NewReminder>
 <%args>
 $Ticket

commit d0a2fb60eebb07ad194c7e3fbcbfc2a94e80678d
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Fri Mar 23 18:55:58 2012 -0400

    Don't show the "Save" button if there are no reminders and new ones can't be created

diff --git a/share/html/Ticket/Elements/Reminders b/share/html/Ticket/Elements/Reminders
index c119cd3..37b360b 100644
--- a/share/html/Ticket/Elements/Reminders
+++ b/share/html/Ticket/Elements/Reminders
@@ -67,6 +67,7 @@ my $has_reminders = $count_tickets->Count;
 
 # We've made changes, let's reload our search
 my $reminder_collection = $count_reminders->Collection;
+my $visible = 0;
 </%init>
 <input type="hidden" class="hidden" name="id" value="<% $Ticket->id %>" />
 <input type="hidden" class="hidden" name="update-reminders" value="1" />
@@ -83,7 +84,6 @@ my $reminder_collection = $count_reminders->Collection;
 % }
 </tr>
 % my $i = 0;
-% my $visible = 0;
 % while ( my $reminder = $reminder_collection->Next ) {
 % $i++;
 % if ( $reminder->Status eq $resolve_status && !$ShowCompleted ) {
@@ -116,6 +116,7 @@ my $reminder_collection = $count_reminders->Collection;
 <&|/l&>New reminder:</&>
 <& SELF:NewReminder, Ticket => $Ticket &>
 % }
+% return($Ticket->Status ne "deleted" or $visible);
 <%method NewReminder>
 <%args>
 $Ticket
diff --git a/share/html/Ticket/Elements/ShowSummary b/share/html/Ticket/Elements/ShowSummary
index 11f48d1..48db922 100644
--- a/share/html/Ticket/Elements/ShowSummary
+++ b/share/html/Ticket/Elements/ShowSummary
@@ -76,8 +76,9 @@
     &>
         <table><tr><td>
             <form action="<%RT->Config->Get('WebPath')%>/Ticket/Display.html" name="UpdateReminders" id="UpdateReminders" method="post">
-                <& /Ticket/Elements/Reminders, Ticket => $Ticket, ShowCompleted => 0 &>
+% if ( $m->comp("/Ticket/Elements/Reminders", Ticket => $Ticket, ShowCompleted => 0) ) {
                 <div align="right"><input type="submit" class="button" value="<&|/l&>Save</&>" /></div>
+% }
             </form>
         </td></tr></table>
     </&>

commit 12c550e441993347cd4855a4c25b35b0d6b6a6e8
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Fri Mar 23 19:21:16 2012 -0400

    Fix tests for no longer giving a useless "New reminder" box on deleted tickets

diff --git a/t/web/reminders.t b/t/web/reminders.t
index a71169a..af7e2fb 100644
--- a/t/web/reminders.t
+++ b/t/web/reminders.t
@@ -1,6 +1,6 @@
 use strict;
 use warnings;
-use RT::Test tests => 41;
+use RT::Test tests => 45;
 
 my ($baseurl, $m) = RT::Test->started_ok;
 
@@ -37,10 +37,12 @@ $m->content_contains("Can't link to a deleted ticket");
 $m->get_ok('/Tools/MyReminders.html');
 $m->content_contains( "baby's first reminder",
     'got the reminder even the ticket is deleted' );
-$m->goto_ticket( $ticket->id );
 
-$ticket->SetStatus('new');
-is( $ticket->Status, 'new', 'changed back to new' );
+$m->goto_ticket( $ticket->id );
+$m->content_lacks('New reminder:', "can't create a new reminder");
+$m->text_contains('Check box to complete', "we DO display this text when there are reminders");
+$m->content_like(qr{<th[^>]*>Reminders?</th>}, "now we have a reminder titlebar");
+$m->text_contains("baby's first reminder", "display the reminder's subject");
 
 my $reminders = RT::Reminders->new($user);
 $reminders->Ticket($ticket->id);
@@ -51,7 +53,11 @@ is($reminder->Subject, "baby's first reminder");
 my $reminder_id = $reminder->id;
 is($reminder->Status, 'new');
 
-$m->text_contains('New reminder:', 'can create a new reminder');
+$ticket->SetStatus('new');
+is( $ticket->Status, 'new', 'changed back to new' );
+
+$m->goto_ticket($ticket->id);
+$m->text_contains('New reminder:', "can create a new reminder");
 $m->text_contains('Check box to complete', "we DO display this text when there are reminders");
 $m->content_like(qr{<th[^>]*>Reminders?</th>}, "now we have a reminder titlebar");
 $m->text_contains("baby's first reminder", "display the reminder's subject");

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


More information about the Rt-commit mailing list