Commit a72fb5dd8808f76dc77d3b288a0dbcc01fb5c51d
1 parent
9a799cfa
Exists in
master
and in
29 other branches
Better styles for default layout and small improvements in the UI
(ActionItem2928)
Showing
7 changed files
with
37 additions
and
49 deletions
Show diff stats
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> |
| @@ -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 < ActionController::TestCase | @@ -366,16 +366,4 @@ class EnvironmentDesignControllerTest < 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 |