[Rt-commit] rt branch, 4.0/extract-reminder-processing, created. rt-3.9.7-1186-g22ccbc2
Alex Vandiver
alexmv at bestpractical.com
Mon Jan 10 14:55:57 EST 2011
The branch, 4.0/extract-reminder-processing has been created
at 22ccbc27b9a12b997b99494e54a3dcb9fa6488ab (commit)
- Log -----------------------------------------------------------------
commit 22ccbc27b9a12b997b99494e54a3dcb9fa6488ab
Author: Alex Vandiver <alexmv at bestpractical.com>
Date: Mon Jan 10 14:51:11 2011 -0500
Abstract out processing of ticket reminders
diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index 4744dc8..2395cba 100644
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -1933,6 +1933,64 @@ sub ProcessTicketBasics {
return (@results);
}
+sub ProcessTicketReminders {
+ my %args = (
+ TicketObj => undef,
+ ARGSRef => undef,
+ @_
+ );
+
+ my $Ticket = $args{'TicketObj'};
+ my $args = $args{'ARGSRef'};
+ my @results;
+
+ my $reminder_collection = $Ticket->Reminders->Collection;
+
+ if ( $args->{'update-reminders'} ) {
+ while ( my $reminder = $reminder_collection->Next ) {
+ if ( $reminder->Status ne 'resolved' && $args->{ 'Complete-Reminder-' . $reminder->id } ) {
+ $Ticket->Reminders->Resolve($reminder);
+ }
+ elsif ( $reminder->Status eq 'resolved' && !$args->{ 'Complete-Reminder-' . $reminder->id } ) {
+ $Ticket->Reminders->Open($reminder);
+ }
+
+ if ( exists( $args->{ 'Reminder-Subject-' . $reminder->id } ) && ( $reminder->Subject ne $args->{ 'Reminder-Subject-' . $reminder->id } )) {
+ $reminder->SetSubject( $args->{ 'Reminder-Subject-' . $reminder->id } ) ;
+ }
+
+ if ( exists( $args->{ 'Reminder-Owner-' . $reminder->id } ) && ( $reminder->Owner != $args->{ 'Reminder-Owner-' . $reminder->id } )) {
+ $reminder->SetOwner( $args->{ 'Reminder-Owner-' . $reminder->id } , "Force" ) ;
+ }
+
+ if ( exists( $args->{ 'Reminder-Due-' . $reminder->id } ) && $args->{ 'Reminder-Due-' . $reminder->id } ne '' ) {
+ my $DateObj = RT::Date->new( $session{'CurrentUser'} );
+ $DateObj->Set(
+ Format => 'unknown',
+ Value => $args->{ 'Reminder-Due-' . $reminder->id }
+ );
+ if ( defined $DateObj->Unix && $DateObj->Unix != $reminder->DueObj->Unix ) {
+ $reminder->SetDue( $DateObj->ISO );
+ }
+ }
+ }
+ }
+
+ if ( $args->{'NewReminder-Subject'} ) {
+ my $due_obj = RT::Date->new( $session{'CurrentUser'} );
+ $due_obj->Set(
+ Format => 'unknown',
+ Value => $args->{'NewReminder-Due'}
+ );
+ my ( $add_id, $msg, $txnid ) = $Ticket->Reminders->Add(
+ Subject => $args->{'NewReminder-Subject'},
+ Owner => $args->{'NewReminder-Owner'},
+ Due => $due_obj->ISO
+ );
+ push @results, loc("Reminder '[_1]' added", $args->{'NewReminder-Subject'});
+ }
+ return @results;
+}
sub ProcessTicketCustomFieldUpdates {
my %args = @_;
diff --git a/share/html/Ticket/Display.html b/share/html/Ticket/Display.html
index c5305ee..7110df7 100755
--- a/share/html/Ticket/Display.html
+++ b/share/html/Ticket/Display.html
@@ -167,6 +167,7 @@ if ($ARGS{'id'} eq 'new') {
push @Actions, ProcessTicketLinks( ARGSRef => \%ARGS, TicketObj => $TicketObj );
push @Actions, ProcessTicketDates( ARGSRef => \%ARGS, TicketObj => $TicketObj );
push @Actions, ProcessObjectCustomFieldUpdates(ARGSRef => \%ARGS, TicketObj => $TicketObj );
+ push @Actions, ProcessTicketReminders( ARGSRef => \%ARGS, TicketObj => $TicketObj );
# XXX: we shouldn't block actions here if user has no right to see the ticket,
# but we should allow him to see actions he has done
@@ -182,6 +183,7 @@ if ($ARGS{'id'} eq 'new') {
}
}
+
$title = loc("#[_1]: [_2]", $TicketObj->Id, $TicketObj->Subject || '');
$m->callback(
diff --git a/share/html/Ticket/Elements/Reminders b/share/html/Ticket/Elements/Reminders
index 50be14a..bc2e7c4 100644
--- a/share/html/Ticket/Elements/Reminders
+++ b/share/html/Ticket/Elements/Reminders
@@ -55,53 +55,6 @@ $Edit => 0
$Ticket = LoadTicket($id) if ($id);
-my $request_args = $m->request_args();
-
-my $reminder_collection = $Ticket->Reminders->Collection;
-
-if ( $request_args->{'update-reminders'} ) {
- while ( my $reminder = $reminder_collection->Next ) {
- if ( $reminder->Status ne 'resolved' && $request_args->{ 'Complete-Reminder-' . $reminder->id } ) {
- $Ticket->Reminders->Resolve($reminder);
- }
- elsif ( $reminder->Status eq 'resolved' && !$request_args->{ 'Complete-Reminder-' . $reminder->id } ) {
- $Ticket->Reminders->Open($reminder);
- }
-
- if ( exists( $request_args->{ 'Reminder-Subject-' . $reminder->id } ) && ( $reminder->Subject ne $request_args->{ 'Reminder-Subject-' . $reminder->id } )) {
- $reminder->SetSubject( $request_args->{ 'Reminder-Subject-' . $reminder->id } ) ;
- }
-
- if ( exists( $request_args->{ 'Reminder-Owner-' . $reminder->id } ) && ( $reminder->Owner != $request_args->{ 'Reminder-Owner-' . $reminder->id } )) {
- $reminder->SetOwner( $request_args->{ 'Reminder-Owner-' . $reminder->id } , "Force" ) ;
- }
-
- if ( exists( $request_args->{ 'Reminder-Due-' . $reminder->id } ) && $request_args->{ 'Reminder-Due-' . $reminder->id } ne '' ) {
- my $DateObj = RT::Date->new( $session{'CurrentUser'} );
- $DateObj->Set(
- Format => 'unknown',
- Value => $request_args->{ 'Reminder-Due-' . $reminder->id }
- );
- if ( defined $DateObj->Unix && $DateObj->Unix != $reminder->DueObj->Unix ) {
- $reminder->SetDue( $DateObj->ISO );
- }
- }
- }
-}
-
-if ( $request_args->{'NewReminder-Subject'} ) {
- my $due_obj = RT::Date->new( $session{'CurrentUser'} );
- $due_obj->Set(
- Format => 'unknown',
- Value => $request_args->{'NewReminder-Due'}
- );
- my ( $add_id, $msg, $txnid ) = $Ticket->Reminders->Add(
- Subject => $request_args->{'NewReminder-Subject'},
- Owner => $request_args->{'NewReminder-Owner'},
- Due => $due_obj->ISO
- );
-}
-
my $count_reminders = RT::Reminders->new($session{'CurrentUser'});
$count_reminders->Ticket($Ticket->id);
my $count_tickets = $count_reminders->Collection;
@@ -112,7 +65,7 @@ if (!$ShowCompleted) {
my $has_reminders = $count_tickets->Count;
# We've made changes, let's reload our search
-$reminder_collection = $Ticket->Reminders->Collection;
+my $reminder_collection = $count_reminders->Collection;
</%init>
<input type="hidden" class="hidden" name="id" value="<% $Ticket->id %>" />
<input type="hidden" class="hidden" name="update-reminders" value="1" />
diff --git a/share/html/Ticket/Reminders.html b/share/html/Ticket/Reminders.html
index 7343b24..4508f5a 100755
--- a/share/html/Ticket/Reminders.html
+++ b/share/html/Ticket/Reminders.html
@@ -63,9 +63,9 @@
<%INIT>
-
my $Ticket = LoadTicket($id);
-
+
+ProcessTicketReminders( TicketObj => $Ticket, ARGSRef => \%ARGS );
</%INIT>
<%ARGS>
$id => undef
diff --git a/share/html/m/ticket/show b/share/html/m/ticket/show
index 14933f6..0a4f1a4 100644
--- a/share/html/m/ticket/show
+++ b/share/html/m/ticket/show
@@ -110,6 +110,7 @@ if ($ARGS{'id'} eq 'new') {
push @Actions, ProcessTicketLinks( ARGSRef => \%ARGS, TicketObj => $Ticket );
push @Actions, ProcessTicketDates( ARGSRef => \%ARGS, TicketObj => $Ticket );
push @Actions, ProcessObjectCustomFieldUpdates(ARGSRef => \%ARGS, TicketObj => $Ticket );
+ push @Actions, ProcessTicketReminders( ARGSRef => \%ARGS, TicketObj => $TicketObj );
# XXX: we shouldn't block actions here if user has no right to see the ticket,
# but we should allow him to see actions he has done
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list