diff --git a/app/controllers/internal/configs_controller.rb b/app/controllers/internal/configs_controller.rb index c98c5fe7a..7040926ec 100644 --- a/app/controllers/internal/configs_controller.rb +++ b/app/controllers/internal/configs_controller.rb @@ -86,6 +86,7 @@ class Internal::ConfigsController < Internal::ApplicationController campaign_hero_html_variant_name campaign_sidebar_enabled campaign_sidebar_image + campaign_url ] end diff --git a/app/controllers/stories_controller.rb b/app/controllers/stories_controller.rb index 4949447cb..b71d054a2 100644 --- a/app/controllers/stories_controller.rb +++ b/app/controllers/stories_controller.rb @@ -69,7 +69,7 @@ class StoriesController < ApplicationController def get_latest_campaign_articles campaign_articles_scope = Article.tagged_with(SiteConfig.campaign_featured_tags, any: true). - where("published_at > ?", 2.weeks.ago).where(approved: true). + where("published_at > ?", 4.weeks.ago).where(approved: true). order("hotness_score DESC") @campaign_articles_count = campaign_articles_scope.count diff --git a/app/models/site_config.rb b/app/models/site_config.rb index a9be6468c..50ceecd44 100644 --- a/app/models/site_config.rb +++ b/app/models/site_config.rb @@ -59,6 +59,7 @@ class SiteConfig < RailsSettings::Base field :campaign_featured_tags, type: :array, default: %w[] field :campaign_sidebar_enabled, type: :boolean, default: 0 field :campaign_sidebar_image, type: :string, default: nil + field :campaign_url, type: :string, default: nil # Onboarding field :onboarding_taskcard_image, type: :string, default: "https://practicaldev-herokuapp-com.freetls.fastly.net/assets/staggered-dev.svg" diff --git a/app/views/articles/_sidebar_campaign.html.erb b/app/views/articles/_sidebar_campaign.html.erb index c5248b8a0..bf81789b2 100644 --- a/app/views/articles/_sidebar_campaign.html.erb +++ b/app/views/articles/_sidebar_campaign.html.erb @@ -1,5 +1,9 @@
- <% if SiteConfig.campaign_sidebar_image %> + <% if SiteConfig.campaign_sidebar_image && SiteConfig.campaign_url %> + + + + <% elsif SiteConfig.campaign_sidebar_image %> <% end %>
diff --git a/app/views/internal/configs/show.html.erb b/app/views/internal/configs/show.html.erb index 8974742c3..0b7884f9f 100644 --- a/app/views/internal/configs/show.html.erb +++ b/app/views/internal/configs/show.html.erb @@ -278,6 +278,16 @@
Used at the top of the campaign sidebar
+
+ <%= f.label :campaign_url %> + <%= f.text_field :campaign_url, + class: "form-control", + value: SiteConfig.campaign_url, + placeholder: "https://url.com/lander" %> +
URL campaign sidebar image will link to
+
+ +
<%= f.label :campaign_featured_tags %> <%= f.text_field :campaign_featured_tags, diff --git a/spec/requests/stories_index_spec.rb b/spec/requests/stories_index_spec.rb index c9d949ff6..0b8394524 100644 --- a/spec/requests/stories_index_spec.rb +++ b/spec/requests/stories_index_spec.rb @@ -170,6 +170,22 @@ RSpec.describe "StoriesIndex", type: :request do get "/" expect(response.body).not_to include(CGI.escapeHTML("Super-puper")) end + + it "displays sidebar url if campaign_url is set" do + SiteConfig.campaign_sidebar_enabled = true + SiteConfig.campaign_url = "https://campaign-lander.com" + SiteConfig.campaign_sidebar_image = "https://example.com/image.png" + get "/" + expect(response.body).to include('