summaryrefslogtreecommitdiff
path: root/rt
diff options
context:
space:
mode:
authormark <mark>2011-09-07 23:43:24 +0000
committermark <mark>2011-09-07 23:43:24 +0000
commit886d8d9970ccfe4eae1efe0c11160ad0c69c1339 (patch)
treefdaac85d4e0a39cd7dee60330bb9c796f40ff064 /rt
parent62057018f9e02dbce053bce7058ef0f0b1309846 (diff)
future ticket resolve fixes, #13583
Diffstat (limited to 'rt')
-rw-r--r--rt/FREESIDE_MODIFIED16
-rw-r--r--rt/lib/RT/Action/SetWillResolve.pm24
-rw-r--r--rt/lib/RT/URI/freeside/Internal.pm3
-rwxr-xr-xrt/share/html/Ticket/Elements/EditDates2
-rwxr-xr-xrt/share/html/Ticket/Elements/ShowDates2
-rwxr-xr-xrt/share/html/Ticket/Update.html19
6 files changed, 41 insertions, 25 deletions
diff --git a/rt/FREESIDE_MODIFIED b/rt/FREESIDE_MODIFIED
index 1f7af7cd7..c6aa3c22d 100644
--- a/rt/FREESIDE_MODIFIED
+++ b/rt/FREESIDE_MODIFIED
@@ -28,16 +28,16 @@ lib/RT/Action/SetPriority_Local.pm #ticket escalation
lib/RT/CustomFieldValues/Queues.pm #ticket escalation
lib/RT/Condition/CustomFieldChange.pm #create ticket on custom field change
lib/RT/Condition/CustomFieldTransaction.pm #notify on custom field change
-lib/RT/Interface/Web_Vendor.pm
+lib/RT/Interface/Web_Vendor.pm #willresolve
lib/RT/Interface/Web/Handler.pm #freeside comp_root for dashboard emails
lib/RT/Record.pm #and customfield date patch #fix transaction custom fields
lib/RT/SavedSearches_Local.pm #saved searches
lib/RT/Search/Googleish.pm #option to include resolved tickets
lib/RT/SearchBuilder.pm #need DBIx::SearchBuilder >= 1.36 for Pg 8.1+
lib/RT/Transaction_Overlay.pm #fix transaction custom fields
-lib/RT/Tickets_Overlay.pm #customfield date patch #SearchCustomerFields #this-month condition
+lib/RT/Tickets_Overlay.pm #customfield date patch #SearchCustomerFields #this-month condition #willresolve
lib/RT/Ticket_Overlay.pm #fix transaction custom fields
-lib/RT/Ticket_Vendor.pm #bulk increment priority #mandatory fields
+lib/RT/Ticket_Vendor.pm #bulk increment priority #mandatory fields #willresolve
lib/RT/Users_Overlay.pm
lib/RT/Groups_Overlay.pm
lib/RT/Date.pm #this-month condition
@@ -107,7 +107,7 @@ share/html/Ticket/Elements/ShowMembers_Checklist
share/html/Ticket/Elements/ShowSummary
share/html/Ticket/Elements/ShowTransactionAttachments
share/html/Ticket/Elements/Tabs #saved searches #mandatory fields
-share/html/Ticket/Update.html #timeworked custom fields
+share/html/Ticket/Update.html #timeworked custom fields #willresolve
share/html/Ticket/ModifyCustomers.html
html/NoAuth/css/3.5-default/main.css
html/NoAuth/css/3.5-default/misc.css
@@ -144,3 +144,11 @@ share/html/Elements/ColumnMap
lib/RT/Extension/MobileUI.pm
share/html/Callbacks/RT-Extension-MobileUI/*
share/html/m/*
+
+#willresolve
+lib/RT/Action/ScheduledResolve.pm
+lib/RT/Action/SetWillResolve.pm
+lib/RT/Transaction_Vendor.pm
+share/html/Elements/SelectStatus
+share/html/Ticket/Elements/EditDates
+share/html/Ticket/Elements/ShowDates
diff --git a/rt/lib/RT/Action/SetWillResolve.pm b/rt/lib/RT/Action/SetWillResolve.pm
index 807b3c64c..2f9f6190f 100644
--- a/rt/lib/RT/Action/SetWillResolve.pm
+++ b/rt/lib/RT/Action/SetWillResolve.pm
@@ -8,18 +8,26 @@ sub Describe {
return (ref $self ." will set a ticket's future resolve date to the argument.");
}
-sub Prepare {
- return 1;
+sub Prepare {
+ my $self = shift;
+ my $DateObj = RT::Date->new( $self->CurrentUser );
+ if ( length($self->Argument) ) {
+ $DateObj->Set(
+ Format => 'unknown',
+ Value => $self->Argument
+ )
+ }
+ else { # special case: treat Argument => '' as "never"
+ $DateObj->Unix(-1);
+ }
+ $self->{new_value} = $DateObj->ISO;
+ # if the before and after values are string-equivalent, don't bother
+ return ($DateObj->AsString ne $self->TicketObj->WillResolveAsString);
}
sub Commit {
my $self = shift;
- my $DateObj = RT::Date->new( $self->CurrentUser );
- $DateObj->Set(
- Format => 'unknown',
- Value => $self->Argument,
- );
- $self->TicketObj->SetWillResolve( $DateObj->ISO );
+ $self->TicketObj->SetWillResolve( $self->{new_value} );
}
RT::Base->_ImportOverlays();
diff --git a/rt/lib/RT/URI/freeside/Internal.pm b/rt/lib/RT/URI/freeside/Internal.pm
index 6d3adc2ef..9c9700032 100644
--- a/rt/lib/RT/URI/freeside/Internal.pm
+++ b/rt/lib/RT/URI/freeside/Internal.pm
@@ -26,14 +26,13 @@
# END LICENSE BLOCK
#
use strict;
-no warnings qw(redefine);
#use vars qw($conf);
use FS;
use FS::UID qw(dbh);
use FS::CGI qw(popurl);
-use FS::UI::Web::small_custview qw(small_custview);
+use FS::UI::Web::small_custview;
use FS::Conf;
use FS::Record qw(qsearchs qsearch dbdef);
use FS::cust_main;
diff --git a/rt/share/html/Ticket/Elements/EditDates b/rt/share/html/Ticket/Elements/EditDates
index 371f6e31e..4b9a93bb8 100755
--- a/rt/share/html/Ticket/Elements/EditDates
+++ b/rt/share/html/Ticket/Elements/EditDates
@@ -71,7 +71,7 @@
</td>
</tr>
<tr>
- <td class="label"><&|/l&>Close After</&>:</td>
+ <td class="label"><&|/l&>Resolve After</&>:</td>
<td class="entry">
<& /Elements/SelectDate, menu_prefix => 'WillResolve', current => 0 &> (<% $TicketObj->WillResolveObj->AsString %>)
</td>
diff --git a/rt/share/html/Ticket/Elements/ShowDates b/rt/share/html/Ticket/Elements/ShowDates
index fc0146194..1df0f8084 100755
--- a/rt/share/html/Ticket/Elements/ShowDates
+++ b/rt/share/html/Ticket/Elements/ShowDates
@@ -72,7 +72,7 @@
% }
</tr>
<tr>
- <td class="label date resolved"><&|/l&>Closed</&>:</td>
+ <td class="label date resolved"><&|/l&>Resolved</&>:</td>
<td class="value date resolved"><% $Ticket->ResolvedObj->AsString %></td>
</tr>
% my $willresolve = $Ticket->WillResolveObj;
diff --git a/rt/share/html/Ticket/Update.html b/rt/share/html/Ticket/Update.html
index 7c28cc30d..0d4e3b223 100755
--- a/rt/share/html/Ticket/Update.html
+++ b/rt/share/html/Ticket/Update.html
@@ -90,15 +90,7 @@ function changeStatus() {
|| ($TicketObj->Status eq $DefaultStatus ? undef : $DefaultStatus,
onchange => 'changeStatus()'
)&>
-<span class="label"><&|/l&>Owner</&>:</span>
-<& /Elements/SelectOwner,
- Name => "Owner",
- TicketObj => $TicketObj,
- QueueObj => $TicketObj->QueueObj,
- DefaultLabel => loc("[_1] (Unchanged)", $m->scomp('/Elements/ShowUser', User => $TicketObj->OwnerObj)),
- Default => $ARGS{'Owner'}
-&>
-<span class="label"><&|/l&>Close this Ticket on</&>:</span>
+<span class="label"><&|/l&>Resolve this Ticket on</&>:</span>
<& /Elements/SelectDate,
menu_prefix => 'WillResolve',
current => 0,
@@ -132,6 +124,15 @@ changeStatus();
% if (!$skip) {
<input type="hidden" class="hidden" name="id" value="<%$TicketObj->Id%>" /><br />
% }
+<tr><td class="label"><&|/l&>Owner</&>:</td>
+<td><& /Elements/SelectOwner,
+ Name => "Owner",
+ TicketObj => $TicketObj,
+ QueueObj => $TicketObj->QueueObj,
+ DefaultLabel => loc("[_1] (Unchanged)", $m->scomp('/Elements/ShowUser', User => $TicketObj->OwnerObj)),
+ Default => $ARGS{'Owner'}
+&></td>
+</tr>
<tr><td class="label"><&|/l&>Update Type</&>:</td>
<td><select name="UpdateType">
% if ($CanComment) {