FEATURE: add short_site_description setting to be included in title tag on homepage
This commit is contained in:
parent
793f1274d1
commit
dbbadb5c35
|
@ -33,7 +33,11 @@ class CategoriesController < ApplicationController
|
||||||
)
|
)
|
||||||
@category_list.draft = Draft.get(current_user, Draft::NEW_TOPIC, @category_list.draft_sequence) if current_user
|
@category_list.draft = Draft.get(current_user, Draft::NEW_TOPIC, @category_list.draft_sequence) if current_user
|
||||||
|
|
||||||
@title = "#{I18n.t('js.filters.categories.title')} - #{SiteSetting.title}" unless category_options[:is_homepage]
|
if category_options[:is_homepage] && SiteSetting.short_site_description.present?
|
||||||
|
@title = "#{SiteSetting.title} - #{SiteSetting.short_site_description}"
|
||||||
|
elsif !category_options[:is_homepage]
|
||||||
|
@title = "#{I18n.t('js.filters.categories.title')} - #{SiteSetting.title}"
|
||||||
|
end
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html do
|
format.html do
|
||||||
|
|
|
@ -107,6 +107,8 @@ class ListController < ApplicationController
|
||||||
@title = I18n.t('js.filters.with_topics', filter: filter_title)
|
@title = I18n.t('js.filters.with_topics', filter: filter_title)
|
||||||
end
|
end
|
||||||
@title << " - #{SiteSetting.title}"
|
@title << " - #{SiteSetting.title}"
|
||||||
|
elsif (filter.to_s == current_homepage) && SiteSetting.short_site_description.present?
|
||||||
|
@title = "#{SiteSetting.title} - #{SiteSetting.short_site_description}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1193,6 +1193,7 @@ en:
|
||||||
educate_until_posts: "When the user starts typing their first (n) new posts, show the pop-up new user education panel in the composer."
|
educate_until_posts: "When the user starts typing their first (n) new posts, show the pop-up new user education panel in the composer."
|
||||||
title: "The name of this site, as used in the title tag."
|
title: "The name of this site, as used in the title tag."
|
||||||
site_description: "Describe this site in one sentence, as used in the meta description tag."
|
site_description: "Describe this site in one sentence, as used in the meta description tag."
|
||||||
|
short_site_description: "Short description, as used in the title tag on homepage."
|
||||||
contact_email: "Email address of key contact responsible for this site. Used for critical notifications, as well as on the <a href='%{base_path}/about' target='_blank'>/about</a> contact form for urgent matters."
|
contact_email: "Email address of key contact responsible for this site. Used for critical notifications, as well as on the <a href='%{base_path}/about' target='_blank'>/about</a> contact form for urgent matters."
|
||||||
contact_url: "Contact URL for this site. Used on the <a href='%{base_path}/about' target='_blank'>/about</a> contact form for urgent matters."
|
contact_url: "Contact URL for this site. Used on the <a href='%{base_path}/about' target='_blank'>/about</a> contact form for urgent matters."
|
||||||
crawl_images: "Retrieve images from remote URLs to insert the correct width and height dimensions."
|
crawl_images: "Retrieve images from remote URLs to insert the correct width and height dimensions."
|
||||||
|
@ -4047,6 +4048,9 @@ en:
|
||||||
site_description:
|
site_description:
|
||||||
label: "Describe your community in one short sentence"
|
label: "Describe your community in one short sentence"
|
||||||
placeholder: "A place for Jane and her friends to discuss cool stuff"
|
placeholder: "A place for Jane and her friends to discuss cool stuff"
|
||||||
|
short_site_description:
|
||||||
|
label: "Describe your community in few words"
|
||||||
|
placeholder: "Best community ever"
|
||||||
|
|
||||||
introduction:
|
introduction:
|
||||||
title: "Introduction"
|
title: "Introduction"
|
||||||
|
|
|
@ -31,6 +31,8 @@ required:
|
||||||
default: 'Discourse'
|
default: 'Discourse'
|
||||||
site_description:
|
site_description:
|
||||||
default: ''
|
default: ''
|
||||||
|
short_site_description:
|
||||||
|
default: ''
|
||||||
contact_email:
|
contact_email:
|
||||||
client: true
|
client: true
|
||||||
default: ''
|
default: ''
|
||||||
|
|
|
@ -33,12 +33,13 @@ class Wizard
|
||||||
@wizard.append_step('forum-title') do |step|
|
@wizard.append_step('forum-title') do |step|
|
||||||
step.add_field(id: 'title', type: 'text', required: true, value: SiteSetting.title)
|
step.add_field(id: 'title', type: 'text', required: true, value: SiteSetting.title)
|
||||||
step.add_field(id: 'site_description', type: 'text', required: true, value: SiteSetting.site_description)
|
step.add_field(id: 'site_description', type: 'text', required: true, value: SiteSetting.site_description)
|
||||||
|
step.add_field(id: 'short_site_description', type: 'text', required: false, value: SiteSetting.short_site_description)
|
||||||
|
|
||||||
step.on_update do |updater|
|
step.on_update do |updater|
|
||||||
updater.ensure_changed(:title)
|
updater.ensure_changed(:title)
|
||||||
|
|
||||||
if updater.errors.blank?
|
if updater.errors.blank?
|
||||||
updater.apply_settings(:title, :site_description)
|
updater.apply_settings(:title, :site_description, :short_site_description)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -37,6 +37,18 @@ describe CategoriesController do
|
||||||
expect(json['topic_list_latest']).to include(%{"more_topics_url":"/latest"})
|
expect(json['topic_list_latest']).to include(%{"more_topics_url":"/latest"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "Shows correct title if category list is set for homepage" do
|
||||||
|
SiteSetting.top_menu = "categories|latest"
|
||||||
|
get "/"
|
||||||
|
|
||||||
|
expect(response.body).to have_tag "title", text: "Discourse"
|
||||||
|
|
||||||
|
SiteSetting.short_site_description = "Official community"
|
||||||
|
get "/"
|
||||||
|
|
||||||
|
expect(response.body).to have_tag "title", text: "Discourse - Official community"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'extensibility event' do
|
context 'extensibility event' do
|
||||||
|
|
|
@ -5,8 +5,10 @@ RSpec.describe ListController do
|
||||||
let(:group) { Fabricate(:group) }
|
let(:group) { Fabricate(:group) }
|
||||||
let(:user) { Fabricate(:user) }
|
let(:user) { Fabricate(:user) }
|
||||||
let(:post) { Fabricate(:post, user: user) }
|
let(:post) { Fabricate(:post, user: user) }
|
||||||
|
let(:admin) { Fabricate(:admin) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
|
admin # to skip welcome wizard at home page `/`
|
||||||
SiteSetting.top_menu = 'latest|new|unread|categories'
|
SiteSetting.top_menu = 'latest|new|unread|categories'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -77,6 +79,17 @@ RSpec.describe ListController do
|
||||||
parsed = JSON.parse(response.body)
|
parsed = JSON.parse(response.body)
|
||||||
expect(parsed["topic_list"]["topics"].length).to eq(1)
|
expect(parsed["topic_list"]["topics"].length).to eq(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "shows correct title if topic list is set for homepage" do
|
||||||
|
get "/"
|
||||||
|
|
||||||
|
expect(response.body).to have_tag "title", text: "Discourse"
|
||||||
|
|
||||||
|
SiteSetting.short_site_description = "Best community"
|
||||||
|
get "/"
|
||||||
|
|
||||||
|
expect(response.body).to have_tag "title", text: "Discourse - Best community"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "categories and X" do
|
describe "categories and X" do
|
||||||
|
|
Loading…
Reference in New Issue