[deploy] Add campaign url for sidebar link (#7943)

* Add campaign url for sidebar link

* Add proper test
This commit is contained in:
Ben Halpern 2020-05-19 14:31:34 -04:00 committed by GitHub
parent db1df9e078
commit 97bc5fd8b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 34 additions and 2 deletions

View file

@ -86,6 +86,7 @@ class Internal::ConfigsController < Internal::ApplicationController
campaign_hero_html_variant_name
campaign_sidebar_enabled
campaign_sidebar_image
campaign_url
]
end

View file

@ -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

View file

@ -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"

View file

@ -1,5 +1,9 @@
<div class="widget">
<% if SiteConfig.campaign_sidebar_image %>
<% if SiteConfig.campaign_sidebar_image && SiteConfig.campaign_url %>
<a href="<%= SiteConfig.campaign_url %>">
<img src="<%= SiteConfig.campaign_sidebar_image %>" class="widget-image" style="height:116px;" />
</a>
<% elsif SiteConfig.campaign_sidebar_image %>
<img src="<%= SiteConfig.campaign_sidebar_image %>" class="widget-image" style="height:116px;" />
<% end %>
<header>

View file

@ -278,6 +278,16 @@
<div class="alert alert-info">Used at the top of the campaign sidebar</div>
</div>
<div class="form-group">
<%= f.label :campaign_url %>
<%= f.text_field :campaign_url,
class: "form-control",
value: SiteConfig.campaign_url,
placeholder: "https://url.com/lander" %>
<div class="alert alert-info">URL campaign sidebar image will link to</div>
</div>
<div class="form-group">
<%= f.label :campaign_featured_tags %>
<%= f.text_field :campaign_featured_tags,

View file

@ -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('<a href="https://campaign-lander.com"')
end
it "does not display sidebar url if image is not present is set" do
SiteConfig.campaign_sidebar_enabled = true
SiteConfig.campaign_url = "https://campaign-lander.com"
get "/"
expect(response.body).not_to include('<a href="https://campaign-lander.com"')
end
end
end