[Jifty-commit] r3392 - in jifty/branches/fragcont/lib/Jifty:
Plugin/SinglePage
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Thu Jun 7 19:20:53 EDT 2007
Author: clkao
Date: Thu Jun 7 19:20:53 2007
New Revision: 3392
Added:
jifty/branches/fragcont/lib/Jifty/Plugin/SinglePage/
jifty/branches/fragcont/lib/Jifty/Plugin/SinglePage/Dispatcher.pm
Modified:
jifty/branches/fragcont/lib/Jifty/Web.pm
Log:
ditto for other implicit __page fragment to ignore region state.
Added: jifty/branches/fragcont/lib/Jifty/Plugin/SinglePage/Dispatcher.pm
==============================================================================
--- (empty file)
+++ jifty/branches/fragcont/lib/Jifty/Plugin/SinglePage/Dispatcher.pm Thu Jun 7 19:20:53 2007
@@ -0,0 +1,31 @@
+package Jifty::Plugin::SinglePage::Dispatcher;
+use strict;
+use warnings;
+use Jifty::Dispatcher -base;
+
+before '__jifty/webservices/*' => run {
+ my (@actions) = grep { $_->class eq 'Jifty::Action::Redirect' } values %{ Jifty->web->request->{'actions'} };
+ $_->active(0) for @actions;
+
+ # XXX: shouldn't have multiple redirect
+ # Simply ignore Redirect from webservice if we are not in SPA
+ set '_webservice_redirect' => \@actions
+ if Jifty->find_plugin('Jifty::Plugin::SinglePage');
+
+};
+
+on qr{(__jifty/webservices/.*)} => run {
+ my $actions = get '_webservice_redirect';
+ Jifty->web->request->remove_state_variable('region-__page');
+ for my $act (@$actions) {
+ Jifty->web->request->add_fragment(
+ name => '__page',
+ path => $act->arguments->{url},
+ arguments => {},
+ wrapper => 0
+ );
+ }
+ show $1;
+};
+
+1;
Modified: jifty/branches/fragcont/lib/Jifty/Web.pm
==============================================================================
--- jifty/branches/fragcont/lib/Jifty/Web.pm (original)
+++ jifty/branches/fragcont/lib/Jifty/Web.pm Thu Jun 7 19:20:53 2007
@@ -331,6 +331,7 @@
}
if ($self->request->continuation_path && Jifty->web->request->argument('_webservice_redirect')) {
# for continuation - perform internal redirect under webservices
+ Jifty->web->request->remove_state_variable('region-__page');
Jifty->web->request->add_fragment(
name => '__page',
path => $self->request->continuation_path,
More information about the Jifty-commit
mailing list