[Rt-commit] rt branch, 4.0/date-cf-in-history-and-search, created. rt-4.0.10-125-gf34d637

? sunnavy sunnavy at bestpractical.com
Fri Mar 22 10:37:38 EDT 2013


The branch, 4.0/date-cf-in-history-and-search has been created
        at  f34d637c757ba5116411ecd63a45400c6a362d9c (commit)

- Log -----------------------------------------------------------------
commit f34d637c757ba5116411ecd63a45400c6a362d9c
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri Mar 22 22:36:52 2013 +0800

    canonicalize date/datetime cfs in ticket history and search results

diff --git a/lib/RT/Transaction.pm b/lib/RT/Transaction.pm
index 1832aef..857ccd0 100644
--- a/lib/RT/Transaction.pm
+++ b/lib/RT/Transaction.pm
@@ -717,8 +717,9 @@ sub BriefDescription {
         my $self = shift;
         my $field = $self->loc('CustomField');
 
+        my $cf;
         if ( $self->Field ) {
-            my $cf = RT::CustomField->new( $self->CurrentUser );
+            $cf = RT::CustomField->new( $self->CurrentUser );
             $cf->SetContextObject( $self->Object );
             $cf->Load( $self->Field );
             $field = $cf->Name();
@@ -728,6 +729,44 @@ sub BriefDescription {
         my $new = $self->NewValue;
         my $old = $self->OldValue;
 
+        if ( $cf ) {
+
+            if ( $cf->Type eq 'DateTime' ) {
+                if ($old) {
+                    my $date = RT::Date->new( $self->CurrentUser );
+                    $date->Set( Format => 'ISO', Value => $old );
+                    $old = $date->AsString;
+                }
+
+                if ($new) {
+                    my $date = RT::Date->new( $self->CurrentUser );
+                    $date->Set( Format => 'ISO', Value => $new );
+                    $new = $date->AsString;
+                }
+            }
+            elsif ( $cf->Type eq 'Date' ) {
+                if ($old) {
+                    my $date = RT::Date->new( $self->CurrentUser );
+                    $date->Set(
+                        Format   => 'unknown',
+                        Value    => $old,
+                        Timezone => 'UTC',
+                    );
+                    $old = $date->AsString( Time => 0, Timezone => 'UTC' );
+                }
+
+                if ($new) {
+                    my $date = RT::Date->new( $self->CurrentUser );
+                    $date->Set(
+                        Format   => 'unknown',
+                        Value    => $new,
+                        Timezone => 'UTC',
+                    );
+                    $new = $date->AsString( Time => 0, Timezone => 'UTC' );
+                }
+            }
+        }
+
         if ( !defined($old) || $old eq '' ) {
             return $self->loc("[_1] [_2] added", $field, $new);
         }
diff --git a/share/html/Elements/ColumnMap b/share/html/Elements/ColumnMap
index ac65459..c7f5818 100644
--- a/share/html/Elements/ColumnMap
+++ b/share/html/Elements/ColumnMap
@@ -112,10 +112,13 @@ my $COLUMN_MAP = {
             # Display custom field contents, separated by newlines.
             # For Image custom fields we also show a thumbnail here.
             my $values = $cf->ValuesForObject( $_[0] );
+
+            my %types = map { $_ => 1 } qw/Image Date DateTime/;
+
             my @values = map {
                 (
-                    ($cf->Type eq 'Image')
-                        ? \($m->scomp( '/Elements/ShowCustomFieldImage', Object => $_ ))
+                    $types{$cf->Type} ?
+                        \($m->scomp( '/Elements/ShowCustomField' . $cf->Type, Object => $_ ))
                         : $_->Content
                 ),
                 \'<br />',

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


More information about the Rt-commit mailing list