From 148ce97e21092500a2abeb87f6dc3c0adf5f28e4 Mon Sep 17 00:00:00 2001 From: Takeshi Umeda Date: Fri, 13 Nov 2020 01:43:12 +0900 Subject: [PATCH] Add interrelationship icon (#15149) * Add interrelationship icon * Fix arrow for rtl * Fix to predefined color --- app/controllers/relationships_controller.rb | 5 +++++ app/helpers/application_helper.rb | 10 ++++++++++ app/javascript/styles/mastodon/variables.scss | 2 ++ app/javascript/styles/mastodon/widgets.scss | 20 +++++++++++++++++++ app/views/relationships/_account.html.haml | 2 ++ 5 files changed, 39 insertions(+) diff --git a/app/controllers/relationships_controller.rb b/app/controllers/relationships_controller.rb index 031e3241f9..96cce55e9e 100644 --- a/app/controllers/relationships_controller.rb +++ b/app/controllers/relationships_controller.rb @@ -5,6 +5,7 @@ class RelationshipsController < ApplicationController before_action :authenticate_user! before_action :set_accounts, only: :show + before_action :set_relationships, only: :show before_action :set_body_classes helper_method :following_relationship?, :followed_by_relationship?, :mutual_relationship? @@ -28,6 +29,10 @@ class RelationshipsController < ApplicationController @accounts = RelationshipFilter.new(current_account, filter_params).results.page(params[:page]).per(40) end + def set_relationships + @relationships = AccountRelationshipsPresenter.new(@accounts.pluck(:id), current_user.account_id) + end + def form_account_batch_params params.require(:form_account_batch).permit(:action, account_ids: []) end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 5512a95434..8914b015ce 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -89,6 +89,16 @@ module ApplicationHelper end end + def interrelationships_icon(relationships, account_id) + if relationships.following[account_id] && relationships.followed_by[account_id] + fa_icon('exchange', title: I18n.t('relationships.mutual'), class: 'fa-fw active passive') + elsif relationships.following[account_id] + fa_icon(locale_direction == 'ltr' ? 'arrow-right' : 'arrow-left', title: I18n.t('relationships.following'), class: 'fa-fw active') + elsif relationships.followed_by[account_id] + fa_icon(locale_direction == 'ltr' ? 'arrow-left' : 'arrow-right', title: I18n.t('relationships.followers'), class: 'fa-fw passive') + end + end + def custom_emoji_tag(custom_emoji, animate = true) if animate image_tag(custom_emoji.image.url, class: 'emojione', alt: ":#{custom_emoji.shortcode}:") diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss index 8602c3dde9..f463419c82 100644 --- a/app/javascript/styles/mastodon/variables.scss +++ b/app/javascript/styles/mastodon/variables.scss @@ -36,6 +36,8 @@ $dark-text-color: $ui-base-lighter-color !default; $secondary-text-color: $ui-secondary-color !default; $highlight-text-color: $ui-highlight-color !default; $action-button-color: $ui-base-lighter-color !default; +$passive-text-color: $gold-star !default; +$active-passive-text-color: $success-green !default; // For texts on inverted backgrounds $inverted-text-color: $ui-base-color !default; $lighter-text-color: $ui-base-lighter-color !default; diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss index 47e02d41df..5ee4d104ba 100644 --- a/app/javascript/styles/mastodon/widgets.scss +++ b/app/javascript/styles/mastodon/widgets.scss @@ -446,6 +446,26 @@ vertical-align: initial !important; } + &__interrelationships { + width: 21px; + } + + .fa { + font-size: 16px; + + &.active { + color: $highlight-text-color; + } + + &.passive { + color: $passive-text-color; + } + + &.active.passive { + color: $active-passive-text-color; + } + } + @media screen and (max-width: $no-gap-breakpoint) { tbody td.optional { display: none; diff --git a/app/views/relationships/_account.html.haml b/app/views/relationships/_account.html.haml index af5a4aaf7d..f521aff225 100644 --- a/app/views/relationships/_account.html.haml +++ b/app/views/relationships/_account.html.haml @@ -5,6 +5,8 @@ %table.accounts-table %tbody %tr + %td.accounts-table__interrelationships + = interrelationships_icon(@relationships, account.id) %td= account_link_to account %td.accounts-table__count.optional = number_to_human account.statuses_count, strip_insignificant_zeros: true