[Jifty-commit] r3975 - in jifty/trunk: lib/Jifty/Plugin

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Fri Aug 24 17:48:21 EDT 2007


Author: clkao
Date: Fri Aug 24 17:48:21 2007
New Revision: 3975

Modified:
   jifty/trunk/lib/Jifty/Plugin/SinglePage.pm
   jifty/trunk/share/web/static/js/jifty.js

Log:
Make spa support "normal" form_submit of a form with submit_to
that has no action.


Modified: jifty/trunk/lib/Jifty/Plugin/SinglePage.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/SinglePage.pm	(original)
+++ jifty/trunk/lib/Jifty/Plugin/SinglePage.pm	Fri Aug 24 17:48:21 2007
@@ -47,7 +47,14 @@
                 args         => $args->{parameters}});
         }
         elsif (exists $args->{submit}) {
-            $self->_push_onclick($args, { refresh_self => 1, submit => $args->{submit} });
+	    if (!defined $args->{submit} && $args->{_form} &&
+		!keys %{$args->{_form}{actions}} && exists $args->{_form}{submit_to}) {
+		my $to = $args->{_form}{submit_to};
+		$self->_push_onclick($args, { beforeclick => qq{return _sp_submit_form(this, event, "$to")} });
+	    }
+	    else {
+		$self->_push_onclick($args, { refresh_self => 1, submit => $args->{submit} });
+	    }
             $args->{as_button} = 1;
         }
         if (my $form = delete $args->{_form}) {

Modified: jifty/trunk/share/web/static/js/jifty.js
==============================================================================
--- jifty/trunk/share/web/static/js/jifty.js	(original)
+++ jifty/trunk/share/web/static/js/jifty.js	Fri Aug 24 17:48:21 2007
@@ -1489,3 +1489,15 @@
         return true;
     }
 }
+
+function _sp_submit_form(elt, event, submit_to) {
+    var form = Form.Element.getForm(elt);
+    var elements = Form.getElements(form);
+
+    var args = {};
+    for (var i = 0; i < elements.length; i++)
+	args[elements[i].name] = $F(elements[i]);
+
+    if(event.ctrlKey||event.metaKey||event.altKey||event.shiftKey) return true;
+    return update( {'continuation':{},'actions':null,'fragments':[{'mode':'Replace','args':args,'region':'__page','path': submit_to}]}, elt );
+}


More information about the Jifty-commit mailing list