[Rt-commit] r2509 - in rt/branches/3.4-RELEASE: . lib/RT

jesse at bestpractical.com jesse at bestpractical.com
Sun Mar 27 00:19:20 EST 2005


Author: jesse
Date: Sun Mar 27 00:19:20 2005
New Revision: 2509

Modified:
   rt/branches/3.4-RELEASE/   (props changed)
   rt/branches/3.4-RELEASE/lib/RT/Record.pm
Log:
 r10204 at hualien:  jesse | 2005-03-27 13:08:01 +0800
 * Improved generic messages returned by RT::Record->_Set()
 * Corrected RT::Record->_Set to return a Class::ReturnValue, rather than butchering it
   into an array. (This means that RT::Ticket->SetPriority can now be evaluated in boolean
   or list context, like it was supposed to be)


Modified: rt/branches/3.4-RELEASE/lib/RT/Record.pm
==============================================================================
--- rt/branches/3.4-RELEASE/lib/RT/Record.pm	(original)
+++ rt/branches/3.4-RELEASE/lib/RT/Record.pm	Sun Mar 27 00:19:20 2005
@@ -474,12 +474,32 @@
         $args{'Value'} = 0;
     }
 
-    $self->_SetLastUpdated();
-    my ( $val, $msg ) = $self->SUPER::_Set(
+    my $old_val = $self->__Value($args{'Field'});
+     $self->_SetLastUpdated();
+    my $ret = $self->SUPER::_Set(
         Field => $args{'Field'},
         Value => $args{'Value'},
         IsSQL => $args{'IsSQL'}
     );
+    # $ret is a Class::ReturnValue object. as such, in a boolean context, it's a bool
+    # we want to change the standard "success" message
+    if ($ret) {
+        my @values = $ret->as_array;
+        # @values has two values, a status code and a message.
+        pop @values;
+        push @values,
+          $self->loc(
+            "[_1] changed from [_2] to [_3]",
+            $args{'Field'},
+            ( $old_val ? "'$old_val'" : $self->loc("(no value)") ),
+            '"' . $self->__Value( $args{'Field'} . '"' )
+          );
+
+        $ret->as_array(@values);     
+    }
+
+    return ($ret);
+
 }
 
 # }}}
@@ -873,9 +893,13 @@
         my ( $code, $msg ) = $self->$method($value);
 
         my ($prefix) = ref($self) =~ /RT::(\w+)/;
+
+        # Default to $id, but use name if we can get it.
+        my $label = $self->id;
+        $label = $self->Name if (UNIVERSAL::can($self,'Name'));
+
         push @results,
-          $self->loc( "$prefix [_1]", $self->id ) . ': '
-          . $self->loc($attribute) . ': '
+          $self->loc( "$prefix [_1]", $label ) . ': '
           . $self->CurrentUser->loc_fuzzy($msg);
 
 =for loc
@@ -1014,10 +1038,12 @@
 
 my ($rid, $rmsg)= $t1->Resolve();
 ok(!$rid, $rmsg);
-ok($t2->Resolve);
+my ($rid2, $rmsg2) = $t2->Resolve();
+ok ($rid2, $rmsg2);
 ($rid, $rmsg)= $t1->Resolve();
 ok(!$rid, $rmsg);
-ok($t3->Resolve);
+my ($rid3,$rmsg3) = $t3->Resolve;
+ok ($rid3,$rmsg3);
 ($rid, $rmsg)= $t1->Resolve();
 ok($rid, $rmsg);
 


More information about the Rt-commit mailing list