Commit 84475efd266f295fd4e63250493cb6ea329ee185

Authored by Leandro Santos
1 parent 0e391d12

refactoring block store view

app/helpers/box_organizer_helper.rb
1 1 module BoxOrganizerHelper
2 2  
  3 + def max_number_of_blocks_per_line
  4 + 7
  5 + end
  6 +
3 7 def icon_selector(icon = 'no-ico')
4 8 render :partial => 'icon_selector', :locals => { :icon => icon }
5 9 end
... ... @@ -10,4 +14,4 @@ module BoxOrganizerHelper
10 14 end
11 15 end
12 16  
13   -end
14 17 \ No newline at end of file
  18 +end
... ...
app/models/block.rb
... ... @@ -139,10 +139,6 @@ class Block < ActiveRecord::Base
139 139 "/images/icon_block.png"
140 140 end
141 141  
142   - def self.position
143   - [1,2,3]
144   - end
145   -
146 142 # Returns the content to be used for this block.
147 143 #
148 144 # This method can return several types of objects:
... ...
app/views/box_organizer/index.html.erb
... ... @@ -7,24 +7,24 @@
7 7 <%= button(:back, _('Back to control panel'), :controller => (profile.nil? ? 'admin_panel': 'profile_editor')) %>
8 8 <% end %>
9 9  
10   -<% cont = 0 %>
11   -<% i = 0 %>
  10 +<% n_blocks_in_line = 0 %>
  11 +<% last_block = @blocks.last %>
12 12  
13 13 <div id="block-types-container">
14 14 <div id="block-types">
15 15  
16 16 <% @blocks.each do |block| %>
17 17  
18   - <% if cont == 0 && i < @blocks.length %>
  18 + <% if n_blocks_in_line == 0 %>
19 19 <div class="block-types-group">
20 20 <% end %>
21 21  
22   - <% cont += 1 %>
  22 + <% n_blocks_in_line += 1 %>
23 23  
24 24 <div id="block-<%=block.name%>" class="block-type <%= block.name.to_css_class %> drag">
25 25 <div class="button-bar">
26 26 <%= link_to content_tag('span', _('Help on this block')),
27   - {:controller => 'environment_design', :action => 'show_block_type_info', :type => block.name},
  27 + {:action => 'show_block_type_info', :type => block.name},
28 28 :class => "button icon-button icon-help colorbox",
29 29 :title => _('Help on this block') %>
30 30 <br style="clear: left">
... ... @@ -37,13 +37,11 @@
37 37  
38 38 <%= draggable_element("block-#{block.name}", :revert => true) %>
39 39  
40   - <% if cont == 7 || i == (@blocks.length - 1) %>
41   - <% cont = 0 %>
  40 + <% if n_blocks_in_line == max_number_of_blocks_per_line || last_block == block %>
  41 + <% n_blocks_in_line = 0 %>
42 42 </div>
43 43 <% end %>
44 44  
45   - <% i += 1 %>
46   -
47 45 <% end %>
48 46  
49 47 </div>
... ...
test/functional/environment_design_controller_test.rb
... ... @@ -352,4 +352,21 @@ class EnvironmentDesignControllerTest &lt; ActionController::TestCase
352 352 assert_equal json_response, []
353 353 end
354 354  
  355 + should 'display all available blocks in groups' do
  356 + login_as(create_admin_user(Environment.default))
  357 + get :index
  358 + assert_select 'div.block-types-group', 3
  359 +
  360 + assert_select 'div.block-types-group' do |elements|
  361 + assert_select 'div.block-type', 15
  362 + end
  363 + end
  364 +
  365 + should 'paginate the block store with 7 elements per line' do
  366 + assert_equal 15, @controller.available_blocks.length
  367 + login_as(create_admin_user(Environment.default))
  368 + get :index
  369 + assert_select 'div.block-types-group', 3, "something wrong happens with the pagination of the block store"
  370 + end
  371 +
355 372 end
... ...
test/unit/box_organizer_helper_test.rb 0 → 100644
... ... @@ -0,0 +1,12 @@
  1 +# encoding: UTF-8
  2 +require File.dirname(__FILE__) + '/../test_helper'
  3 +
  4 +class BoxOrganizerHelperTest < ActiveSupport::TestCase
  5 +
  6 + include BoxOrganizerHelper
  7 +
  8 + should 'max number of blocks be 7' do
  9 + assert_equal 7, max_number_of_blocks_per_line
  10 + end
  11 +
  12 +end
... ...