logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: 3554d638b31aa5ace2aa524db0165932c15d9a71
parent: 87ba52ad3f1e32b0608bb6c6ffb226c1988267a3
Author: Eugen Rochko <eugen@zeonfederated.com>
Date:   Thu,  6 Oct 2016 21:27:58 +0200

Fix #72 - add follow/unfollow button to public profiles

Diffstat:

Aapp/assets/javascripts/application_public.js2++
Mapp/assets/stylesheets/accounts.scss7+++++++
Mapp/controllers/accounts_controller.rb10++++++++++
Mapp/views/accounts/_header.html.haml7+++++++
Mapp/views/layouts/public.html.haml3+++
Mconfig/initializers/assets.rb2+-
Mconfig/routes.rb3+++
7 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/app/assets/javascripts/application_public.js b/app/assets/javascripts/application_public.js @@ -0,0 +1,2 @@ +//= require jquery +//= require jquery_ujs diff --git a/app/assets/stylesheets/accounts.scss b/app/assets/stylesheets/accounts.scss @@ -58,6 +58,13 @@ } } + .controls { + position: absolute; + top: 10px; + right: 10px; + z-index: 2; + } + .details { display: flex; margin-top: 30px; diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb @@ -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 diff --git a/app/views/accounts/_header.html.haml b/app/views/accounts/_header.html.haml @@ -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) diff --git a/app/views/layouts/public.html.haml b/app/views/layouts/public.html.haml @@ -1,3 +1,6 @@ +- content_for :header_tags do + = javascript_include_tag 'application_public' + - content_for :content do .container= yield .footer diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb @@ -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 ) diff --git a/config/routes.rb b/config/routes.rb @@ -25,6 +25,9 @@ Rails.application.routes.draw do member do get :followers get :following + + post :follow + post :unfollow end end