X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FElements%2FColumnMap;h=878950bff28aff4a60b98016b9a3f664729d62a1;hb=ea32f987f9c72ad6990bfa326af2935f79bf580c;hp=8afe4a163639fcdffea591635445598260b7b9a4;hpb=fc6209f398899f0211cfcedeb81a3cd65e04a941;p=freeside.git diff --git a/rt/share/html/Elements/ColumnMap b/rt/share/html/Elements/ColumnMap index 8afe4a163..878950bff 100644 --- a/rt/share/html/Elements/ColumnMap +++ b/rt/share/html/Elements/ColumnMap @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -64,7 +64,7 @@ my $COLUMN_MAP = { Created => { attribute => 'Created', title => 'Created', # loc - value => sub { return $_[0]->CreatedObj->AsString } + value => sub { return $_[0]->CreatedObj }, }, CreatedRelative => { attribute => 'Created', @@ -72,14 +72,14 @@ my $COLUMN_MAP = { value => sub { return $_[0]->CreatedObj->AgeAsString } }, CreatedBy => { - attribute => 'CreatedBy', + attribute => 'Creator', title => 'Created By', # loc value => sub { return $_[0]->CreatorObj->Name } }, LastUpdated => { attribute => 'LastUpdated', title => 'Last Updated', # loc - value => sub { return $_[0]->LastUpdatedObj->AsString } + value => sub { return $_[0]->LastUpdatedObj }, }, LastUpdatedRelative => { attribute => 'LastUpdated', @@ -99,15 +99,31 @@ my $COLUMN_MAP = { # Display custom field contents, separated by newlines. # For Image custom fields we also show a thumbnail here. - my $values = $_[0]->CustomFieldValues( $_[-1] ); - my @values = map { - ( - ($_->CustomFieldObj->Type eq 'Image') - ? \($m->scomp( '/Elements/ShowCustomFieldImage', Object => $_ )) - : $_->Content - ), - \'
', - } @{ $values->ItemsArrayRef }; + my $object = shift; + my $cfname = pop; + my $values = $object->CustomFieldValues( $cfname ); + return if $values->Count == 0; + my @values; + # it is guaranteed to be the same type for all fields, right? + my $v = $values->First; + my $cftype = $v->CustomFieldObj->Type; + + do { + if ($cftype eq 'Image') { + push @values, + \($m->scomp( '/Elements/ShowCustomFieldImage', + Object => $v )); + } elsif ( $cftype eq 'Date' or $cftype eq 'DateTime' ) { + # then actually return the date object; + # ProcessColumnMapValue will stringify it + my $DateObj = RT::Date->new( $session{'CurrentUser'} ); + $DateObj->Set(Format => 'unknown', Value => $v->Content); + push @values, $DateObj; + } else { + push @values, $v->Content; + } + push @values, \'
'; # this is deeply silly + } while ($v = $values->Next); pop @values; # Remove that last
return @values; }, @@ -116,19 +132,21 @@ my $COLUMN_MAP = { CheckBox => { title => sub { my $name = $_[1] || 'SelectedTickets'; - my $checked = $m->request_args->{ $name .'All' }? 'checked="checked"': ''; + my $checked = $DECODED_ARGS->{ $name .'All' }? 'checked="checked"': ''; - return \qq{}; + return \qq{}; }, value => sub { my $id = $_[0]->id; my $name = $_[2] || 'SelectedTickets'; - return \qq{} - if $m->request_args->{ $name . 'All'}; + return \qq{} + if $DECODED_ARGS->{ $name . 'All'}; - my $arg = $m->request_args->{ $name }; + my $arg = $DECODED_ARGS->{ $name }; my $checked = ''; if ( $arg && ref $arg ) { $checked = 'checked="checked"' if grep $_ == $id, @$arg; @@ -136,7 +154,7 @@ my $COLUMN_MAP = { elsif ( $arg ) { $checked = 'checked="checked"' if $arg == $id; } - return \qq{} + return \qq{} }, }, RadioButton => { @@ -145,10 +163,10 @@ my $COLUMN_MAP = { my $id = $_[0]->id; my $name = $_[2] || 'SelectedTicket'; - my $arg = $m->request_args->{ $name }; + my $arg = $DECODED_ARGS->{ $name }; my $checked = ''; $checked = 'checked="checked"' if $arg && $arg == $id; - return \qq{}; + return \qq{}; }, }, (map {