* Correct site_contact_email typo * Separate about more page into partials, add specsmaster
@@ -3,7 +3,7 @@ | |||||
class InstancePresenter | class InstancePresenter | ||||
delegate( | delegate( | ||||
:closed_registrations_message, | :closed_registrations_message, | ||||
:contact_email, | |||||
:site_contact_email, | |||||
:open_registrations, | :open_registrations, | ||||
:site_description, | :site_description, | ||||
:site_extended_description, | :site_extended_description, | ||||
@@ -0,0 +1,15 @@ | |||||
.panel | |||||
.panel-header= t 'about.contact' | |||||
.panel-body | |||||
- if contact.contact_account | |||||
.owner | |||||
.avatar= image_tag contact.contact_account.avatar.url | |||||
.name | |||||
= link_to TagManager.instance.url_for(contact.contact_account) do | |||||
%span.display_name.emojify= display_name(contact.contact_account) | |||||
%span.username= "@#{contact.contact_account.acct}" | |||||
- if contact.site_contact_email | |||||
.contact-email | |||||
= t 'about.business_email' | |||||
%strong= contact.site_contact_email |
@@ -0,0 +1,11 @@ | |||||
.panel | |||||
.panel-header= t 'about.links' | |||||
.panel-list | |||||
%ul | |||||
- if user_signed_in? | |||||
%li= link_to t('about.get_started'), root_path | |||||
- else | |||||
%li= link_to t('about.get_started'), new_user_registration_path | |||||
%li= link_to t('auth.login'), new_user_session_path | |||||
%li= link_to t('about.terms'), terms_path | |||||
%li= link_to t('about.source_code'), 'https://github.com/tootsuite/mastodon' |
@@ -28,29 +28,5 @@ | |||||
.panel= @instance_presenter.site_extended_description.html_safe | .panel= @instance_presenter.site_extended_description.html_safe | ||||
.sidebar | .sidebar | ||||
.panel | |||||
.panel-header= t 'about.contact' | |||||
.panel-body | |||||
- if @instance_presenter.contact_account | |||||
.owner | |||||
.avatar= image_tag @instance_presenter.contact_account.avatar.url | |||||
.name | |||||
= link_to TagManager.instance.url_for(@instance_presenter.contact_account) do | |||||
%span.display_name.emojify= display_name(@instance_presenter.contact_account) | |||||
%span.username= "@#{@instance_presenter.contact_account.acct}" | |||||
- unless @instance_presenter.contact_email.blank? | |||||
.contact-email | |||||
= t 'about.business_email' | |||||
%strong= @instance_presenter.contact_email | |||||
.panel | |||||
.panel-header= t 'about.links' | |||||
.panel-list | |||||
%ul | |||||
- if user_signed_in? | |||||
%li= link_to t('about.get_started'), root_path | |||||
- else | |||||
%li= link_to t('about.get_started'), new_user_registration_path | |||||
%li= link_to t('auth.login'), new_user_session_path | |||||
%li= link_to t('about.terms'), terms_path | |||||
%li= link_to t('about.source_code'), 'https://github.com/tootsuite/mastodon' | |||||
= render partial: 'contact', object: @instance_presenter | |||||
= render 'links' |
@@ -28,9 +28,9 @@ describe InstancePresenter do | |||||
end | end | ||||
it "delegates contact_email to Setting" do | it "delegates contact_email to Setting" do | ||||
Setting.contact_email = "admin@example.com" | |||||
Setting.site_contact_email = "admin@example.com" | |||||
expect(instance_presenter.contact_email).to eq "admin@example.com" | |||||
expect(instance_presenter.site_contact_email).to eq "admin@example.com" | |||||
end | end | ||||
describe "contact_account" do | describe "contact_account" do | ||||
@@ -0,0 +1,38 @@ | |||||
# frozen_string_literal: true | |||||
require 'rails_helper' | |||||
describe 'about/_contact.html.haml' do | |||||
describe 'the contact account' do | |||||
it 'shows info when account is present' do | |||||
account = Account.new(username: 'admin') | |||||
contact = double(contact_account: account, site_contact_email: '') | |||||
render 'about/contact', contact: contact | |||||
expect(rendered).to have_content('@admin') | |||||
end | |||||
it 'does not show info when account is missing' do | |||||
contact = double(contact_account: nil, site_contact_email: '') | |||||
render 'about/contact', contact: contact | |||||
expect(rendered).not_to have_content('@') | |||||
end | |||||
end | |||||
describe 'the contact email' do | |||||
it 'show info when email is present' do | |||||
contact = double(site_contact_email: 'admin@example.com', contact_account: nil) | |||||
render 'about/contact', contact: contact | |||||
expect(rendered).to have_content('admin@example.com') | |||||
end | |||||
it 'does not show info when email is missing' do | |||||
contact = double(site_contact_email: nil, contact_account: nil) | |||||
render 'about/contact', contact: contact | |||||
expect(rendered).not_to have_content(I18n.t('about.business_email')) | |||||
end | |||||
end | |||||
end |
@@ -0,0 +1,21 @@ | |||||
# frozen_string_literal: true | |||||
require 'rails_helper' | |||||
describe 'about/_links.html.haml' do | |||||
it 'does not show sign in link when signed in' do | |||||
allow(view).to receive(:user_signed_in?).and_return(true) | |||||
render | |||||
expect(rendered).to have_content(I18n.t('about.get_started')) | |||||
expect(rendered).not_to have_content(I18n.t('auth.login')) | |||||
end | |||||
it 'shows sign in link when signed out' do | |||||
allow(view).to receive(:user_signed_in?).and_return(false) | |||||
render | |||||
expect(rendered).to have_content(I18n.t('about.get_started')) | |||||
expect(rendered).to have_content(I18n.t('auth.login')) | |||||
end | |||||
end |