From 84475efd266f295fd4e63250493cb6ea329ee185 Mon Sep 17 00:00:00 2001 From: Leandro Nunes dos Santos Date: Tue, 19 Aug 2014 09:16:05 -0300 Subject: [PATCH] refactoring block store view --- app/helpers/box_organizer_helper.rb | 6 +++++- app/models/block.rb | 4 ---- app/views/box_organizer/index.html.erb | 16 +++++++--------- test/functional/environment_design_controller_test.rb | 17 +++++++++++++++++ test/unit/box_organizer_helper_test.rb | 12 ++++++++++++ 5 files changed, 41 insertions(+), 14 deletions(-) create mode 100644 test/unit/box_organizer_helper_test.rb diff --git a/app/helpers/box_organizer_helper.rb b/app/helpers/box_organizer_helper.rb index ba05552..86e2c0d 100644 --- a/app/helpers/box_organizer_helper.rb +++ b/app/helpers/box_organizer_helper.rb @@ -1,5 +1,9 @@ module BoxOrganizerHelper + def max_number_of_blocks_per_line + 7 + end + def icon_selector(icon = 'no-ico') render :partial => 'icon_selector', :locals => { :icon => icon } end @@ -10,4 +14,4 @@ module BoxOrganizerHelper end end -end \ No newline at end of file +end diff --git a/app/models/block.rb b/app/models/block.rb index d4feb50..7f86b4f 100644 --- a/app/models/block.rb +++ b/app/models/block.rb @@ -139,10 +139,6 @@ class Block < ActiveRecord::Base "/images/icon_block.png" end - def self.position - [1,2,3] - end - # Returns the content to be used for this block. # # This method can return several types of objects: diff --git a/app/views/box_organizer/index.html.erb b/app/views/box_organizer/index.html.erb index 394ffa1..09f40c7 100644 --- a/app/views/box_organizer/index.html.erb +++ b/app/views/box_organizer/index.html.erb @@ -7,24 +7,24 @@ <%= button(:back, _('Back to control panel'), :controller => (profile.nil? ? 'admin_panel': 'profile_editor')) %> <% end %> -<% cont = 0 %> -<% i = 0 %> +<% n_blocks_in_line = 0 %> +<% last_block = @blocks.last %>
<% @blocks.each do |block| %> - <% if cont == 0 && i < @blocks.length %> + <% if n_blocks_in_line == 0 %>
<% end %> - <% cont += 1 %> + <% n_blocks_in_line += 1 %>
<%= link_to content_tag('span', _('Help on this block')), - {:controller => 'environment_design', :action => 'show_block_type_info', :type => block.name}, + {:action => 'show_block_type_info', :type => block.name}, :class => "button icon-button icon-help colorbox", :title => _('Help on this block') %>
@@ -37,13 +37,11 @@ <%= draggable_element("block-#{block.name}", :revert => true) %> - <% if cont == 7 || i == (@blocks.length - 1) %> - <% cont = 0 %> + <% if n_blocks_in_line == max_number_of_blocks_per_line || last_block == block %> + <% n_blocks_in_line = 0 %>
<% end %> - <% i += 1 %> - <% end %>
diff --git a/test/functional/environment_design_controller_test.rb b/test/functional/environment_design_controller_test.rb index 2d838d5..5f9eac5 100644 --- a/test/functional/environment_design_controller_test.rb +++ b/test/functional/environment_design_controller_test.rb @@ -352,4 +352,21 @@ class EnvironmentDesignControllerTest < ActionController::TestCase assert_equal json_response, [] end + should 'display all available blocks in groups' do + login_as(create_admin_user(Environment.default)) + get :index + assert_select 'div.block-types-group', 3 + + assert_select 'div.block-types-group' do |elements| + assert_select 'div.block-type', 15 + end + end + + should 'paginate the block store with 7 elements per line' do + assert_equal 15, @controller.available_blocks.length + login_as(create_admin_user(Environment.default)) + get :index + assert_select 'div.block-types-group', 3, "something wrong happens with the pagination of the block store" + end + end diff --git a/test/unit/box_organizer_helper_test.rb b/test/unit/box_organizer_helper_test.rb new file mode 100644 index 0000000..01f681f --- /dev/null +++ b/test/unit/box_organizer_helper_test.rb @@ -0,0 +1,12 @@ +# encoding: UTF-8 +require File.dirname(__FILE__) + '/../test_helper' + +class BoxOrganizerHelperTest < ActiveSupport::TestCase + + include BoxOrganizerHelper + + should 'max number of blocks be 7' do + assert_equal 7, max_number_of_blocks_per_line + end + +end -- libgit2 0.21.2