[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