Commit a72fb5dd8808f76dc77d3b288a0dbcc01fb5c51d

Authored by Joenio Costa
1 parent 9a799cfa

Better styles for default layout and small improvements in the UI

(ActionItem2928)
app/controllers/box_organizer_controller.rb
@@ -99,17 +99,6 @@ class BoxOrganizerController < ApplicationController @@ -99,17 +99,6 @@ class BoxOrganizerController < ApplicationController
99 end 99 end
100 end 100 end
101 101
102 - def update_categories  
103 - @object = params[:id] ? boxes_holder.blocks.find(params[:id]) : nil  
104 - if params[:category_id]  
105 - @current_category = Category.find(params[:category_id])  
106 - @categories = @current_category.children  
107 - else  
108 - @categories = environment.top_level_categories  
109 - end  
110 - render :partial => 'shared/select_categories', :locals => {:object_name => 'block', :multiple => true}, :layout => false  
111 - end  
112 -  
113 protected :boxes_editor? 102 protected :boxes_editor?
114 103
115 end 104 end
app/controllers/my_profile/cms_controller.rb
@@ -221,11 +221,10 @@ class CmsController < MyProfileController @@ -221,11 +221,10 @@ class CmsController < MyProfileController
221 221
222 def update_categories 222 def update_categories
223 @object = params[:id] ? @profile.articles.find(params[:id]) : Article.new 223 @object = params[:id] ? @profile.articles.find(params[:id]) : Article.new
  224 + @categories = @toplevel_categories = environment.top_level_categories
224 if params[:category_id] 225 if params[:category_id]
225 @current_category = Category.find(params[:category_id]) 226 @current_category = Category.find(params[:category_id])
226 @categories = @current_category.children 227 @categories = @current_category.children
227 - else  
228 - @categories = environment.top_level_categories  
229 end 228 end
230 render :partial => 'shared/select_categories', :locals => {:object_name => 'article', :multiple => true}, :layout => false 229 render :partial => 'shared/select_categories', :locals => {:object_name => 'article', :multiple => true}, :layout => false
231 end 230 end
app/controllers/my_profile/profile_editor_controller.rb
@@ -55,11 +55,10 @@ class ProfileEditorController < MyProfileController @@ -55,11 +55,10 @@ class ProfileEditorController < MyProfileController
55 55
56 def update_categories 56 def update_categories
57 @object = profile 57 @object = profile
  58 + @categories = @toplevel_categories = environment.top_level_categories
58 if params[:category_id] 59 if params[:category_id]
59 @current_category = Category.find(params[:category_id]) 60 @current_category = Category.find(params[:category_id])
60 @categories = @current_category.children 61 @categories = @current_category.children
61 - else  
62 - @categories = environment.top_level_categories  
63 end 62 end
64 render :partial => 'shared/select_categories', :locals => {:object_name => 'profile_data', :multiple => true}, :layout => false 63 render :partial => 'shared/select_categories', :locals => {:object_name => 'profile_data', :multiple => true}, :layout => false
65 end 64 end
app/views/shared/_select_categories.rhtml
1 <% extend CategoriesHelper %> 1 <% extend CategoriesHelper %>
2 2
3 -<% categories_for_selection = @categories.select{|i| !@object.respond_to?(:accept_category?) || @object.accept_category?(i)} %>  
4 -  
5 <% if !@current_category.nil? %> 3 <% if !@current_category.nil? %>
6 <%= hidden_field_tag "#{object_name}[#{object_name}_category_id]", @current_category.id unless multiple %> 4 <%= hidden_field_tag "#{object_name}[#{object_name}_category_id]", @current_category.id unless multiple %>
7 <%= hidden_field_tag "#{object_name}[category_ids][]", @current_category.id if multiple %> 5 <%= hidden_field_tag "#{object_name}[category_ids][]", @current_category.id if multiple %>
@@ -26,24 +24,11 @@ @@ -26,24 +24,11 @@
26 page.insert_html :bottom, 'selected-categories', content_tag('div', 24 page.insert_html :bottom, 'selected-categories', content_tag('div',
27 hidden_field_tag("#{object_name}[category_ids][]", categories.first.id) + 25 hidden_field_tag("#{object_name}[category_ids][]", categories.first.id) +
28 selected_category_link(categories.first), :id => "selected-category-#{categories.first.id}") 26 selected_category_link(categories.first), :id => "selected-category-#{categories.first.id}")
  27 + page.replace_html 'select-categories', :partial => 'shared/select_subcategories',
  28 + :locals => {:object_name => object_name, :categories => @toplevel_categories}
29 end if multiple %> 29 end if multiple %>
30 - <% unless categories_for_selection.empty? %>  
31 - <hr>  
32 - <div class="category-helper-label"><%= _('Click to select a subcategory') %></div>  
33 - <% end %>  
34 -<% else %>  
35 - <div class="category-helper-label"><%= _('Click to select a category') %></div>  
36 <% end %> 30 <% end %>
37 31
38 <div class="toplevel-categories"> 32 <div class="toplevel-categories">
39 -<% categories_for_selection.each do |category| %>  
40 - <%= link_to_remote category.name,  
41 - { :update => "select-categories",  
42 - :url => { :action => "update_categories", :category_id => category.id, :id => @object},  
43 - :loaded => visual_effect(:highlight, "select-categories")  
44 - },  
45 - :class => 'select-subcategory-link',  
46 - :id => "select-category-#{category.id}-link"  
47 - %>  
48 -<% end %> 33 + <%= render :partial => 'shared/select_subcategories', :locals => {:object_name => object_name, :categories => @categories} %>
49 </div> 34 </div>
app/views/shared/_select_subcategories.rhtml 0 → 100644
@@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
  1 +<% if !categories.nil? && !categories.empty? && !@object.nil? %>
  2 + <hr>
  3 + <div class="category-helper-label"><%= _('Click to select a category') %></div>
  4 +
  5 + <% categories.select{|i| @object.accept_category?(i)}.each do |category| %>
  6 +
  7 + <%= link_to_remote category.name,
  8 + { :update => "select-categories",
  9 + :url => { :action => "update_categories", :category_id => category.id, :id => @object},
  10 + :loaded => visual_effect(:highlight, "select-categories")
  11 + },
  12 + :class => 'select-subcategory-link',
  13 + :id => "select-category-#{category.id}-link"
  14 + %>
  15 + <% end %>
  16 +<% end %>
public/stylesheets/application.css
@@ -355,7 +355,8 @@ div.pending-tasks { @@ -355,7 +355,8 @@ div.pending-tasks {
355 } 355 }
356 /* * * category ajax selector * * */ 356 /* * * category ajax selector * * */
357 #category-ajax-selector .category-helper-label { 357 #category-ajax-selector .category-helper-label {
358 - font-size: 8pt; color: rgb(158, 158, 158); 358 + font-size: 16px;
  359 + color: rgb(158, 158, 158);
359 padding: 5px 0px; 360 padding: 5px 0px;
360 } 361 }
361 #category-ajax-selector { 362 #category-ajax-selector {
@@ -364,6 +365,7 @@ div.pending-tasks { @@ -364,6 +365,7 @@ div.pending-tasks {
364 margin: 0px 0px 0px 0px; 365 margin: 0px 0px 0px 0px;
365 position: relative; 366 position: relative;
366 font-size: 10px; 367 font-size: 10px;
  368 + background-color: #fcfcf9;
367 } 369 }
368 #category-ajax-selector a { 370 #category-ajax-selector a {
369 font-size: 12px; 371 font-size: 12px;
@@ -372,8 +374,9 @@ div.pending-tasks { @@ -372,8 +374,9 @@ div.pending-tasks {
372 padding-bottom: 5px; 374 padding-bottom: 5px;
373 } 375 }
374 #selected-categories .label { 376 #selected-categories .label {
375 - font-weight: bold; 377 + font-size: 16px;
376 margin-bottom: 10px; 378 margin-bottom: 10px;
  379 + margin-top: 5px;
377 } 380 }
378 .selected-category { 381 .selected-category {
379 padding: 2px 0; 382 padding: 2px 0;
@@ -399,8 +402,12 @@ div.pending-tasks { @@ -399,8 +402,12 @@ div.pending-tasks {
399 margin: 0px 1px; 402 margin: 0px 1px;
400 text-decoration: none; 403 text-decoration: none;
401 white-space: nowrap; 404 white-space: nowrap;
402 - font-size: 11px;  
403 - line-height: 18px; 405 + font-size: 12px;
  406 + line-height: 20px;
  407 + border-radius: 3px;
  408 +}
  409 +#category-ajax-selector .selected-category .select-subcategory-link {
  410 + border: 0;
404 } 411 }
405 #category-ajax-selector .select-subcategory-link:hover, 412 #category-ajax-selector .select-subcategory-link:hover,
406 .select-subcategory-link:hover { 413 .select-subcategory-link:hover {
@@ -410,6 +417,11 @@ div.pending-tasks { @@ -410,6 +417,11 @@ div.pending-tasks {
410 top: 4px; 417 top: 4px;
411 right: 2px; 418 right: 2px;
412 } 419 }
  420 +#category-ajax-selector hr {
  421 + border: 0;
  422 + border-bottom: 1px solid #EEE;
  423 + margin-top: 15px;
  424 +}
413 #profile-header, #profile-footer { 425 #profile-header, #profile-footer {
414 clear: both; 426 clear: both;
415 max-height: 150px; 427 max-height: 150px;
test/functional/environment_design_controller_test.rb
@@ -366,16 +366,4 @@ class EnvironmentDesignControllerTest &lt; ActionController::TestCase @@ -366,16 +366,4 @@ class EnvironmentDesignControllerTest &lt; ActionController::TestCase
366 assert @controller.instance_variable_get('@side_block_types').include?(CustomBlock8) 366 assert @controller.instance_variable_get('@side_block_types').include?(CustomBlock8)
367 end 367 end
368 368
369 - should 'update categories' do  
370 - env = Environment.default  
371 - login_as(create_admin_user(env))  
372 - top = env.categories.create!(:display_in_menu => true, :name => 'Top-Level category')  
373 - c1 = env.categories.create!(:display_in_menu => true, :name => "Test category 1", :parent_id => top.id)  
374 - c2 = env.categories.create!(:display_in_menu => true, :name => "Test category 2", :parent_id => top.id)  
375 - get :update_categories, :category_id => top.id  
376 - assert_template 'shared/_select_categories'  
377 - assert_equal top, assigns(:current_category)  
378 - assert_equal [c1, c2], assigns(:categories)  
379 - end  
380 -  
381 end 369 end