Date:   Monday June 16, 2003 @ 8:59
Author: matt

Update of /home/cvs/AxKit-XSP-PerForm
In directory localhost:/home/matt/Perl/AxKit-XSP-PerForm

Modified Files:
        PerForm.pm 
Log Message:
Support multiple forms on one page better
Log:
PR:

Index: PerForm.pm
===================================================================
RCS file: /home/cvs/AxKit-XSP-PerForm/PerForm.pm,v
retrieving revision 1.17
retrieving revision 1.18
diff -b -u -r1.17 -r1.18
--- PerForm.pm  2003/05/23 14:04:11     1.17
+++ PerForm.pm  2003/06/16 07:59:13     1.18
@@ -1,4 +1,4 @@
-# $Id: PerForm.pm,v 1.17 2003/05/23 14:04:11 matt Exp $
+# $Id: PerForm.pm,v 1.18 2003/06/16 07:59:13 matt Exp $
 
 package AxKit::XSP::PerForm;
 
@@ -59,7 +59,7 @@
             Name => "hidden",
             NamespaceURI => "",
             Attributes => [
-                { Name => "name", Value => "__submitting" },
+                { Name => "name", Value => "__submitting_$attribs{name}" },
                 { Name => "value", Value => "1" },
             ],
         };
@@ -69,14 +69,14 @@
         return <<EOT
 {        
 use vars qw(\$_form_ctxt [EMAIL PROTECTED] \%_submit_goto \%_submit_index 
[EMAIL PROTECTED] \%_cancel_goto \%_cancel_index );
-local \$_form_ctxt = { Form => \$cgi->parms, Apache => \$r };
+local \$_form_ctxt = { Form => \$cgi->parms, Apache => \$r, Name => 
'$attribs{name}' };
 local [EMAIL PROTECTED];
 local [EMAIL PROTECTED];
 local \%_submit_goto;
 local \%_cancel_goto;
 local \%_submit_index;
 local \%_cancel_index;
-start_form_$attribs{name}(\$_form_ctxt, \$cgi->param('__submitting'))
+start_form_$attribs{name}(\$_form_ctxt, 
\$cgi->param('__submitting_$attribs{name}'))
           if defined \&start_form_$attribs{name};
 EOT
     }
@@ -119,12 +119,12 @@
         return <<EOT;
 my \$package = __PACKAGE__;
 if (my \$sub = \$package->can('$onformend' || 'end_form_$name')) {
-    \$sub->(\$_form_ctxt, \$cgi->param('__submitting'));
+    \$sub->(\$_form_ctxt, \$cgi->param('__submitting_$name'));
 }
 
-# warn("submitting? ".(\$cgi->param('__submitting')?"yes":"no").", failed? 
".(\$_form_ctxt->{_Failed}?"yes":"no"));
+# warn("submitting? ".(\$cgi->param('__submitting_$name')?"yes":"no").", 
failed? ".(\$_form_ctxt->{_Failed}?"yes":"no"));
 
-if (\$cgi->param('__submitting')) {
+if (\$cgi->param('__submitting_$name')) {
     foreach my \$cancel ([EMAIL PROTECTED]) {
         if (\$cgi->param(\$cancel)) {
             no strict 'refs';
@@ -140,7 +140,7 @@
     }
 }
 
-if (\$cgi->param('__submitting') && !\$_form_ctxt->{_Failed}) {
+if (\$cgi->param('__submitting_$name') && !\$_form_ctxt->{_Failed}) {
      foreach my \$submit ([EMAIL PROTECTED]) {
         if (\$cgi->param(\$submit)) {
             no strict 'refs';
@@ -174,11 +174,12 @@
     my $ctxt = ${"${package}::_form_ctxt"};
     
     my $params = $ctxt->{Form};
+    my $fname = $ctxt->{Name};
     
     my $error;
     
     # validate
-    if ($params->{'__submitting'}) {
+    if ($params->{"__submitting_$fname"}) {
         # warn("Checking if $package can " . ($onval || "validate_${name}") . 
"\n");
         if (my $sub = $package->can($onval || "validate_${name}")) {
             eval {
@@ -313,11 +314,12 @@
     my $ctxt = ${"${package}::_form_ctxt"};
     
     my $params = $ctxt->{Form};
+    my $fname = $ctxt->{Name};
     
     my $error;
     
     # validate
-    if ($params->{'__submitting'}) {
+    if ($params->{"__submitting_$fname"}) {
         if (my $sub = $package->can($onval || "validate_${name}")) {
             eval {
                 $sub->($ctxt, ($params->get($name.$index))[-1], $index);
@@ -366,11 +368,12 @@
     my $ctxt = ${"${package}::_form_ctxt"};
     
     my $params = $ctxt->{Form};
+    my $fname = $ctxt->{Name};
     
     my $error;
     
     # validate
-    if ($params->{'__submitting'}) {
+    if ($params->{"__submitting_$fname"}) {
         if (my $sub = $package->can($onval || "validate_${name}")) {
             my $upload = 
Apache::Request->instance(Apache->request)->upload($name);
             
@@ -425,13 +428,14 @@
     
     my $ctxt = ${"${package}::_form_ctxt"};
     my $params = $ctxt->{Form};
+    my $fname = $ctxt->{Name};
 
     if (!defined($value) && $package->can($onload || "load_${name}")) {
        # load value if not defined
         my $sub = $package->can($onload || "load_${name}");
        $value = $sub->($ctxt, $value, $index);
     }
-    if ($params->{'__submitting'} && ($value ne 
($params->get($name.$index))[-1])) {
+    if ($params->{"__submitting_$fname"} && ($value ne 
($params->get($name.$index))[-1])) {
        die "Someone tried to change your hidden form value!";
     }
 
@@ -453,12 +457,13 @@
     my $ctxt = ${"${package}::_form_ctxt"};
     
     my $params = $ctxt->{Form};
+    my $fname = $ctxt->{Name};
     
     my $error;
     my ($selected, @options);
     
     # validate
-    if ($params->{'__submitting'}) {
+    if ($params->{"__submitting_$fname"}) {
         if (my $sub = $package->can($onval || "validate_${name}")) {
             eval {
                 $sub->($ctxt, [$params->get($name.$index)], $index);
@@ -472,7 +477,7 @@
     elsif (my $sub = $package->can($onload || "load_${name}")) {
         ($selected, @options) = $sub->($ctxt, [$params->get($name.$index)], 
$default, $index);
     }
-    elsif (!$params->{'__submitting'}) {
+    elsif (!$params->{"__submitting_$fname"}) {
         $selected = [EMAIL PROTECTED];
         @options = map { $$_{name}, $$_{value} } @{$option};
     }
@@ -513,11 +518,12 @@
     my $ctxt = ${"${package}::_form_ctxt"};
     
     my $params = $ctxt->{Form};
+    my $fname = $ctxt->{Name};
     
     my $error;
     
     # validate
-    if ($params->{'__submitting'}) {
+    if ($params->{"__submitting_$fname"}) {
         if (my $sub = $package->can($onval || "validate_${name}")) {
             eval {
                 $sub->($ctxt, ($params->get($name.$index))[-1], $index);
@@ -572,12 +578,13 @@
     my $ctxt = ${"${package}::_form_ctxt"};
     
     my $params = $ctxt->{Form};
+    my $fname = $ctxt->{Name};
     
     my $error;
     my ($selected, @options);
     
     # validate
-    if ($params->{'__submitting'}) {
+    if ($params->{"__submitting_$fname"}) {
         if (my $sub = $package->can($onval || "validate_${name}")) {
             eval {
                 $sub->($ctxt, ($params->get($name.$index))[-1], $index);
@@ -592,7 +599,7 @@
     elsif (my $sub = $package->can($onload || "load_${name}")) {
         ($selected, @options) = $sub->($ctxt, 
($params->get($name.$index))[-1], $default, $index);
     }
-    elsif (!$params->{'__submitting'}) {
+    elsif (!$params->{"__submitting_$fname"}) {
         $selected = $default;
         @options = map { $$_{name}, $$_{value} } @{$option};
     }
@@ -632,11 +639,12 @@
     my $ctxt = ${"${package}::_form_ctxt"};
     
     my $params = $ctxt->{Form};
+    my $fname = $ctxt->{Name};
     
     my $error;
     
     # validate
-    if ($params->{'__submitting'}) {
+    if ($params->{"__submitting_$fname"}) {
         if (my $sub = $package->can($onval || "validate_${name}")) {
             eval {
                 $sub->($ctxt, ($params->get($name.$index))[-1], $index);

Reply via email to