summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Jankowski <mjankowski@thoughtbot.com>2017-04-17 18:16:32 -0400
committerEugen <eugen@zeonfederated.com>2017-04-18 00:16:32 +0200
commit389f8f824909d60b7560248465416bd4bed92b6b (patch)
tree182b37bee6b43d9da4c2b498448aa37eaec4eced
parente1e15adf1d994dda0fa868bcdd55cb8603d6f1ef (diff)
Instance helper to replace site title helper (#2038)
* Move site title helper to instance helper (name change only) * Remove newline in <title> tag * Add site_hostname helper method to wrap up local_domain value * Use site_hostname helper in places that need local_domain value
-rw-r--r--app/helpers/instance_helper.rb11
-rw-r--r--app/helpers/site_title_helper.rb7
-rw-r--r--app/mailers/application_mailer.rb1
-rw-r--r--app/mailers/user_mailer.rb2
-rw-r--r--app/views/about/more.html.haml4
-rw-r--r--app/views/about/show.html.haml6
-rw-r--r--app/views/about/terms.en.html.haml2
-rw-r--r--app/views/about/terms.no.html.haml2
-rw-r--r--app/views/accounts/show.html.haml4
-rw-r--r--app/views/api/oembed/show.json.rabl2
-rw-r--r--app/views/api/v1/instances/show.rabl2
-rw-r--r--app/views/home/initial_state.json.rabl2
-rwxr-xr-xapp/views/layouts/application.html.haml2
-rw-r--r--app/views/layouts/mailer.text.erb2
-rw-r--r--app/views/layouts/public.html.haml2
-rw-r--r--app/views/shared/_landing_strip.html.haml2
-rw-r--r--app/views/stream_entries/show.html.haml2
-rw-r--r--spec/helpers/instance_helper_spec.rb33
-rw-r--r--spec/helpers/site_title_helper_spec.rb15
19 files changed, 64 insertions, 39 deletions
diff --git a/app/helpers/instance_helper.rb b/app/helpers/instance_helper.rb
new file mode 100644
index 00000000000..a1c3c3521f9
--- /dev/null
+++ b/app/helpers/instance_helper.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+module InstanceHelper
+ def site_title
+ Setting.site_title.to_s
+ end
+
+ def site_hostname
+ Rails.configuration.x.local_domain
+ end
+end
diff --git a/app/helpers/site_title_helper.rb b/app/helpers/site_title_helper.rb
deleted file mode 100644
index d2caa920388..00000000000
--- a/app/helpers/site_title_helper.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-# frozen_string_literal: true
-
-module SiteTitleHelper
- def site_title
- Setting.site_title.to_s
- end
-end
diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb
index 0d9f10a080e..e5dbfeeda91 100644
--- a/app/mailers/application_mailer.rb
+++ b/app/mailers/application_mailer.rb
@@ -3,4 +3,5 @@
class ApplicationMailer < ActionMailer::Base
default from: ENV.fetch('SMTP_FROM_ADDRESS') { 'notifications@localhost' }
layout 'mailer'
+ helper :instance
end
diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb
index 64ca92a3aca..6abf9c9caff 100644
--- a/app/mailers/user_mailer.rb
+++ b/app/mailers/user_mailer.rb
@@ -4,6 +4,8 @@ class UserMailer < Devise::Mailer
default from: ENV.fetch('SMTP_FROM_ADDRESS') { 'notifications@localhost' }
layout 'mailer'
+ helper :instance
+
def confirmation_instructions(user, token, _opts = {})
@resource = user
@token = token
diff --git a/app/views/about/more.html.haml b/app/views/about/more.html.haml
index 418c9824723..84b29912cf6 100644
--- a/app/views/about/more.html.haml
+++ b/app/views/about/more.html.haml
@@ -1,11 +1,11 @@
- content_for :page_title do
- #{Rails.configuration.x.local_domain}
+ = site_hostname
.wrapper.thicc
.sidebar-layout
.main
.panel
- %h2= Rails.configuration.x.local_domain
+ %h2= site_hostname
- unless @instance_presenter.site_description.blank?
%p= @instance_presenter.site_description.html_safe
diff --git a/app/views/about/show.html.haml b/app/views/about/show.html.haml
index 60627ab98bf..49ad03557df 100644
--- a/app/views/about/show.html.haml
+++ b/app/views/about/show.html.haml
@@ -2,12 +2,12 @@
= javascript_include_tag 'application_public', integrity: true
- content_for :page_title do
- = Rails.configuration.x.local_domain
+ = site_hostname
- content_for :header_tags do
%meta{ property: 'og:site_name', content: site_title }/
%meta{ property: 'og:type', content: 'website' }/
- %meta{ property: 'og:title', content: Rails.configuration.x.local_domain }/
+ %meta{ property: 'og:title', content: site_hostname }/
%meta{ property: 'og:description', content: strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon')) }/
%meta{ property: 'og:image', content: asset_url('mastodon_small.jpg') }/
%meta{ property: 'og:image:width', content: '400' }/
@@ -72,7 +72,7 @@
= t 'about.features.api'
- unless @instance_presenter.site_description.blank?
- %h3= t('about.description_headline', domain: Rails.configuration.x.local_domain)
+ %h3= t('about.description_headline', domain: site_hostname)
%p= @instance_presenter.site_description.html_safe
.actions
diff --git a/app/views/about/terms.en.html.haml b/app/views/about/terms.en.html.haml
index e1766ca163c..7e0fb94c213 100644
--- a/app/views/about/terms.en.html.haml
+++ b/app/views/about/terms.en.html.haml
@@ -1,5 +1,5 @@
- content_for :page_title do
- #{Rails.configuration.x.local_domain} Terms of Service and Privacy Policy
+ #{site_hostname} Terms of Service and Privacy Policy
.wrapper
%h2 Privacy Policy
diff --git a/app/views/about/terms.no.html.haml b/app/views/about/terms.no.html.haml
index 32ec57ed19d..46f62950df1 100644
--- a/app/views/about/terms.no.html.haml
+++ b/app/views/about/terms.no.html.haml
@@ -1,5 +1,5 @@
- content_for :page_title do
- #{Rails.configuration.x.local_domain} Personvern og villkår for bruk av nettstedet
+ #{site_hostname} Personvern og villkår for bruk av nettstedet
.wrapper
%h2 Personvernserklæring
diff --git a/app/views/accounts/show.html.haml b/app/views/accounts/show.html.haml
index 9a70fd16fe0..b01f3c4e3e5 100644
--- a/app/views/accounts/show.html.haml
+++ b/app/views/accounts/show.html.haml
@@ -7,7 +7,7 @@
%meta{ property: 'og:site_name', content: site_title }/
%meta{ property: 'og:type', content: 'profile' }/
- %meta{ property: 'og:title', content: "#{@account.username} on #{Rails.configuration.x.local_domain}" }/
+ %meta{ property: 'og:title', content: "#{@account.username} on #{site_hostname}" }/
%meta{ property: 'og:description', content: @account.note }/
%meta{ property: 'og:image', content: full_asset_url(@account.avatar.url(:original)) }/
%meta{ property: 'og:image:width', content: '120' }/
@@ -18,7 +18,7 @@
= render partial: 'shared/landing_strip', locals: { account: @account }
.h-feed
- %data.p-name{ value: "#{@account.username} on #{Rails.configuration.x.local_domain}" }/
+ %data.p-name{ value: "#{@account.username} on #{site_hostname}" }/
= render 'header', account: @account
diff --git a/app/views/api/oembed/show.json.rabl b/app/views/api/oembed/show.json.rabl
index 311c02dadd7..11dcec538c5 100644
--- a/app/views/api/oembed/show.json.rabl
+++ b/app/views/api/oembed/show.json.rabl
@@ -6,7 +6,7 @@ node(:version) { '1.0' }
node(:title, &:title)
node(:author_name) { |entry| entry.account.display_name.blank? ? entry.account.username : entry.account.display_name }
node(:author_url) { |entry| account_url(entry.account) }
-node(:provider_name) { Rails.configuration.x.local_domain }
+node(:provider_name) { site_hostname }
node(:provider_url) { root_url }
node(:cache_age) { 86_400 }
node(:html) { |entry| "<iframe src=\"#{embed_account_stream_entry_url(entry.account, entry)}\" style=\"width: 100%; overflow: hidden\" frameborder=\"0\" width=\"#{@width}\" height=\"#{@height}\" scrolling=\"no\"></iframe>" }
diff --git a/app/views/api/v1/instances/show.rabl b/app/views/api/v1/instances/show.rabl
index 88eb08a9e86..f5598fde386 100644
--- a/app/views/api/v1/instances/show.rabl
+++ b/app/views/api/v1/instances/show.rabl
@@ -1,6 +1,6 @@
object false
-node(:uri) { Rails.configuration.x.local_domain }
+node(:uri) { site_hostname }
node(:title) { Setting.site_title }
node(:description) { Setting.site_description }
node(:email) { Setting.site_contact_email }
diff --git a/app/views/home/initial_state.json.rabl b/app/views/home/initial_state.json.rabl
index ce7bfbd44cf..10404938798 100644
--- a/app/views/home/initial_state.json.rabl
+++ b/app/views/home/initial_state.json.rabl
@@ -5,7 +5,7 @@ node(:meta) do
streaming_api_base_url: @streaming_api_base_url,
access_token: @token,
locale: I18n.locale,
- domain: Rails.configuration.x.local_domain,
+ domain: site_hostname,
me: current_account.id,
admin: @admin.try(:id),
boost_modal: current_account.user.setting_boost_modal,
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index fa5811fd88a..688deaebd52 100755
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -14,7 +14,7 @@
%title<
- if content_for?(:page_title)
- = yield(:page_title)
+ = yield(:page_title).strip
= ' - '
= site_title
diff --git a/app/views/layouts/mailer.text.erb b/app/views/layouts/mailer.text.erb
index 21bf444c374..cdb284de831 100644
--- a/app/views/layouts/mailer.text.erb
+++ b/app/views/layouts/mailer.text.erb
@@ -1,5 +1,5 @@
<%= yield %>
---
-<%= t('application_mailer.signature', instance: Rails.configuration.x.local_domain) %>
+<%= t('application_mailer.signature', instance: site_hostname) %>
<%= t('application_mailer.settings', link: settings_preferences_url) %>
diff --git a/app/views/layouts/public.html.haml b/app/views/layouts/public.html.haml
index fdde0a68138..556102f5380 100644
--- a/app/views/layouts/public.html.haml
+++ b/app/views/layouts/public.html.haml
@@ -4,7 +4,7 @@
- content_for :content do
.container= yield
.footer
- %span.domain= link_to Rails.configuration.x.local_domain, root_path
+ %span.domain= link_to site_hostname, root_path
%span.powered-by
= t('generic.powered_by', link: link_to('Mastodon', 'https://github.com/tootsuite/mastodon')).html_safe
diff --git a/app/views/shared/_landing_strip.html.haml b/app/views/shared/_landing_strip.html.haml
index 3536c5ca8ce..02e694418f3 100644
--- a/app/views/shared/_landing_strip.html.haml
+++ b/app/views/shared/_landing_strip.html.haml
@@ -1,5 +1,5 @@
.landing-strip
= t('landing_strip_html',
name: content_tag(:span, display_name(account), class: :emojify),
- domain: Rails.configuration.x.local_domain,
+ domain: site_hostname,
sign_up_path: new_user_registration_path)
diff --git a/app/views/stream_entries/show.html.haml b/app/views/stream_entries/show.html.haml
index dea5e9d4080..31efa26c420 100644
--- a/app/views/stream_entries/show.html.haml
+++ b/app/views/stream_entries/show.html.haml
@@ -4,7 +4,7 @@
%meta{ property: 'og:site_name', content: site_title }/
%meta{ property: 'og:type', content: 'article' }/
- %meta{ property: 'og:title', content: "#{@account.username} on #{Rails.configuration.x.local_domain}" }/
+ %meta{ property: 'og:title', content: "#{@account.username} on #{site_hostname}" }/
= render 'stream_entries/og_description', activity: @stream_entry.activity
= render 'stream_entries/og_image', activity: @stream_entry.activity, account: @account
diff --git a/spec/helpers/instance_helper_spec.rb b/spec/helpers/instance_helper_spec.rb
new file mode 100644
index 00000000000..c42ed693886
--- /dev/null
+++ b/spec/helpers/instance_helper_spec.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe InstanceHelper do
+ describe 'site_title' do
+ it 'Uses the Setting.site_title value when it exists' do
+ Setting.site_title = 'New site title'
+
+ expect(helper.site_title).to eq 'New site title'
+ end
+
+ it 'returns empty string when Setting.site_title is nil' do
+ Setting.site_title = nil
+
+ expect(helper.site_title).to eq ''
+ end
+ end
+
+ describe 'site_hostname' do
+ around(:each) do |example|
+ before = Rails.configuration.x.local_domain
+ example.run
+ Rails.configuration.x.local_domain = before
+ end
+
+ it 'returns the local domain value' do
+ Rails.configuration.x.local_domain = 'example.com'
+
+ expect(helper.site_hostname).to eq 'example.com'
+ end
+ end
+end
diff --git a/spec/helpers/site_title_helper_spec.rb b/spec/helpers/site_title_helper_spec.rb
deleted file mode 100644
index 8cfd9cba1c8..00000000000
--- a/spec/helpers/site_title_helper_spec.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require "rails_helper"
-
-describe "site_title" do
- it "Uses the Setting.site_title value when it exists" do
- Setting.site_title = "New site title"
-
- expect(helper.site_title).to eq "New site title"
- end
-
- it "returns empty string when Setting.site_title is nil" do
- Setting.site_title = nil
-
- expect(helper.site_title).to eq ""
- end
-end