summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Action/SetWillResolve.pm
blob: 2f9f6190fb3d0ef743199c9dddd030600d371f75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package RT::Action::SetWillResolve;
use base 'RT::Action';

use strict;

sub Describe  {
  my $self = shift;
  return (ref $self ." will set a ticket's future resolve date to the argument.");
}

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;
    $self->TicketObj->SetWillResolve( $self->{new_value} );
}

RT::Base->_ImportOverlays();

1;