Changes suggested in PR:
* Delete all things related to banner images and styles (in code) * Add a new test to check that the banner is showing correctly * Update the specs accordingly to match the changes Update dev_seed to set a random background_color and a font_color for banners (and remove everything about image and style) Add a rake task to migrate the banner style to backgroun_color and font_color (so that the banners have the same colors than before)
This commit is contained in:
@@ -24,21 +24,13 @@ App.Banners =
|
|||||||
change: ->
|
change: ->
|
||||||
App.Banners.update_banner("#js-banner-description", $(this).val())
|
App.Banners.update_banner("#js-banner-description", $(this).val())
|
||||||
|
|
||||||
$("#banner_style").on
|
|
||||||
change: ->
|
|
||||||
App.Banners.update_style("#js-banner-style", $(this).val())
|
|
||||||
|
|
||||||
$("#banner_image").on
|
|
||||||
change: ->
|
|
||||||
App.Banners.update_style("#js-banner-image", $(this).val())
|
|
||||||
|
|
||||||
$("#banner_background_color_picker").on
|
$("#banner_background_color_picker").on
|
||||||
change: ->
|
change: ->
|
||||||
App.Banners.update_background_color("#js-banner-style", "#banner_background_color", $(this).val());
|
App.Banners.update_background_color("#js-banner-background", "#banner_background_color", $(this).val());
|
||||||
|
|
||||||
$("#banner_background_color").on
|
$("#banner_background_color").on
|
||||||
change: ->
|
change: ->
|
||||||
App.Banners.update_background_color("#js-banner-style", "#banner_background_color_picker", $(this).val());
|
App.Banners.update_background_color("#js-banner-background", "#banner_background_color_picker", $(this).val());
|
||||||
|
|
||||||
$("#banner_font_color_picker").on
|
$("#banner_font_color_picker").on
|
||||||
change: ->
|
change: ->
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ class Admin::BannersController < Admin::BaseController
|
|||||||
|
|
||||||
has_filters %w{all with_active with_inactive}, only: :index
|
has_filters %w{all with_active with_inactive}, only: :index
|
||||||
|
|
||||||
before_action :banner_styles, only: [:edit, :new, :create, :update]
|
|
||||||
before_action :banner_imgs, only: [:edit, :new, :create, :update]
|
|
||||||
before_action :banner_sections, only: [:edit, :new, :create, :update]
|
before_action :banner_sections, only: [:edit, :new, :create, :update]
|
||||||
|
|
||||||
respond_to :html, :js
|
respond_to :html, :js
|
||||||
@@ -39,7 +37,7 @@ class Admin::BannersController < Admin::BaseController
|
|||||||
private
|
private
|
||||||
|
|
||||||
def banner_params
|
def banner_params
|
||||||
attributes = [:title, :description, :target_url, :style, :image,
|
attributes = [:title, :description, :target_url,
|
||||||
:post_started_at, :post_ended_at,
|
:post_started_at, :post_ended_at,
|
||||||
:background_color, :font_color,
|
:background_color, :font_color,
|
||||||
web_section_ids: []]
|
web_section_ids: []]
|
||||||
|
|||||||
@@ -77,12 +77,10 @@
|
|||||||
<%= f.submit(class: "button expanded", value: t("admin.banners.edit.form.submit_button")) %>
|
<%= f.submit(class: "button expanded", value: t("admin.banners.edit.form.submit_button")) %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="js-banner-style" class="<%= @banner.style %> banner" style="background-color:<%= @banner.background_color %>">
|
<div id="js-banner-background" class="banner" style="background-color:<%= @banner.background_color %>">
|
||||||
<div id="js-banner-image" class="<%= @banner.image %>">
|
<%= link_to @banner.target_url do %>
|
||||||
<%= link_to @banner.target_url do %>
|
<h2 id="js-banner-title" style="color:<%= @banner.font_color %>"><%= @banner.title %></h2>
|
||||||
<h2 id="js-banner-title" style="color:<%= @banner.font_color %>"><%= @banner.title %></h2>
|
<h3 id="js-banner-description" style="color:<%= @banner.font_color %>"><%= @banner.description %></h3>
|
||||||
<h3 id="js-banner-description" style="color:<%= @banner.font_color %>"><%= @banner.description %></h3>
|
<% end %>
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -37,13 +37,11 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3">
|
<td colspan="3">
|
||||||
<div class="<%= banner.style %> banner" style="background-color:<%= banner.background_color %>">
|
<div class="banner" style="background-color:<%= banner.background_color %>">
|
||||||
<div class="<%= banner.image %>">
|
<%= link_to banner.target_url do %>
|
||||||
<%= link_to banner.target_url do %>
|
<h2 style="color:<%= banner.font_color %>"><%= banner.title %></h2>
|
||||||
<h2 style="color:<%= banner.font_color %>"><%= banner.title %></h2>
|
<h3 style="color:<%= banner.font_color %>"><%= banner.description %></h3>
|
||||||
<h3 style="color:<%= banner.font_color %>"><%= banner.description %></h3>
|
<% end %>
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
<% banner = @banners.sample %>
|
<% banner = @banners.sample %>
|
||||||
<div class="<%= banner.style %>">
|
<div class="banner" style="background-color:<%= banner.background_color %>">
|
||||||
<div class="<%= banner.image %>">
|
<%= link_to banner.target_url do %>
|
||||||
<%= link_to banner.target_url do %>
|
<h2 style="color:<%= banner.font_color %>"><%=banner.title %></h2>
|
||||||
<h2><%=banner.title %></h2>
|
<h3 style="color:<%= banner.font_color %>"><%=banner.description %></h3>
|
||||||
<h3><%=banner.description %></h3>
|
<% end %>
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
20
lib/tasks/banners.rake
Normal file
20
lib/tasks/banners.rake
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
namespace :banners do
|
||||||
|
|
||||||
|
desc "Migrate styles to background_color and font_color"
|
||||||
|
task migrate_style: :environment do
|
||||||
|
|
||||||
|
Banner.all.each do |banner|
|
||||||
|
banner.font_color = '#FFFFFF'
|
||||||
|
case banner.style
|
||||||
|
when "banner-style banner-style-one"
|
||||||
|
banner.background_color = '#004a83'
|
||||||
|
when "banner-style banner-style-two"
|
||||||
|
banner.background_color = '#7e328a'
|
||||||
|
when "banner-style banner-style-three"
|
||||||
|
banner.background_color = '#33dadf'
|
||||||
|
end
|
||||||
|
banner.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
@@ -738,11 +738,11 @@ FactoryBot.define do
|
|||||||
factory :banner do
|
factory :banner do
|
||||||
sequence(:title) { |n| "Banner title #{n}" }
|
sequence(:title) { |n| "Banner title #{n}" }
|
||||||
sequence(:description) { |n| "This is the text of Banner #{n}" }
|
sequence(:description) { |n| "This is the text of Banner #{n}" }
|
||||||
style {["banner-style-one", "banner-style-two", "banner-style-three"].sample}
|
|
||||||
image {["banner.banner-img-one", "banner.banner-img-two", "banner.banner-img-three"].sample}
|
|
||||||
target_url {["/proposals", "/debates" ].sample}
|
target_url {["/proposals", "/debates" ].sample}
|
||||||
post_started_at { Time.current - 7.days }
|
post_started_at { Time.current - 7.days }
|
||||||
post_ended_at { Time.current + 7.days }
|
post_ended_at { Time.current + 7.days }
|
||||||
|
background_color '#FF0000'
|
||||||
|
font_color '#FFFFFF'
|
||||||
end
|
end
|
||||||
|
|
||||||
factory :proposal_notification do
|
factory :proposal_notification do
|
||||||
|
|||||||
@@ -11,42 +11,42 @@ feature 'Admin banners magement' do
|
|||||||
@banner1 = create(:banner, title: "Banner number one",
|
@banner1 = create(:banner, title: "Banner number one",
|
||||||
description: "This is the text of banner number one and is not active yet",
|
description: "This is the text of banner number one and is not active yet",
|
||||||
target_url: "http://www.url.com",
|
target_url: "http://www.url.com",
|
||||||
style: "banner-style.banner-one",
|
|
||||||
image: "banner-img.banner-one",
|
|
||||||
post_started_at: (Time.current + 4.days),
|
post_started_at: (Time.current + 4.days),
|
||||||
post_ended_at: (Time.current + 10.days))
|
post_ended_at: (Time.current + 10.days),
|
||||||
|
background_color: '#FF0000',
|
||||||
|
font_color: '#FFFFFF')
|
||||||
|
|
||||||
@banner2 = create(:banner, title: "Banner number two",
|
@banner2 = create(:banner, title: "Banner number two",
|
||||||
description: "This is the text of banner number two and is not longer active",
|
description: "This is the text of banner number two and is not longer active",
|
||||||
target_url: "http://www.url.com",
|
target_url: "http://www.url.com",
|
||||||
style: "banner-style.banner-two",
|
|
||||||
image: "banner-img.banner-two",
|
|
||||||
post_started_at: (Time.current - 10.days),
|
post_started_at: (Time.current - 10.days),
|
||||||
post_ended_at: (Time.current - 3.days))
|
post_ended_at: (Time.current - 3.days),
|
||||||
|
background_color: '#00FF00',
|
||||||
|
font_color: '#FFFFFF')
|
||||||
|
|
||||||
@banner3 = create(:banner, title: "Banner number three",
|
@banner3 = create(:banner, title: "Banner number three",
|
||||||
description: "This is the text of banner number three and has style banner-three",
|
description: "This is the text of banner number three and has style banner-three",
|
||||||
target_url: "http://www.url.com",
|
target_url: "http://www.url.com",
|
||||||
style: "banner-style.banner-three",
|
|
||||||
image: "banner-img.banner-three",
|
|
||||||
post_started_at: (Time.current - 1.day),
|
post_started_at: (Time.current - 1.day),
|
||||||
post_ended_at: (Time.current + 10.days))
|
post_ended_at: (Time.current + 10.days),
|
||||||
|
background_color: '#0000FF',
|
||||||
|
font_color: '#FFFFFF')
|
||||||
|
|
||||||
@banner4 = create(:banner, title: "Banner number four",
|
@banner4 = create(:banner, title: "Banner number four",
|
||||||
description: "This is the text of banner number four and has style banner-one",
|
description: "This is the text of banner number four and has style banner-one",
|
||||||
target_url: "http://www.url.com",
|
target_url: "http://www.url.com",
|
||||||
style: "banner-style.banner-one",
|
|
||||||
image: "banner-img.banner-one",
|
|
||||||
post_started_at: (DateTime.current - 10.days),
|
post_started_at: (DateTime.current - 10.days),
|
||||||
post_ended_at: (DateTime.current + 10.days))
|
post_ended_at: (DateTime.current + 10.days),
|
||||||
|
background_color: '#FFF000',
|
||||||
|
font_color: '#FFFFFF')
|
||||||
|
|
||||||
@banner5 = create(:banner, title: "Banner number five",
|
@banner5 = create(:banner, title: "Banner number five",
|
||||||
description: "This is the text of banner number five and has style banner-two",
|
description: "This is the text of banner number five and has style banner-two",
|
||||||
target_url: "http://www.url.com",
|
target_url: "http://www.url.com",
|
||||||
style: "banner-style.banner-one",
|
|
||||||
image: "banner-img.banner-one",
|
|
||||||
post_started_at: (DateTime.current - 10.days),
|
post_started_at: (DateTime.current - 10.days),
|
||||||
post_ended_at: (DateTime.current + 10.days))
|
post_ended_at: (DateTime.current + 10.days),
|
||||||
|
background_color: '#FFFF00',
|
||||||
|
font_color: '#FFFFFF')
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'Index show active banners' do
|
scenario 'Index show active banners' do
|
||||||
@@ -112,14 +112,27 @@ feature 'Admin banners magement' do
|
|||||||
expect(page.find_field("banner_font_color_picker").value).to eq('#ffb2b2')
|
expect(page.find_field("banner_font_color_picker").value).to eq('#ffb2b2')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "Created banner is correctly shown in the web" do
|
||||||
|
banner = create(:banner, title: 'My banner', description: 'My description of the banner', target_url: '/debates', background_color: '#00FF00')
|
||||||
|
|
||||||
|
visit proposals_path
|
||||||
|
|
||||||
|
expect(find('.banner')[:style]).to eq("background-color:#00FF00")
|
||||||
|
|
||||||
|
within('.banner') do
|
||||||
|
expect(find('h2')[:style]).to eq("color:#{banner.font_color}")
|
||||||
|
expect(find('h3')[:style]).to eq("color:#{banner.font_color}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
scenario 'Edit banner with live refresh', :js do
|
scenario 'Edit banner with live refresh', :js do
|
||||||
banner1 = create(:banner, title: 'Hello',
|
banner1 = create(:banner, title: 'Hello',
|
||||||
description: 'Wrong text',
|
description: 'Wrong text',
|
||||||
target_url: 'http://www.url.com',
|
target_url: 'http://www.url.com',
|
||||||
style: 'banner-style.banner-one',
|
|
||||||
image: 'banner-img.banner-one',
|
|
||||||
post_started_at: (Time.current + 4.days),
|
post_started_at: (Time.current + 4.days),
|
||||||
post_ended_at: (Time.current + 10.days))
|
post_ended_at: (Time.current + 10.days),
|
||||||
|
background_color: '#FF0000',
|
||||||
|
font_color: '#FFFFFF')
|
||||||
|
|
||||||
visit admin_root_path
|
visit admin_root_path
|
||||||
|
|
||||||
@@ -135,7 +148,7 @@ feature 'Admin banners magement' do
|
|||||||
select 'Banner style 1', from: 'banner_style'
|
select 'Banner style 1', from: 'banner_style'
|
||||||
select 'Banner image 2', from: 'banner_image'
|
select 'Banner image 2', from: 'banner_image'
|
||||||
|
|
||||||
within('div#js-banner-style') do
|
within('div#js-banner-background') do
|
||||||
expect(page).to have_selector('h2', text: 'Modified title')
|
expect(page).to have_selector('h2', text: 'Modified title')
|
||||||
expect(page).to have_selector('h3', text: 'Edited text')
|
expect(page).to have_selector('h3', text: 'Edited text')
|
||||||
end
|
end
|
||||||
@@ -154,10 +167,10 @@ feature 'Admin banners magement' do
|
|||||||
create(:banner, title: 'Ugly banner',
|
create(:banner, title: 'Ugly banner',
|
||||||
description: 'Bad text',
|
description: 'Bad text',
|
||||||
target_url: 'http://www.url.com',
|
target_url: 'http://www.url.com',
|
||||||
style: 'banner-style.banner-one',
|
|
||||||
image: 'banner-img.banner-one',
|
|
||||||
post_started_at: (Time.current + 4.days),
|
post_started_at: (Time.current + 4.days),
|
||||||
post_ended_at: (Time.current + 10.days))
|
post_ended_at: (Time.current + 10.days),
|
||||||
|
background_color: '#FF0000',
|
||||||
|
font_color: '#FFFFFF')
|
||||||
|
|
||||||
visit admin_root_path
|
visit admin_root_path
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user