[Jifty-commit] r2461 - in jifty/trunk: lib/Jifty

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Fri Jan 5 00:30:32 EST 2007


Author: trs
Date: Fri Jan  5 00:30:29 2007
New Revision: 2461

Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/lib/Jifty/Action.pm

Log:
 r18665 at zot:  tom | 2007-01-04 23:50:32 -0500
 Only emit mandatory field warnings with Ajax when the field starts with data.


Modified: jifty/trunk/lib/Jifty/Action.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Action.pm	(original)
+++ jifty/trunk/lib/Jifty/Action.pm	Fri Jan  5 00:30:29 2007
@@ -854,11 +854,10 @@
 
     my $value = $self->argument_value($field);
 
-    if ( !defined $value || !length $value ) {
-
-        if ( $field_info->{mandatory} ) {
-            return $self->validation_error( $field => _("You need to fill in this field") );
-        }
+    if (    $field_info->{mandatory}
+        and $self->_is_argument_value_deleted($field) )
+    {
+        return $self->validation_error( $field => _("You need to fill in this field") );
     }
 
     # If we have a set of allowed values, let's check that out.
@@ -895,6 +894,31 @@
     }
 }
 
+sub _is_argument_value_deleted {
+    my $self  = shift;
+    my $field = shift;
+
+    my $value = $self->argument_value($field);
+
+    my $field_info = $self->arguments->{$field};
+    return unless $field_info;
+
+    my $default_value;
+    $default_value = $field_info->{'default_value'}
+      if exists $field_info->{'default_value'};
+    $default_value = $value
+      if $self->has_argument($field) && $value && !$self->values_from_request->{$field};
+
+    if ( not defined $value or not length $value ) {
+        if (   ( defined $default_value && $value ne $default_value )
+            || ( Jifty->web->request->path !~ m{^/__jifty/validator\.xml} ) )
+        {
+            return 1;
+        }
+    }
+    return 0;
+}
+
 =head2 _autocomplete_argument ARGUMENT
 
 Get back a list of possible completions for C<ARGUMENT>.  The list


More information about the Jifty-commit mailing list