diff --git a/app/controllers/dashboards_controller.rb b/app/controllers/dashboards_controller.rb index 17f937b11..ca216e304 100644 --- a/app/controllers/dashboards_controller.rb +++ b/app/controllers/dashboards_controller.rb @@ -30,6 +30,17 @@ class DashboardsController < ApplicationController order("created_at DESC").includes(:followable).limit(80) end + def followers + fetch_and_authorize_user + if params[:which] == "user_followers" + @follows = Follow.where(followable_id: @user.id, followable_type: "User"). + includes(:follower).order("created_at DESC").limit(80) + elsif params[:which] == "organization_user_followers" + @follows = Follow.where(followable_id: @user.organization_id, followable_type: "Organization"). + includes(:follower).order("created_at DESC").limit(80) + end + end + def pro user_or_org = if params[:org_id] org = Organization.find_by(id: params[:org_id]) diff --git a/app/views/dashboards/_actions.html.erb b/app/views/dashboards/_actions.html.erb index ffa2c8a77..5365b283a 100644 --- a/app/views/dashboards/_actions.html.erb +++ b/app/views/dashboards/_actions.html.erb @@ -1,9 +1,9 @@
- " href="/dashboard"> + " href="/dashboard"> POSTS (<%= @user.articles_count %>) - " href="/dashboard/user_followers"> + " href="/dashboard/user_followers"> FOLLOWERS (<%= @user.followers_count %>) diff --git a/app/views/dashboards/followers.html.erb b/app/views/dashboards/followers.html.erb new file mode 100644 index 000000000..c85e20d69 --- /dev/null +++ b/app/views/dashboards/followers.html.erb @@ -0,0 +1,31 @@ +<% title "Dashboard - DEV" %> + +
+ <%= render "actions" %> + <% if @user.org_admin && @user.organization %> +

+ ">Personal + "><%= @user.organization.name %> (<%= @user.organization.followers_count %>) + <% if @user.has_role? :pro %> + Pro Analytics + <% end %> + <% if @user.has_role?(:pro) && @user.organization_id %> + Pro Analytics for <%= @user.organization.name %> + <% end %> +

+ <% end %> + <% @follows.each do |follow| %> + <% user = follow.follower %> + <% if user %> +
+ +

+ <%= user.username %> profile image + <%= user.name %> + @<%= user.username %> +

+
+
+ <% end %> + <% end %> +
diff --git a/app/views/dashboards/show.html.erb b/app/views/dashboards/show.html.erb index ee3fe50a4..1906e5061 100644 --- a/app/views/dashboards/show.html.erb +++ b/app/views/dashboards/show.html.erb @@ -1,7 +1,7 @@ <% title "Dashboard - DEV" %>
- <%= render 'actions' %> + <%= render "actions" %> <% if @user.org_admin && @user.organization && (params[:which].blank? || params[:which] == "organization") %>

">Personal @@ -13,38 +13,12 @@ Pro Analytics for <%= @user.organization.name %> <% end %>

- <% elsif @user.org_admin && @user.organization && (params[:which] == "organization_user_followers" || params[:which] == "user_followers") %> -

- ">Personal - "><%= @user.organization.name %> (<%= @user.organization.followers_count %>) - <% if @user.has_role? :pro %> - Pro Analytics - <% end %> - <% if @user.has_role?(:pro) && @user.organization_id %> - Pro Analytics for <%= @user.organization.name %> - <% end %> -

<% end %> <% if @user.org_admin && @user.organization && params[:which] == "organization" %> <%= render "analytics" %> <% @articles.each do |article| %> <%= render "dashboard_article", article: article, org_admin: true %> <% end %> - <% elsif params[:which] == "user_followers" || params[:which] == "organization_user_followers" %> - <% @follows.each do |follow| %> - <% user = params[:which].include?("followers") ? follow.follower : follow.followable %> - <% if user %> -
- -

- <%= user.username %> profile image - <%= user.name %> - @<%= user.username %> -

-
-
- <% end %> - <% end %> <% elsif @articles.any? %> <%= render "analytics" %> <% if current_user.created_at < 2.weeks.ago %> diff --git a/config/routes.rb b/config/routes.rb index b0848b5d3..8319b00b5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -261,9 +261,13 @@ Rails.application.routes.draw do get "/dashboard/pro" => "dashboards#pro" get "dashboard/pro/org/:org_id" => "dashboards#pro" get "dashboard/following" => "dashboards#following" + get "/dashboard/:which" => "dashboards#followers", + constraints: { + which: /organization_user_followers|user_followers/ + } get "/dashboard/:which" => "dashboards#show", constraints: { - which: /organization|organization_user_followers|user_followers|reading/ + which: /organization|reading/ } get "/dashboard/:username" => "dashboards#show"