From d9620af256246be150d015390a6f2912c2bba1f9 Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Tue, 10 Dec 2013 17:26:31 -0300 Subject: [PATCH] string-ext: convert class name to valid css class --- app/helpers/boxes_helper.rb | 8 ++------ app/models/article.rb | 2 +- app/models/box.rb | 2 +- lib/noosfero/core_ext/string.rb | 4 ++++ plugins/container_block/public/style.css | 20 ++++++++++---------- plugins/container_block/test/functional/container_block_home_controller_test.rb | 2 +- test/unit/boxes_helper_test.rb | 5 ----- test/unit/string_core_ext_test.rb | 4 ++++ 8 files changed, 23 insertions(+), 24 deletions(-) diff --git a/app/helpers/boxes_helper.rb b/app/helpers/boxes_helper.rb index a218d74..cf069d9 100644 --- a/app/helpers/boxes_helper.rb +++ b/app/helpers/boxes_helper.rb @@ -227,15 +227,11 @@ module BoxesHelper # DEPRECATED. Do not use this. def import_blocks_stylesheets(options = {}) - @blocks_css_files ||= current_blocks.map{|b|'blocks/' + block_css_class_name(b)}.uniq + @blocks_css_files ||= current_blocks.map{|b|'blocks/' + block.class.name.to_css_class}.uniq stylesheet_import(@blocks_css_files, options) end - - def block_css_class_name(block) - block.class.name.underscore.gsub('_', '-') - end def block_css_classes(block) - classes = block_css_class_name(block) + classes = block.class.name.to_css_class classes += ' invisible-block' if block.display == 'never' classes end diff --git a/app/models/article.rb b/app/models/article.rb index 4e11bb6..8596ae1 100644 --- a/app/models/article.rb +++ b/app/models/article.rb @@ -157,7 +157,7 @@ class Article < ActiveRecord::Base end def css_class_list - [self.class.name.underscore.dasherize] + [self.class.name.to_css_class] end def css_class_name diff --git a/app/models/box.rb b/app/models/box.rb index c6a15d6..fa3e419 100644 --- a/app/models/box.rb +++ b/app/models/box.rb @@ -78,7 +78,7 @@ class Box < ActiveRecord::Base private def to_css_class_name(blocks) - blocks.map{ |block| block.to_s.underscore.tr('_', '-') } + blocks.map{ |block| block.class.name.to_css_class } end end diff --git a/lib/noosfero/core_ext/string.rb b/lib/noosfero/core_ext/string.rb index aabc653..2c87ea8 100644 --- a/lib/noosfero/core_ext/string.rb +++ b/lib/noosfero/core_ext/string.rb @@ -80,6 +80,10 @@ class String transliterate.downcase.gsub(/[^\w~\s:;+=_."'`-]/, '').gsub(/[\s:;+=_"'`-]+/, '-').gsub(/-$/, '').gsub(/^-/, '').to_s end + def to_css_class + underscore.dasherize.gsub('/','_') + end + def fix_i18n self.sub('{fn} ', '') end diff --git a/plugins/container_block/public/style.css b/plugins/container_block/public/style.css index a4ba851..06f8b4f 100644 --- a/plugins/container_block/public/style.css +++ b/plugins/container_block/public/style.css @@ -1,46 +1,46 @@ -#content .boxes .container-block-plugin/container-block .container_block_child, .container-block-plugin/container-block .block-outer { +#content .boxes .container-block-plugin_container-block .container_block_child, .container-block-plugin_container-block .block-outer { display: inline-block; vertical-align: top; margin-left: -2px; margin-right: -2px; } -.container-block-plugin/container-block .block-target { +.container-block-plugin_container-block .block-target { clear: both; } -.container-block-plugin/container-block .block-target[id^='end-of-box-'] { +.container-block-plugin_container-block .block-target[id^='end-of-box-'] { display: none; } -#content .boxes .container-block-plugin/container-block .block .icon-down, #content .boxes .container-block-plugin/container-block .block .icon-down-disabled { +#content .boxes .container-block-plugin_container-block .block .icon-down, #content .boxes .container-block-plugin_container-block .block .icon-down-disabled { background-image: url(/designs/icons/default/Tango/16x16/actions/go-next.png); } -#content .boxes .container-block-plugin/container-block .block .icon-up, #content .boxes .container-block-plugin/container-block .block .icon-up-disabled { +#content .boxes .container-block-plugin_container-block .block .icon-up, #content .boxes .container-block-plugin_container-block .block .icon-up-disabled { background-image: url(/designs/icons/default/Tango/16x16/actions/go-previous.png); } -#content .boxes .container-block-plugin/container-block .block { +#content .boxes .container-block-plugin_container-block .block { outline-offset: -2px; } -#content .boxes .container-block-plugin/container-block .block .ui-resizable-handle { +#content .boxes .container-block-plugin_container-block .block .ui-resizable-handle { width: 10px; height: 28px; z-index: 0; } -#content .boxes .container-block-plugin/container-block .block .ui-resizable-e { +#content .boxes .container-block-plugin_container-block .block .ui-resizable-e { right: -2px; background-image: url(/plugins/container_block/images/handle_e.png); } -#content .boxes .container-block-plugin/container-block .block .ui-resizable-w { +#content .boxes .container-block-plugin_container-block .block .ui-resizable-w { left: -2px; background-image: url(/plugins/container_block/images/handle_w.png); } -.container-block-plugin/container-block .button-bar .icon-resize { +.container-block-plugin_container-block .button-bar .icon-resize { background-image: url(/designs/icons/default/Tango/16x16/actions/view-fullscreen.png); } diff --git a/plugins/container_block/test/functional/container_block_home_controller_test.rb b/plugins/container_block/test/functional/container_block_home_controller_test.rb index b9e062a..29d0836 100644 --- a/plugins/container_block/test/functional/container_block_home_controller_test.rb +++ b/plugins/container_block/test/functional/container_block_home_controller_test.rb @@ -28,7 +28,7 @@ class HomeControllerTest < ActionController::TestCase should 'display ContainerBlock' do get :index - assert_tag :div, :attributes => { :class => 'block container-block-plugin/container-block' } + assert_tag :div, :attributes => { :class => 'block container-block-plugin_container-block' } end should 'display container children' do diff --git a/test/unit/boxes_helper_test.rb b/test/unit/boxes_helper_test.rb index bf3e5b2..9998e1e 100644 --- a/test/unit/boxes_helper_test.rb +++ b/test/unit/boxes_helper_test.rb @@ -96,11 +96,6 @@ class BoxesHelperTest < ActiveSupport::TestCase assert_tag_in_string insert_boxes('main content'), :tag => "div", :attributes => { :id => 'profile-footer' }, :content => 'my custom footer' end - should 'calculate CSS class names correctly' do - assert_equal 'slideshow-block', block_css_class_name(SlideshowBlock.new) - assert_equal 'main-block', block_css_class_name(MainBlock.new) - end - should 'add invisible CSS class name for invisible blocks' do assert !block_css_classes(Block.new(:display => 'always')).split.any? { |item| item == 'invisible-block'} assert block_css_classes(Block.new(:display => 'never')).split.any? { |item| item == 'invisible-block'} diff --git a/test/unit/string_core_ext_test.rb b/test/unit/string_core_ext_test.rb index 12838c8..0561d1c 100644 --- a/test/unit/string_core_ext_test.rb +++ b/test/unit/string_core_ext_test.rb @@ -33,4 +33,8 @@ class StringCoreExtTest < ActiveSupport::TestCase assert_equal 'aaaaaaAAAAAeeeeEEOOoocaaaiIIiuuyYnNcC', 'ªáàäâåÁÀÄÂÅéèëêÊËÖÔöôçäàâîÏÎïûüÿŸñÑçÇ'.transliterate end + should 'convert to css class' do + assert_equal 'spaceship-propulsion_warp-core', "SpaceshipPropulsion::WarpCore".to_css_class + end + end -- libgit2 0.21.2