added follower/following pages

This commit is contained in:
nilsding 2014-12-08 17:03:06 +01:00
parent 2caf81d08e
commit 30c8654a27
7 changed files with 110 additions and 40 deletions

View File

@ -20,4 +20,18 @@ class UserController < ApplicationController
end
redirect_to edit_user_profile_path
end
def followers
@title = 'Followers'
@user = User.find_by_screen_name!(params[:username])
@users = @user.followers.paginate(page: params[:page])
render 'show_follow'
end
def following
@title = 'Following'
@user = User.find_by_screen_name!(params[:username])
@users = @user.followers.paginate(page: params[:page])
render 'show_follow'
end
end

View File

@ -0,0 +1,26 @@
/ TODO: pixeldesu pls
.panel.panel-default
.panel-body
.media
.pull-left
%img.img-rounded.img-profile{src: gravatar_url(user)}
.media-body
- if user.display_name.blank?
%h2= user.screen_name
- else
%h2.user-displayname= user.display_name
%h4.text-muted.user-username= user.screen_name
- if user.admin?
%p.user-admin
%i.fa.fa-flask
Admin
- unless user.bio.blank?
%p.user-profiletext= user.bio
.row
.col-md-6.col-sm-6.col-xs-6
%h4.entry-text#asked-count= user.asked_count
%h6.entry-subtext Questions
.col-md-6.col-sm-6.col-xs-6
%h4.entry-text#answered-count= user.answered_count
%h6.entry-subtext Answers
= render 'user/actions'

View File

@ -0,0 +1,40 @@
.panel.panel-default
.panel-body
.media
.pull-left
%img.img-rounded.img-profile{src: gravatar_url(@user)}
.media-body
- if @user.display_name.blank?
%h2= @user.screen_name
- else
%h2.user-displayname= @user.display_name
%h4.text-muted.user-username= @user.screen_name
- if @user.admin?
%p.user-admin
%i.fa.fa-flask
Admin
- unless @user.bio.blank?
%p.user-profiletext= @user.bio
- unless @user.website.blank?
%p.user-profiletext
%i.fa.fa-globe
%a{href: @user.website}= @user.display_website
- unless @user.location.blank?
%p.user-profiletext
%i.fa.fa-location-arrow
= @user.location
.row
.col-md-6.col-sm-6.col-xs-6
%h4.entry-text#follower-count= @user.follower_count
%h6.entry-subtext Follower
.col-md-6.col-sm-6.col-xs-6
%h4.entry-text#friend-count= @user.friend_count
%h6.entry-subtext Following
.row
.col-md-6.col-sm-6.col-xs-6
%h4.entry-text#asked-count= @user.asked_count
%h6.entry-subtext Questions
.col-md-6.col-sm-6.col-xs-6
%h4.entry-text#answered-count= @user.answered_count
%h6.entry-subtext Answers
= render 'user/actions'

View File

@ -1,45 +1,6 @@
.container.j2-page
.col-md-3.col-xs-12.col-sm-3
.panel.panel-default
.panel-body
.media
.pull-left
%img.img-rounded.img-profile{src: gravatar_url(@user)}
.media-body
- if @user.display_name.blank?
%h2= @user.screen_name
- else
%h2.user-displayname= @user.display_name
%h4.text-muted.user-username= @user.screen_name
- if @user.admin?
%p.user-admin
%i.fa.fa-flask
Admin
- unless @user.bio.blank?
%p.user-profiletext= @user.bio
- unless @user.website.blank?
%p.user-profiletext
%i.fa.fa-globe
%a{href: @user.website}= @user.display_website
- unless @user.location.blank?
%p.user-profiletext
%i.fa.fa-location-arrow
= @user.location
.row
.col-md-6.col-sm-6.col-xs-6
%h4.entry-text#follower-count= @user.follower_count
%h6.entry-subtext Follower
.col-md-6.col-sm-6.col-xs-6
%h4.entry-text#friend-count= @user.friend_count
%h6.entry-subtext Following
.row
.col-md-6.col-sm-6.col-xs-6
%h4.entry-text#asked-count= @user.asked_count
%h6.entry-subtext Questions
.col-md-6.col-sm-6.col-xs-6
%h4.entry-text#answered-count= @user.answered_count
%h6.entry-subtext Answers
= render 'user/actions'
= render 'user/profile_info'
.hidden-xs= render 'shared/links'
.col-md-9.col-xs-12.col-sm-9
= render 'shared/questionbox'

View File

@ -0,0 +1,17 @@
.container.j2-page
.col-md-3.col-xs-12.col-sm-3
= render 'user/profile_info'
.hidden-xs= render 'shared/links'
.col-md-9.col-xs-12.col-sm-9
%h1= @title
#users
- @users.each do |user|
.col-sm-6
= render 'shared/userbox', user: user
#pagination= will_paginate @users, renderer: BootstrapPagination::Rails, page_links: false
- if @users.next_page
%button#load-more-btn.btn.btn-default{type: :button, data: { current_page: @users.current_page }}
Load more
.visible-xs= render 'shared/links'

View File

@ -0,0 +1,8 @@
$('#users').append('<% @users.each do |user|
%><div class="col-sm-6"><%= j render 'shared/userbox', user: user
%></div><% end %>');
<% if @users.next_page %>
$('#pagination').html('<%= j will_paginate @users, renderer: BootstrapPagination::Rails, page_links: false %>');
<% else %>
$('#pagination, #load-more-btn').remove();
<% end %>

View File

@ -42,7 +42,11 @@ Rails.application.routes.draw do
match '/@:username(/p/:page)', to: 'user#show', via: 'get', as: :show_user_profile, defaults: {page: 1}
match '/@:username/a/:id', to: 'answer#show', via: 'get', as: :show_user_answer
match '/@:username/q/:id', to: 'question#show', via: 'get', as: :show_user_question
match '/@:username/followers(/p/:page)', to: 'user#followers', via: 'get', as: :show_user_followers, defaults: {page: 1}
match '/@:username/following(/p/:page)', to: 'user#following', via: 'get', as: :show_user_following, defaults: {page: 1}
match '/:username(/p/:page)', to: 'user#show', via: 'get', as: :show_user_profile_alt, defaults: {page: 1}
match '/:username/a/:id', to: 'answer#show', via: 'get', as: :show_user_answer_alt
match '/:username/q/:id', to: 'question#show', via: 'get', as: :show_user_question_alt
match '/:username/followers(/p/:page)', to: 'user#followers', via: 'get', as: :show_user_followers_alt, defaults: {page: 1}
match '/:username/following(/p/:page)', to: 'user#following', via: 'get', as: :show_user_following_alt, defaults: {page: 1}
end