RT future ticket resolve, #13853
[freeside.git] / rt / lib / RT / Transaction_Vendor.pm
diff --git a/rt/lib/RT/Transaction_Vendor.pm b/rt/lib/RT/Transaction_Vendor.pm
new file mode 100644 (file)
index 0000000..caeb3f7
--- /dev/null
@@ -0,0 +1,35 @@
+package RT::Transaction;
+use strict;
+use vars qw(%_BriefDescriptions);
+
+$_BriefDescriptions{'Set'} = sub {
+    my $self = shift;
+    if ( $self->Field eq 'Password' ) {
+        return $self->loc('Password changed');
+    }
+    elsif ( $self->Field eq 'Queue' ) {
+        my $q1 = new RT::Queue( $self->CurrentUser );
+        $q1->Load( $self->OldValue );
+        my $q2 = new RT::Queue( $self->CurrentUser );
+        $q2->Load( $self->NewValue );
+        return $self->loc("[_1] changed from [_2] to [_3]",
+                          $self->loc($self->Field) , $q1->Name , $q2->Name);
+    }
+
+    # Write the date/time change at local time:
+    elsif ($self->Field =~  /Due|Starts|Started|Told|WillResolve/) {
+        my $t1 = new RT::Date($self->CurrentUser);
+        $t1->Set(Format => 'ISO', Value => $self->NewValue);
+        my $t2 = new RT::Date($self->CurrentUser);
+        $t2->Set(Format => 'ISO', Value => $self->OldValue);
+        return $self->loc( "[_1] changed from [_2] to [_3]", $self->loc($self->Field), $t2->AsString, $t1->AsString );
+    }
+    else {
+        return $self->loc( "[_1] changed from [_2] to [_3]",
+                           $self->loc($self->Field),
+                           ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'" );
+    }
+};
+
+1;
+