diff --git a/app/decorators/campaign_decorator.rb b/app/decorators/campaign_decorator.rb index ea8fbd9e3..819cd9c0c 100644 --- a/app/decorators/campaign_decorator.rb +++ b/app/decorators/campaign_decorator.rb @@ -5,12 +5,21 @@ class CampaignDecorator < ApplicationDecorator def sidebar_image(options) return unless show_in_sidebar? - img = image_tag(object.sidebar_image, options) + image_url = Images::Optimizer.call(object.sidebar_image, width: 500) + img = image_tag(image_url, options) return link_to(img, url) if url img end + def header_text(count) + if display_name.present? + "#{Campaign.current.display_name} (#{count})" + else + I18n.t("views.campaign.subtitle", count: count) + end + end + def main_tag @main_tag ||= featured_tags.first end diff --git a/app/lib/constants/settings/campaign.rb b/app/lib/constants/settings/campaign.rb index db0d3dce6..aa2e9a348 100644 --- a/app/lib/constants/settings/campaign.rb +++ b/app/lib/constants/settings/campaign.rb @@ -10,6 +10,10 @@ module Constants description: "", placeholder: "Campaign stories show up on sidebar with approval?" }, + display_name: { + description: "This text is displayed in reference to the campaign in titles, etc.", + placeholder: "My great campaign" + }, call_to_action: { description: "This text populates the call to action button on the campaign sidebar", placeholder: "Share your project" diff --git a/app/models/campaign.rb b/app/models/campaign.rb index b486eb21e..3c7065d10 100644 --- a/app/models/campaign.rb +++ b/app/models/campaign.rb @@ -13,6 +13,7 @@ class Campaign articles_expiry_time articles_require_approval? call_to_action + display_name featured_tags hero_html_variant_name sidebar_enabled? diff --git a/app/models/settings/campaign.rb b/app/models/settings/campaign.rb index c25a19685..8c99cd4e1 100644 --- a/app/models/settings/campaign.rb +++ b/app/models/settings/campaign.rb @@ -6,6 +6,7 @@ module Settings setting :articles_expiry_time, type: :integer, default: 4 setting :articles_require_approval, type: :boolean, default: 0 setting :call_to_action, type: :string, default: -> { I18n.t("models.settings.campaign.share_your_project") } + setting :display_name, type: :string, default: "" setting :featured_tags, type: :array, default: %w[] setting :hero_html_variant_name, type: :string, default: "" setting :sidebar_enabled, type: :boolean, default: 0 diff --git a/app/views/admin/settings/forms/_campaign.html.erb b/app/views/admin/settings/forms/_campaign.html.erb index bfda2107f..e51e31cb1 100644 --- a/app/views/admin/settings/forms/_campaign.html.erb +++ b/app/views/admin/settings/forms/_campaign.html.erb @@ -11,6 +11,15 @@ } %>