]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/Model/CDBI.pm
making Untainting less awful
[maypole.git] / lib / Maypole / Model / CDBI.pm
index 5013d4ff54063f9d07f4617f5336f0f3d157cd89..32f36b909ea174c37f4f6af9e1a61bbde0288450 100644 (file)
@@ -77,7 +77,25 @@ sub do_edit : Exported {
   if (%errors) {
     # Set it up as it was:
     $r->template_args->{cgi_params} = $r->params;
-    $r->template_args->{errors}     = \%errors;
+
+    #
+    # replace user unfriendly error messages with something nicer
+
+    foreach (@{$config->{$table}->{required_cols}}) {
+      next unless ($errors{$_});
+      my $key = $_;
+      s/_/ /g;
+      $r->template_args->{errors}{ucfirst($_)} = 'This field is required, please provide a valid value';
+      $r->template_args->{errors}{$key} = 'This field is required, please provide a valid value';
+      delete $errors{$key};
+    }
+
+    foreach (keys %errors) {
+      my $key = $_;
+      s/_/ /g;
+      $r->template_args->{errors}{ucfirst($_)} = 'Please provide a valid value for this field';
+      $r->template_args->{errors}{$key} = 'Please provide a valid value for this field';
+    }
 
     undef $obj if $creating;
     $r->template("edit");
@@ -102,7 +120,9 @@ sub _do_update_or_create {
     eval { $obj->update_from_cgi( $h => {
                                         required => $required_cols,
                                         ignore => $ignored_cols,
-                                       } ) };
+                                       } );
+          $obj->update(); # pos fix for bug 17132 'autoupdate required by do_edit'
+        };
     $fatal = $@;
   } else {
     eval {