Commit a992dc2fad5ecec0b7de7d41a74cf7a01274d595
Committed by
Antonio Terceiro
1 parent
fd4c6869
Exists in
master
and in
29 other branches
"Only in the homepage" for environment blocks too
Showing
4 changed files
with
26 additions
and
3 deletions
Show diff stats
app/helpers/boxes_helper.rb
... | ... | @@ -65,7 +65,7 @@ module BoxesHelper |
65 | 65 | end |
66 | 66 | |
67 | 67 | def display_box_content(box, main_content) |
68 | - context = { :article => @page } | |
68 | + context = { :article => @page, :request_path => request.path } | |
69 | 69 | box_decorator.select_blocks(box.blocks, context).map { |item| display_block(item, main_content) }.join("\n") + box_decorator.block_target(box) |
70 | 70 | end |
71 | 71 | ... | ... |
app/models/block.rb
... | ... | @@ -23,8 +23,12 @@ class Block < ActiveRecord::Base |
23 | 23 | if display == 'never' |
24 | 24 | return false |
25 | 25 | end |
26 | - if context && context[:article] && display == 'home_page_only' | |
27 | - return context[:article] == owner.home_page | |
26 | + if context && display == 'home_page_only' | |
27 | + if context[:article] | |
28 | + return context[:article] == owner.home_page | |
29 | + else | |
30 | + return context[:request_path] == '/' | |
31 | + end | |
28 | 32 | end |
29 | 33 | true |
30 | 34 | end | ... | ... |
test/functional/home_controller_test.rb
... | ... | @@ -52,4 +52,16 @@ all_fixtures |
52 | 52 | get :index |
53 | 53 | assert_tag :tag => 'div', :attributes => { :id => 'portal-news' } #, :descendant => {:tag => 'form', :attributes => {:action => '/account/activation_question'}} |
54 | 54 | end |
55 | + | |
56 | + should 'display block in index page if it\'s configured to display on homepage and its an environment block' do | |
57 | + env = Environment.default | |
58 | + box = Box.create(:owner_type => 'Environment', :owner_id => env.id) | |
59 | + block = Block.create(:title => "Index Block", :box_id => box.id, :display => 'home_page_only') | |
60 | + env.save! | |
61 | + | |
62 | + get :index | |
63 | + assert block.visible? | |
64 | + end | |
65 | + | |
66 | + | |
55 | 67 | end | ... | ... |
test/unit/block_test.rb
... | ... | @@ -86,6 +86,13 @@ class BlockTest < Test::Unit::TestCase |
86 | 86 | assert_equal false, block.visible?(:article => Article.new) |
87 | 87 | end |
88 | 88 | |
89 | + should 'be able to be displayed only in the homepage (index) of the environment' do | |
90 | + block = Block.new(:display => 'home_page_only') | |
91 | + | |
92 | + assert_equal true, block.visible?(:article => nil, :request_path => '/') | |
93 | + assert_equal false, block.visible?(:article => nil) | |
94 | + end | |
95 | + | |
89 | 96 | should 'be able to save display setting' do |
90 | 97 | user = create_user('testinguser').person |
91 | 98 | box = fast_create(Box, :owner_id => user.id) | ... | ... |