undef fixes
matthewt [Fri, 29 Feb 2008 21:05:58 +0000 (21:05 +0000)]
lib/Reaction/InterfaceModel/Action/DBIC/Result/Update.pm
lib/Reaction/Meta/InterfaceModel/Action/ParameterAttribute.pm
lib/Reaction/UI/ViewPort.pm
lib/Reaction/UI/ViewPort/Field.pm

index 2a822e6..59591ad 100644 (file)
@@ -19,7 +19,7 @@ class Update is 'Reaction::InterfaceModel::Action', which {
       my $tm_attr = $tm->meta->find_attribute_by_name($name);
       next unless ref $tm_attr;
       my $tm_reader = $tm_attr->get_read_method;
-      $self->$writer($tm->$tm_reader);
+      $self->$writer($tm->$tm_reader) if defined($tm->$tm_reader);
     }
   };
 
index 4bef225..b838444 100644 (file)
@@ -32,6 +32,7 @@ class ParameterAttribute is 'Reaction::Meta::Attribute', which {
 
   implements _check_single_valid => as {
     my ($self, $valid, $value) = @_;
+    return undef unless defined($value);
     if (ref $valid eq 'ARRAY') {
       return $value if grep { $_ eq $value } @$valid;
     } else {
index 5a18f50..0e9cbb2 100644 (file)
@@ -9,6 +9,7 @@ class ViewPort which {
 
   has location => (isa => 'Str', is => 'rw', required => 1);
   has layout => (isa => 'Str', is => 'rw', lazy_build => 1);
+  has layout_args => (isa => 'HashRef', is => 'ro', default => sub { {} });
   has outer => (isa => 'Reaction::UI::ViewPort', is => 'rw', weak_ref => 1);
   has inner => (isa => 'Reaction::UI::ViewPort', is => 'rw');
   has focus_stack => (
index f6da895..3b8c641 100644 (file)
@@ -46,7 +46,7 @@ class Field is 'Reaction::UI::ViewPort', which {
     # the model and DBIC can have nullable fields and DBIC doesn't
     # have a way to tell us that doesn't force value inflation (extra
     # SELECTs for belongs_to) so basically we're screwed.
-    return ($self->_model_has_value && defined($self->value)
+    return ($self->_model_has_value && defined($self->_build_value)
               ? $self->_value_string_from_value
               : $self->_empty_string_value);
   };