Fix #72 - add follow/unfollow button to public profiles
This commit is contained in:
parent
87ba52ad3f
commit
3554d638b3
7 changed files with 33 additions and 1 deletions
2
app/assets/javascripts/application_public.js
Normal file
2
app/assets/javascripts/application_public.js
Normal file
|
@ -0,0 +1,2 @@
|
|||
//= require jquery
|
||||
//= require jquery_ujs
|
|
@ -58,6 +58,13 @@
|
|||
}
|
||||
}
|
||||
|
||||
.controls {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.details {
|
||||
display: flex;
|
||||
margin-top: 30px;
|
||||
|
|
|
@ -16,6 +16,16 @@ class AccountsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
def follow
|
||||
FollowService.new.call(current_user.account, @account.acct)
|
||||
redirect_to account_path(@account)
|
||||
end
|
||||
|
||||
def unfollow
|
||||
UnfollowService.new.call(current_user.account, @account)
|
||||
redirect_to account_path(@account)
|
||||
end
|
||||
|
||||
def followers
|
||||
@followers = @account.followers.order('follows.created_at desc').paginate(page: params[:page], per_page: 6)
|
||||
end
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
.card{ style: "background-image: url(#{@account.header.url(:medium)})" }
|
||||
- if user_signed_in? && current_account.id != @account.id
|
||||
.controls
|
||||
- if current_account.following?(@account)
|
||||
= link_to 'Unfollow', unfollow_account_path(@account), data: { method: :post }, class: 'button'
|
||||
- else
|
||||
= link_to 'Follow', follow_account_path(@account), data: { method: :post }, class: 'button'
|
||||
|
||||
.avatar= image_tag @account.avatar.url(:large)
|
||||
%h1.name
|
||||
= display_name(@account)
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
- content_for :header_tags do
|
||||
= javascript_include_tag 'application_public'
|
||||
|
||||
- content_for :content do
|
||||
.container= yield
|
||||
.footer
|
||||
|
|
|
@ -8,4 +8,4 @@ Rails.application.config.assets.version = '1.0'
|
|||
|
||||
# Precompile additional assets.
|
||||
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
||||
Rails.application.config.assets.precompile += %w( cable.js )
|
||||
Rails.application.config.assets.precompile += %w( application_public.js )
|
||||
|
|
|
@ -25,6 +25,9 @@ Rails.application.routes.draw do
|
|||
member do
|
||||
get :followers
|
||||
get :following
|
||||
|
||||
post :follow
|
||||
post :unfollow
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue