From 7723d728eae5cdae04fcf836577d950194dc60bb Mon Sep 17 00:00:00 2001 From: hylom Date: Mon, 20 Feb 2017 21:00:44 +0900 Subject: [PATCH] Web: implement /~user/{friends|foes|fans|freaks} --- src/newslash_web/lib/Newslash/Web.pm | 3 ++ .../lib/Newslash/Web/Controller/User.pm | 33 +++++++++++++++++++++- src/newslash_web/templates/user/base.html.tt2 | 14 +++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/newslash_web/lib/Newslash/Web.pm b/src/newslash_web/lib/Newslash/Web.pm index d1212e3c..05806ead 100644 --- a/src/newslash_web/lib/Newslash/Web.pm +++ b/src/newslash_web/lib/Newslash/Web.pm @@ -136,6 +136,9 @@ sub startup { $user->get('/comments' => [nickname => qr/~.*/])->to('user#comments'); $user->get('/submissions' => [nickname => qr/~.*/])->to('user#submissions'); $user->get('/friends' => [nickname => qr/~.*/])->to('user#friends'); + $user->get('/foes' => [nickname => qr/~.*/])->to('user#foes'); + $user->get('/fans' => [nickname => qr/~.*/])->to('user#fans'); + $user->get('/freaks' => [nickname => qr/~.*/])->to('user#freaks'); $user->get('/achievements' => [nickname => qr/~.*/])->to('user#achievements'); #$r->get('/:user_name/journal' => [user_name => qr/~.*/])->to('journal#user_journals'); diff --git a/src/newslash_web/lib/Newslash/Web/Controller/User.pm b/src/newslash_web/lib/Newslash/Web/Controller/User.pm index eaa54438..b0058e54 100644 --- a/src/newslash_web/lib/Newslash/Web/Controller/User.pm +++ b/src/newslash_web/lib/Newslash/Web/Controller/User.pm @@ -20,6 +20,7 @@ sub _base_render { } $the_user->{config} = $users->select(target => 'config', uid => $the_user->{uid}); my $items = $f->($c, $the_user); + $c->render(template => "user/base", user_tab => $tab, items => $items, the_user => $the_user); } @@ -67,12 +68,42 @@ sub friends { my $c = shift; my $query_func = sub { my ($c, $the_user) = @_; - my $items = $c->model('timeline')->select(uid => $the_user->{uid}, type => "friends", limit => 10); + my $items = $c->model('users')->friends(uid => $the_user->{uid}); return $items; }; $c->_base_render(friends => $query_func); } +sub foes { + my $c = shift; + my $query_func = sub { + my ($c, $the_user) = @_; + my $items = $c->model('users')->foes(uid => $the_user->{uid}); + return $items; + }; + $c->_base_render(foes => $query_func); +} + +sub fans { + my $c = shift; + my $query_func = sub { + my ($c, $the_user) = @_; + my $items = $c->model('users')->fans(uid => $the_user->{uid}); + return $items; + }; + $c->_base_render(fans => $query_func); +} + +sub freaks { + my $c = shift; + my $query_func = sub { + my ($c, $the_user) = @_; + my $items = $c->model('users')->freaks(uid => $the_user->{uid}); + return $items; + }; + $c->_base_render(freaks => $query_func); +} + sub achievements { } diff --git a/src/newslash_web/templates/user/base.html.tt2 b/src/newslash_web/templates/user/base.html.tt2 index 159f75e6..451d5d4b 100644 --- a/src/newslash_web/templates/user/base.html.tt2 +++ b/src/newslash_web/templates/user/base.html.tt2 @@ -20,16 +20,30 @@ 日記 タレコミ トモダチ + テキ + ファン + アンチ 功績 + [%- SWITCH user_tab %] + [%- CASE ['friends', 'foes', 'fans', 'freaks' ] -%] +
+
    + [%- FOREACH item IN items -%] +
  • [% item.nickname %]([% item.uid %])
  • + [%- END -%] +
+
+ [%- CASE DEFAULT -%]
[%- FOREACH item IN items -%] [%- INCLUDE timeline/item %] [%- END -%]
+ [%- END -%]