From 79c4be4f46a9c1c830a4b098ef1e0fdce4bb457b Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Fri, 29 Oct 2010 21:20:39 +0200 Subject: [PATCH] use return $self->redirect_to all over the place this fixes redirections in newer Mojolicious and is more exact --- Makefile.PL | 2 +- lib/MojoFacets/Changes.pm | 5 ++--- lib/MojoFacets/Code.pm | 4 ++-- lib/MojoFacets/Data.pm | 37 ++++++++++++++++++------------------- lib/MojoFacets/Gnuplot.pm | 6 +++--- lib/MojoFacets/Profile.pm | 4 ++-- 6 files changed, 28 insertions(+), 30 deletions(-) diff --git a/Makefile.PL b/Makefile.PL index cecf29f..8a56459 100755 --- a/Makefile.PL +++ b/Makefile.PL @@ -5,7 +5,7 @@ version_from 'lib/MojoFacets.pm'; author 'Dobrica Pavlinusic '; license 'dual'; -requires 'Mojolicious' => '0.9003'; +requires 'Mojolicious' => '0.999931'; requires 'Data::Dump'; requires 'File::Slurp'; requires 'JSON'; diff --git a/lib/MojoFacets/Changes.pm b/lib/MojoFacets/Changes.pm index 8f3e344..36c8a3c 100644 --- a/lib/MojoFacets/Changes.pm +++ b/lib/MojoFacets/Changes.pm @@ -26,8 +26,7 @@ sub index { $items = $MojoFacets::Data::loaded->{$on_path}->{data}->{items}; if ( ! $items ) { warn "$on_path not loaded"; - $self->redirect_to('/data/index?path=' . $on_path); - return; + return $self->redirect_to('/data/index?path=' . $on_path); } warn "using ", $#$items + 1, " items from $on_path\n"; } @@ -119,7 +118,7 @@ sub remove { unlink $self->_changes_path . '/' . $t; } - $self->redirect_to('/changes'); + return $self->redirect_to('/changes'); } 1; diff --git a/lib/MojoFacets/Code.pm b/lib/MojoFacets/Code.pm index 703008d..352fb97 100644 --- a/lib/MojoFacets/Code.pm +++ b/lib/MojoFacets/Code.pm @@ -13,7 +13,7 @@ sub _code_dir { $_[0]->app->home->rel_dir('public') . '/code' } sub index { my $self = shift; - $self->redirect_to('/data/columns') unless $self->session('columns'); + return $self->redirect_to('/data/columns') unless $self->session('columns'); my $columns = { map { $_ => 1 } @{ $self->session('columns') } }; if ( $self->param('all_columns') ) { @@ -49,7 +49,7 @@ sub remove { if ( my $path = $self->param('path') ) { unlink $self->_code_dir . '/' . $path; } - $self->redirect_to('/code'); + return $self->redirect_to('/code'); } 1; diff --git a/lib/MojoFacets/Data.pm b/lib/MojoFacets/Data.pm index 97d442d..a2af340 100644 --- a/lib/MojoFacets/Data.pm +++ b/lib/MojoFacets/Data.pm @@ -161,7 +161,7 @@ sub stats { my $path = $self->_param_or_session('path'); warn "stats $path\n"; delete $loaded->{$path}->{stats}; - $self->redirect_to( '/data/columns' ); + return $self->redirect_to( '/data/columns' ); } @@ -171,7 +171,7 @@ sub _load_path { return if defined $loaded->{$path}->{generated}; my $full_path = $self->app->home->rel_file( 'data/' . $path ); - $self->redirect_to('/data/index') unless -r $full_path; + return $self->redirect_to('/data/index') unless -r $full_path; my $dump_path = $self->_dump_path( $path ); @@ -248,7 +248,7 @@ sub _load_path { sub load { my $self = shift; - my $path = $self->param('path') || $self->redirect_to( '/data/index' ); + my $path = $self->param('path') || return $self->redirect_to( '/data/index' ); my @paths = $self->param('paths'); warn "# paths ", dump @paths; @@ -283,14 +283,14 @@ sub load { } $self->session( 'columns' => $loaded->{$path}->{columns} ); $self->session( 'order' => $loaded->{$path}->{columns}->[0] ); - $self->redirect_to( $redirect_to ); + return $self->redirect_to( $redirect_to ); } sub _loaded { my ( $self, $name ) = @_; my $path = $self->session('path') || $self->param('path'); - $self->redirect_to('/data/index') unless $path; + return $self->redirect_to('/data/index') unless $path; if ( defined $loaded->{$path}->{modified} && $loaded->{$path}->{modified} > 1 ) { my $caller = (caller(1))[3]; @@ -319,7 +319,7 @@ sub _loaded { } if ( ! defined $loaded->{$path}->{$name} ) { warn "MISSING $name for $path\n"; - $self->redirect_to('/data/index') + return $self->redirect_to('/data/index') } } @@ -399,7 +399,7 @@ sub columns { warn "view $view_path/$view ", -s "$view_path/$view", " bytes\n"; } - $self->redirect_to('/data/items'); + return $self->redirect_to('/data/items'); } if ( my $id = $self->param('id') ) { @@ -408,7 +408,7 @@ sub columns { my @columns = map { chomp; $_ } read_file $view_full, binmode => ':utf8'; warn "view $view_full loaded ", dump @columns; $self->session( 'columns' => [ @columns ] ); - $self->redirect_to('/data/items'); + return $self->redirect_to('/data/items'); } } @@ -495,7 +495,7 @@ sub filter { $self->session( 'offset' => 0 ); - $self->redirect_to('/data/items'); + return $self->redirect_to('/data/items'); } sub _filter_on_data { @@ -631,7 +631,7 @@ sub items { my $path = $self->_param_scalar('path'); my @columns = $self->_param_array('columns'); - $self->redirect_to('/data/columns') unless @columns; + return $self->redirect_to('/data/columns') unless @columns; my $order = $self->_param_scalar('order', $columns[0]); my $sort = $self->_param_scalar('sort', 'a'); my $offset = $self->_param_scalar('offset', 0); @@ -806,8 +806,7 @@ sub items { $self->session('path', $commit_dataset); $self->session('columns', [ @columns ]); $self->session('order', $key); - $self->redirect_to('/data/items'); - return; # FIXME needed to correctly show columns + return $self->redirect_to('/data/items'); } $self->session('columns', [ @columns ]); @@ -911,7 +910,7 @@ sub order { my $self = shift; $self->session('order', $self->param('order')); $self->session('sort', $self->param('sort')); - $self->redirect_to('/data/items'); + return $self->redirect_to('/data/items'); } sub _is_numeric { @@ -954,11 +953,11 @@ sub _remove_filter { sub facet { my $self = shift; - my $path = $self->session('path') || $self->redirect_to( '/data/index' ); + my $path = $self->session('path') || return $self->redirect_to( '/data/index' ); if ( my $name = $self->param('remove') ) { $self->_remove_filter( $name ); - $self->redirect_to( '/data/items' ); + return $self->redirect_to( '/data/items' ); } my $facet; @@ -1159,7 +1158,7 @@ sub save { my $dump_path = $self->_save( $path ); __path_modified( $path, 0 ); - $self->redirect_to( '/data/items' ); + return $self->redirect_to( '/data/items' ); } sub export { @@ -1178,7 +1177,7 @@ sub export { $self->_remove_filter( $name ); $self->_filter_on_data( $name, @vals ); $self->session( 'offset' => 0 ); - $self->redirect_to('/data/items'); + return $self->redirect_to('/data/items'); } else { warn "UNKNOWN IMPORT $import"; } @@ -1191,7 +1190,7 @@ sub export { unlink $path if -e $path; } - my $path = $self->_export_path || $self->redirect_to('/data/index'); + my $path = $self->_export_path || return $self->redirect_to('/data/index'); my @files = grep { ! /\.png$/ } glob "$path/*"; my $mtime = { map { $_ => (stat($_))[9] } @files }; @@ -1214,7 +1213,7 @@ sub unlink { } else { warn "WARNING: $path unlink ignored"; } - $self->redirect_to( '/data/load' ); + return $self->redirect_to( '/data/load' ); } 1; diff --git a/lib/MojoFacets/Gnuplot.pm b/lib/MojoFacets/Gnuplot.pm index 013ad45..5040e7c 100644 --- a/lib/MojoFacets/Gnuplot.pm +++ b/lib/MojoFacets/Gnuplot.pm @@ -12,8 +12,8 @@ use Text::Unaccent::PurePerl; sub index { my $self = shift; - my $columns = $self->session('columns') || $self->redirect_to('/data/columns'); - my $path = $self->session('path') || $self->redirect_to('/data/load'); + my $columns = $self->session('columns') || return $self->redirect_to('/data/columns'); + my $path = $self->session('path') || return $self->redirect_to('/data/load'); # my $name = join('.', 'items', map { my $n = unac_string($_); $n =~ s/\W+/_/g; $n } @$columns ); my $name = MojoFacets::Data::__export_path_name( $path, 'items', @$columns ); @@ -61,7 +61,7 @@ warn "gnuplot $g"; if ( -e "$dir/$url.png" ) { warn "redirect $url.png"; - $self->redirect_to( "$url.png" ); + return $self->redirect_to( "$url.png" ); } else { $self->render_text( "no $dir/$url.png" ); } diff --git a/lib/MojoFacets/Profile.pm b/lib/MojoFacets/Profile.pm index c28e2c5..3f1fdd2 100644 --- a/lib/MojoFacets/Profile.pm +++ b/lib/MojoFacets/Profile.pm @@ -21,7 +21,7 @@ warn "XXX profile $profile\n"; system "nytprofhtml --file $path$profile --out $dir"; $self->stash( 'nytprof.disabled' => 1 ); } - $self->redirect_to("/profile/$profile/index.html"); + return $self->redirect_to("/profile/$profile/index.html"); } @@ -38,7 +38,7 @@ sub remove { rmtree $self->app->home->rel_dir('public') . "/profile/$profile"; } - $self->redirect_to('/profile'); + return $self->redirect_to('/profile'); } 1 -- 2.20.1