[Jifty-commit] r3401 - in jifty/branches/fragcont: lib/Jifty/Plugin
share/web/static/js share/web/templates/__jifty/webservices
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Fri Jun 8 13:02:20 EDT 2007
Author: clkao
Date: Fri Jun 8 13:02:19 2007
New Revision: 3401
Modified:
jifty/branches/fragcont/lib/Jifty/Dispatcher.pm
jifty/branches/fragcont/lib/Jifty/Plugin/SinglePage.pm
jifty/branches/fragcont/share/web/static/js/jifty.js
jifty/branches/fragcont/share/web/templates/__jifty/webservices/xml
Log:
* If we are doing external redirect, supress fragment replacement.
* fix refresh_self in submit so on failed action response we get
__page refreshed that is like page reload.
Modified: jifty/branches/fragcont/lib/Jifty/Dispatcher.pm
==============================================================================
--- jifty/branches/fragcont/lib/Jifty/Dispatcher.pm (original)
+++ jifty/branches/fragcont/lib/Jifty/Dispatcher.pm Fri Jun 8 13:02:19 2007
@@ -736,7 +736,7 @@
$self->_abort;
}
-sub _abort { die "ABORT" }
+sub _abort { Carp::croak "ABORT" }
=head2 _do_show [PATH]
Modified: jifty/branches/fragcont/lib/Jifty/Plugin/SinglePage.pm
==============================================================================
--- jifty/branches/fragcont/lib/Jifty/Plugin/SinglePage.pm (original)
+++ jifty/branches/fragcont/lib/Jifty/Plugin/SinglePage.pm Fri Jun 8 13:02:19 2007
@@ -13,6 +13,13 @@
$self->region_name($opt{region_name} || '__page');
}
+sub _push_onclick {
+ my $self = shift;
+ my $args = shift;
+ $args->{onclick} = [ $args->{onclick} ] unless ref $args->{onclick} eq 'ARRAY';
+ push @{$args->{onclick}}, @_ if @_;
+}
+
sub _sp_link {
my $self = shift;
return sub {
@@ -23,27 +30,30 @@
# XXX mind the existing onclick
warn 'ooops got original onclick' . Dumper( $args->{onclick} )
if $args->{onclick};
- $args->{onclick} = {
+ $self->_push_onclick($args, {
region => $self->region_name,
replace_with => $url,
- args => delete $args->{parameters},
- };
+ args => delete $args->{parameters}});
}
- elsif (exists $args->{submit}) {
- $args->{onclick} = { submit => delete $args->{submit} };
- $args->{refresh_self} = 1;
+ elsif (exists $args->{submit}) {
+ use Data::Dumper;
+# warn Dumper($args);
+ $self->_push_onclick($args, { refresh_self => 1, submit => delete $args->{submit} });
$args->{as_button} = 1;
}
- if (my $form = delete $args->{_form}) {
+ if (my $form = delete $args->{_form}) {
$args->{call} = $form->call;
}
my $onclick = $args->{onclick};
- if ( ref($onclick) eq 'HASH' ) {
- if ( $onclick->{region} && !ref( $onclick->{region} ) ) {
- my $region = $self->region_name;
- $onclick->{region}
- = $region . '-' . $onclick->{region}
- unless $onclick->{region} eq $region or $onclick->{region} =~ m/^\Q$region\E-/;
+ if ( $args->{onclick} ) {
+ $self->_push_onclick($args); # make sure it's array
+ for my $onclick ( @{ $args->{onclick} } ) {
+ if ( $onclick->{region} && !ref( $onclick->{region} ) ) {
+ my $region = $self->region_name;
+ $onclick->{region} = $region . '-' . $onclick->{region}
+ unless $onclick->{region} eq $region
+ or $onclick->{region} =~ m/^\Q$region\E-/;
+ }
}
}
}
Modified: jifty/branches/fragcont/share/web/static/js/jifty.js
==============================================================================
--- jifty/branches/fragcont/share/web/static/js/jifty.js (original)
+++ jifty/branches/fragcont/share/web/static/js/jifty.js Fri Jun 8 13:02:19 2007
@@ -831,7 +831,6 @@
redirect != null;
redirect = redirect.nextSibling) {
if (redirect.nodeName == 'redirect') {
- alert(redirect.getAttribute("url"));
document.location = redirect.getAttribute("url");
}
}
Modified: jifty/branches/fragcont/share/web/templates/__jifty/webservices/xml
==============================================================================
--- jifty/branches/fragcont/share/web/templates/__jifty/webservices/xml (original)
+++ jifty/branches/fragcont/share/web/templates/__jifty/webservices/xml Fri Jun 8 13:02:19 2007
@@ -4,6 +4,12 @@
$writer->xmlDecl( "UTF-8", "yes" );
$writer->startTag("response");
+if (my $ext = Jifty->web->request->argument('_webservice_external_redirect')) {
+ $writer->startTag("redirect", url => $ext);
+ $writer->endTag();
+}
+else {
+
FRAGMENT:
for my $f ( Jifty->web->request->fragments ) {
# Set up the region stack
@@ -50,6 +56,8 @@
Jifty->web->current_region->exit while Jifty->web->current_region;
}
+}
+
my %results = Jifty->web->response->results;
for (keys %results) {
$writer->startTag("result", moniker => $_, class => $results{$_}->action_class);
@@ -106,11 +114,6 @@
$writer->endTag();
}
-if (my $ext = Jifty->web->request->argument('_webservice_external_redirect')) {
- $writer->startTag("redirect", url => $ext);
- $writer->endTag();
-}
-
$writer->endTag();
$r->content_type('text/xml; charset=utf-8');
Jifty->web->out($output);
More information about the Jifty-commit
mailing list