summary refs log tree commit diff
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2009-04-05 17:34:44 +0200
committerfranck cuny <franck@lumberjaph.net>2009-04-05 17:34:44 +0200
commit5f260b1a1e65d4fabaa6fbd23ee61ec1aeaeef2d (patch)
tree364dbbfdb8fecf4ee11e633ec8e6f63d985b0ab0
parentpermalink to old clouds (diff)
downloadintention-cloud-5f260b1a1e65d4fabaa6fbd23ee61ec1aeaeef2d.tar.gz
3 lasts clouds, set lang, store last template in session
-rw-r--r--lib/intentioncloud/Controller/Root.pm25
1 files changed, 22 insertions, 3 deletions
diff --git a/lib/intentioncloud/Controller/Root.pm b/lib/intentioncloud/Controller/Root.pm
index dda0092..0fea5f9 100644
--- a/lib/intentioncloud/Controller/Root.pm
+++ b/lib/intentioncloud/Controller/Root.pm
@@ -29,13 +29,32 @@ sub how : Local {
 sub index : Local {
     my ( $self, $c ) = @_;
     $c->stash->{ template } = 'cloud/search.tt';
-    $c->stash( last_clouds =>
-            [ $c->model( 'DB::Search' )->search()->slice( 0, 2 ) ] );
+    $c->stash(
+        last_clouds => [ $c->model( 'DB::Search' )->search()->slice( 0, 2 ) ]
+    );
+}
+
+sub lang : Regex('^lang/(\w{2})$') {
+    my ( $self, $c ) = @_;
+
+    my $lang = $c->req->captures->[ 0 ];
+    $c->languages( $lang );
+    $c->session->{ lang } = $lang;
+    if ( $c->session->{ referer } ) {
+        $c->stash->{ template } = $c->session->{ referer };
+    } else {
+
+        $c->forward( '/index' );
+    }
 }
 
 sub end : ActionClass('RenderView') {
     my ( $self, $c ) = @_;
-    $c->forward('intentioncloud::View::TT');
+    $c->session->{referer} = $c->stash->{template};
+    if (defined $c->session->{'lang'}){
+        $c->languages( [ $c->session->{'lang'} ]);
+    }
+    $c->forward( 'intentioncloud::View::TT' );
 }
 
 1;