Commit 76f0404512f9e275d65f8b86cb5f9eba9a182646

Authored by Joenio Costa
1 parent b5f245c4

Use select instead of radio button to choose display options

(ActionItem3037)
app/models/block.rb
... ... @@ -185,12 +185,12 @@ class Block < ActiveRecord::Base
185 185 'never' => __('Don\'t display'),
186 186 }
187 187  
188   - def display_options
  188 + def display_options_available
189 189 DISPLAY_OPTIONS.keys
190 190 end
191 191  
192   - def display_option_label(option)
193   - DISPLAY_OPTIONS[option]
  192 + def display_options
  193 + DISPLAY_OPTIONS.slice(*display_options_available)
194 194 end
195 195  
196 196 def display_user_options
... ...
app/models/main_block.rb
... ... @@ -24,7 +24,7 @@ class MainBlock < Block
24 24 false
25 25 end
26 26  
27   - def display_options
  27 + def display_options_available
28 28 ['always', 'except_home_page']
29 29 end
30 30  
... ...
app/views/box_organizer/edit.rhtml
... ... @@ -7,13 +7,10 @@
7 7  
8 8 <%= render :partial => partial_for_class(@block.class) %>
9 9  
10   - <%= labelled_form_field _('Display this block:'), '' %>
11   - <div style='margin-left: 10px'>
12   - <% @block.display_options.each do |option| %>
13   - <%= radio_button(:block, :display, option) %>
14   - <%= label_tag("block_display_#{option}", _(@block.display_option_label(option))) %>
15   - <br/>
16   - <% end %>
  10 + <div class="display">
  11 + <%= labelled_form_field _('Display this block:'),
  12 + select_tag('block[display]', options_from_collection_for_select(@block.display_options, :first, :last, @block.display))
  13 + %>
17 14 </div>
18 15 <div class="display_user">
19 16 <%= labelled_form_field _('Display to users:'), '' %>
... ...
test/functional/profile_design_controller_test.rb
... ... @@ -173,7 +173,8 @@ class ProfileDesignControllerTest &lt; ActionController::TestCase
173 173 should 'have options to display blocks' do
174 174 get :edit, :profile => 'designtestuser', :id => @b1.id
175 175 %w[always home_page_only except_home_page never].each do |option|
176   - assert_tag :input, :attributes => { :type => 'radio', :value => option}
  176 + assert_tag :select, :attributes => {:name => 'block[display]'},
  177 + :descendant => {:tag => 'option', :attributes => {:value => option}}
177 178 end
178 179 end
179 180  
... ... @@ -302,22 +303,26 @@ class ProfileDesignControllerTest &lt; ActionController::TestCase
302 303  
303 304 should 'not edit main block with never option' do
304 305 get :edit, :profile => 'designtestuser', :id => @b4.id
305   - assert_no_tag :input, :attributes => { :type => 'radio', :value => 'never'}
  306 + assert_no_tag :select, :attributes => {:name => 'block[display]'},
  307 + :descendant => {:tag => 'option', :attributes => {:value => 'never'}}
306 308 end
307 309  
308 310 should 'not edit main block with home_page_only option' do
309 311 get :edit, :profile => 'designtestuser', :id => @b4.id
310   - assert_no_tag :input, :attributes => { :type => 'radio', :value => 'home_page_only'}
  312 + assert_no_tag :select, :attributes => {:name => 'block[display]'},
  313 + :descendant => {:tag => 'option', :attributes => {:value => 'home_page_only'}}
311 314 end
312 315  
313 316 should 'edit main block with always option' do
314 317 get :edit, :profile => 'designtestuser', :id => @b4.id
315   - assert_tag :input, :attributes => { :type => 'radio', :value => 'always'}
  318 + assert_tag :select, :attributes => {:name => 'block[display]'},
  319 + :descendant => {:tag => 'option', :attributes => {:value => 'always'}}
316 320 end
317 321  
318 322 should 'edit main block with except_home_page option' do
319 323 get :edit, :profile => 'designtestuser', :id => @b4.id
320   - assert_tag :input, :attributes => { :type => 'radio', :value => 'except_home_page'}
  324 + assert_tag :select, :attributes => {:name=> 'block[display]'},
  325 + :descendant => {:tag => 'option', :attributes => {:value => 'except_home_page'}}
321 326 end
322 327  
323 328  
... ...