[deploy] Add campaign url for sidebar link (#7943)
* Add campaign url for sidebar link * Add proper test
This commit is contained in:
parent
db1df9e078
commit
97bc5fd8b1
6 changed files with 34 additions and 2 deletions
|
|
@ -86,6 +86,7 @@ class Internal::ConfigsController < Internal::ApplicationController
|
|||
campaign_hero_html_variant_name
|
||||
campaign_sidebar_enabled
|
||||
campaign_sidebar_image
|
||||
campaign_url
|
||||
]
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue