Commit 7d51ce8bb73d7cb3491dda7ae5f6fd00f826d91c

Authored by Rodrigo Souto
2 parents e27f555d b1c7003c

Merge commit 'refs/merge-requests/298' of git://gitorious.org/noosfero/noosfero …

…into merge-requests/298

Added html_safe that was missing on the block_helper new method

Conflicts:
	app/views/box_organizer/_highlights_block.rhtml
	test/unit/application_helper_test.rb
app/helpers/application_helper.rb
@@ -266,7 +266,10 @@ module ApplicationHelper @@ -266,7 +266,10 @@ module ApplicationHelper
266 end 266 end
267 267
268 def button_bar(options = {}, &block) 268 def button_bar(options = {}, &block)
269 - concat(content_tag('div', capture(&block) + tag('br', :style => 'clear: left;'), { :class => 'button-bar' }.merge(options))) 269 + options[:class].nil? ?
  270 + options[:class]='button-bar' :
  271 + options[:class]+=' button-bar'
  272 + concat(content_tag('div', capture(&block) + tag('br', :style => 'clear: left;'), options))
270 end 273 end
271 274
272 VIEW_EXTENSIONS = %w[.rhtml .html.erb] 275 VIEW_EXTENSIONS = %w[.rhtml .html.erb]
app/helpers/block_helper.rb
@@ -6,4 +6,21 @@ module BlockHelper @@ -6,4 +6,21 @@ module BlockHelper
6 content_tag 'h3', content_tag('span', h(title)), :class => tag_class 6 content_tag 'h3', content_tag('span', h(title)), :class => tag_class
7 end 7 end
8 8
  9 + def highlights_block_config_image_fields(block, image={})
  10 + "
  11 + <tr class=\"image-data-line\">
  12 + <td>
  13 + #{select_tag 'block[images][][image_id]', content_tag(:option) + option_groups_from_collection_for_select(block.folder_choices, :images, :name, :id, :name, image[:image_id].to_i).html_safe}
  14 + </td>
  15 + <td>#{text_field_tag 'block[images][][address]', image[:address], :class => 'highlight-address', :size => 20}</td>
  16 + <td>#{text_field_tag 'block[images][][position]', image[:position], :class => 'highlight-position', :size => 1}</td>
  17 + </tr><tr class=\"image-title\">
  18 + <td colspan=\"3\"><label>#{
  19 + content_tag('span', _('Title')) +
  20 + text_field_tag('block[images][][title]', image[:title], :class => 'highlight-title', :size => 45)
  21 + }</label></td>
  22 + </tr>
  23 + "
  24 + end
  25 +
9 end 26 end
app/views/box_organizer/_block_types.rhtml
@@ -1,10 +0,0 @@ @@ -1,10 +0,0 @@
1 -<% block_types.in_groups_of(2) do |block1, block2| %>  
2 - <div style='float: left; width: 48%; padding-top: 2px;'>  
3 - <%= labelled_radio_button(block1.description, :type, block1.name) %>  
4 - </div>  
5 - <% if block2 %>  
6 - <div style='float: left; width: 48%; padding-top: 2px;'>  
7 - <%= labelled_radio_button(block2.description, :type, block2.name) %>  
8 - </div>  
9 - <% end %>  
10 -<% end %>  
app/views/box_organizer/_highlights_block.rhtml
1 <strong><%= _('Highlights') %></strong> 1 <strong><%= _('Highlights') %></strong>
2 -<div id='edit-highlights-block' style='width:450px'>  
3 -<table id='highlights' class='noborder'>  
4 - <tr><th><%= _('Image') %></th><th><%= _('Address') %></th><th><%= _('Position') %></th><th><%= _('Title') %></th></tr> 2 +
  3 +<table class="noborder"><tbody id="highlights-data-table">
  4 + <tr><th><%= _('Image') %></th><th><%= _('Address') %></th><th><%= _('Position') %></th></tr>
5 <% for image in @block.images do %> 5 <% for image in @block.images do %>
6 - <tr>  
7 - <td>  
8 - <%= select_tag 'block[images][][image_id]', content_tag(:option) + option_groups_from_collection_for_select(@block.folder_choices, :images, :name, :id, :name, image[:image_id].to_i).html_safe, :style => "width: 100px" %></p>  
9 - </td>  
10 - <td><%= text_field_tag 'block[images][][address]', image[:address], :class => 'highlight-address', :size => 10 %></td>  
11 - <td><%= text_field_tag 'block[images][][position]', image[:position], :class => 'highlight-position', :size => 3 %></td>  
12 - <td><%= text_field_tag 'block[images][][title]', image[:title], :class => 'highlight-title', :size => 10 %></td>  
13 - </tr> 6 + <%= highlights_block_config_image_fields @block, image %>
14 <% end %> 7 <% end %>
15 -</table>  
16 -</div> 8 +</tbody></table>
17 9
18 <%= link_to_function(_('New highlight'), nil, :class => 'button icon-add with-text') do |page| 10 <%= link_to_function(_('New highlight'), nil, :class => 'button icon-add with-text') do |page|
19 - page.insert_html :bottom, 'highlights', content_tag('tr',  
20 - content_tag('td', select_tag('block[images][][image_id]', content_tag(:option) + option_groups_from_collection_for_select(@block.folder_choices, :images, :name, :id, :name).html_safe, :style => "width: 100px")) +  
21 - content_tag('td', text_field_tag('block[images][][address]', nil, :class => 'highlight-address', :size => 10)) +  
22 - content_tag('td', text_field_tag('block[images][][position]', nil, :class => 'highlight-position', :size => 3)) +  
23 - content_tag('td', text_field_tag('block[images][][title]', nil, :class => 'highlight-position', :size => 10))  
24 - ) +  
25 - javascript_tag("$('edit-link-list-block').scrollTop = $('edit-link-list-block').scrollHeight") 11 + page.insert_html :bottom, 'highlights-data-table', highlights_block_config_image_fields(@block)
26 end %> 12 end %>
27 13
28 <%= labelled_form_field _('Image transition:'), select('block', 'interval', [[_('No automatic transition'), 0]] + [1, 2, 3, 4, 5, 10, 20, 30, 60].map {|item| [n_('Every 1 second', 'Every %d seconds', item) % item, item]}) %> 14 <%= labelled_form_field _('Image transition:'), select('block', 'interval', [[_('No automatic transition'), 0]] + [1, 2, 3, 4, 5, 10, 20, 30, 60].map {|item| [n_('Every 1 second', 'Every %d seconds', item) % item, item]}) %>
app/views/box_organizer/add_block.rhtml
1 -<div style='height:350px'> 1 +<div id="add-block-dialog">
2 <% form_tag do %> 2 <% form_tag do %>
3 3
4 <p><%= _('In what area do you want to put your new block?') %></p> 4 <p><%= _('In what area do you want to put your new block?') %></p>
5 5
  6 + <div id="box-position">
6 <% @boxes.each do |box| %> 7 <% @boxes.each do |box| %>
7 - <%= labelled_radio_button(_("Area %d") % box.position, :box_id, box.id, box.central?, { :class => 'box-position', 'data-position' => box.position }) %> 8 + <% name = box.central? ? _('Main area') : _('Area %d') % box.position %>
  9 + <%= labelled_radio_button(name, :box_id, box.id, box.central?, { 'data-position' => box.position }) %>
8 <% end %> 10 <% end %>
  11 + </div>
9 12
10 <script type="text/javascript"> 13 <script type="text/javascript">
11 - (function ($) {  
12 - $(document).ready(function () {  
13 - $(".box-position").live('change', function () {  
14 - if ($(this).attr('data-position') == '1') {  
15 - $('#center-block-types').show();  
16 - $('#side-block-types').hide();  
17 - } else {  
18 - $('#center-block-types').hide();  
19 - $('#side-block-types').show();  
20 - };  
21 - });  
22 - })})(jQuery); 14 + jQuery('#box-position input').bind('change',
  15 + function () {
  16 + showCenter = jQuery(this).attr('data-position') == '1';
  17 + jQuery('#center-block-types').toggle(showCenter);
  18 + jQuery('#side-block-types').toggle(!showCenter);
  19 + }
  20 + );
23 </script> 21 </script>
24 22
25 <p><%= _('Select the type of block you want to add to your page.') %></p> 23 <p><%= _('Select the type of block you want to add to your page.') %></p>
26 24
27 - <div id='center-block-types'>  
28 - <%= render :partial => 'block_types', :locals => { :block_types => @center_block_types } %> 25 + <div id="center-block-types" class="block-types">
  26 + <% @center_block_types.each do |block| %>
  27 + <div>
  28 + <%= labelled_radio_button(block.description, :type, block.name) %>
  29 + </div>
  30 + <% end %>
29 </div> 31 </div>
30 32
31 - <div id='side-block-types' style='display:none'>  
32 - <%= render :partial => 'block_types', :locals => { :block_types => @side_block_types } %> 33 + <div id="side-block-types" class="block-types" style="display:none">
  34 + <% @side_block_types.each do |block| %>
  35 + <div>
  36 + <%= labelled_radio_button(block.description, :type, block.name) %>
  37 + </div>
  38 + <% end %>
33 </div> 39 </div>
34 40
35 <br style='clear: both'/> 41 <br style='clear: both'/>
app/views/box_organizer/edit.rhtml
1 -<div style='width: 500px;'>  
2 - <h2><%= _('Editing block') %></h2> 1 +<div class="block-config-options <%= @block.class.name %>-options">
  2 + <h2 class="title"><%= _('Editing block') %></h2>
3 3
4 <% form_tag(:action => 'save', :id => @block.id) do %> 4 <% form_tag(:action => 'save', :id => @block.id) do %>
5 5
app/views/box_organizer/index.rhtml
1 <h1><%= _('Editing sideboxes')%></h1> 1 <h1><%= _('Editing sideboxes')%></h1>
2 2
3 -<% button_bar do %> 3 +<% button_bar :class=>'design-menu' do %>
4 <%= colorbox_button('add', _('Add a block'), { :action => 'add_block' }) %> 4 <%= colorbox_button('add', _('Add a block'), { :action => 'add_block' }) %>
5 <%= button(:back, _('Back to control panel'), :controller => (profile.nil? ? 'admin_panel': 'profile_editor')) %> 5 <%= button(:back, _('Back to control panel'), :controller => (profile.nil? ? 'admin_panel': 'profile_editor')) %>
6 <% end %> 6 <% end %>
app/views/catalog/index.rhtml
@@ -68,20 +68,20 @@ @@ -68,20 +68,20 @@
68 68
69 <% if product.description %> 69 <% if product.description %>
70 <li class="product-description expand-box"> 70 <li class="product-description expand-box">
71 - <span id="product-description-button"><%= _('description') %></span>  
72 - <div> 71 + <span class="product-description-button"><%= _('description') %></span>
  72 + <div class="float-box">
73 <div class="arrow"></div> 73 <div class="arrow"></div>
74 - <div class="content" id="product-description"><%= txt2html(product.description || '') %></div> 74 + <div class="content"><%= product.description %></div>
75 </div> 75 </div>
76 </li> 76 </li>
77 <% end %> 77 <% end %>
78 78
79 <% if product.price_described? %> 79 <% if product.price_described? %>
80 <li class="product-price-composition expand-box"> 80 <li class="product-price-composition expand-box">
81 - <span id="product-price-composition-button"><%= _('price composition') %></span>  
82 - <div> 81 + <span class="product-price-composition-button"><%= _('price composition') %></span>
  82 + <div class="float-box">
83 <div class="arrow"></div> 83 <div class="arrow"></div>
84 - <div class="content" id="product-price-composition"> 84 + <div class="content">
85 <% product.inputs.relevant_to_price.each do |i| %> 85 <% product.inputs.relevant_to_price.each do |i| %>
86 <div class="search-product-input-dots-to-price"> 86 <div class="search-product-input-dots-to-price">
87 <div class="search-product-input-name"><%= i.product_category.name %></div> 87 <div class="search-product-input-name"><%= i.product_category.name %></div>
@@ -102,9 +102,9 @@ @@ -102,9 +102,9 @@
102 <% if product.inputs.count > 0 %> 102 <% if product.inputs.count > 0 %>
103 <li class="product-inputs expand-box"> 103 <li class="product-inputs expand-box">
104 <span id="inputs-button"><%= _('inputs and raw materials') %></span> 104 <span id="inputs-button"><%= _('inputs and raw materials') %></span>
105 - <div> 105 + <div class="float-box">
106 <div class="arrow"></div> 106 <div class="arrow"></div>
107 - <div class="content" id="inputs-description"> 107 + <div class="content">
108 <% product.inputs.each do |i| %> 108 <% product.inputs.each do |i| %>
109 <div> 109 <div>
110 <%= _('%{amount_used} %{unit} of') % {:amount_used => i.amount_used, :unit => i.unit.singular} + ' ' if i.has_all_price_details? %> 110 <%= _('%{amount_used} %{unit} of') % {:amount_used => i.amount_used, :unit => i.unit.singular} + ' ' if i.has_all_price_details? %>
app/views/cms/select_article_type.rhtml
  1 +<div class="select-article-type">
  2 +
1 <h2> <%= _('Choose the type of content:') %> </h2> 3 <h2> <%= _('Choose the type of content:') %> </h2>
2 4
3 -<ul id="article_types"> 5 +<ul class="article-types">
4 <% for type in @article_types %> 6 <% for type in @article_types %>
5 <% action = type[:class].name == 'UploadedFile' ? {:action => 'upload_files'} : {:action => 'new', :type => type[:class].name} %> 7 <% action = type[:class].name == 'UploadedFile' ? {:action => 'upload_files'} : {:action => 'new', :type => type[:class].name} %>
6 <% content_tag('a', :href => url_for(action.merge(:parent_id => @parent_id, :back_to => @back_to))) do %> 8 <% content_tag('a', :href => url_for(action.merge(:parent_id => @parent_id, :back_to => @back_to))) do %>
@@ -14,3 +16,5 @@ @@ -14,3 +16,5 @@
14 <br style="clear:both" /> 16 <br style="clear:both" />
15 17
16 <%= colorbox_close_button(_('Cancel')) %> 18 <%= colorbox_close_button(_('Cancel')) %>
  19 +
  20 +</div>
po/pt/noosfero.po
@@ -2256,7 +2256,7 @@ msgstr &quot;Empreendimentos são desabilitados quando criados&quot; @@ -2256,7 +2256,7 @@ msgstr &quot;Empreendimentos são desabilitados quando criados&quot;
2256 2256
2257 #: app/models/environment.rb:121 2257 #: app/models/environment.rb:121
2258 msgid "Enterprises are validated when created" 2258 msgid "Enterprises are validated when created"
2259 -msgstr "Empreendimentos são validadod quando criados" 2259 +msgstr "Empreendimentos são validadodos quando criados"
2260 2260
2261 #: app/models/environment.rb:122 2261 #: app/models/environment.rb:122
2262 msgid "Show a balloon with profile links when a profile image is clicked" 2262 msgid "Show a balloon with profile links when a profile image is clicked"
public/javascripts/catalog.js
1 (function($) { 1 (function($) {
2 2
3 -$('#product-list .product .expand-box').live('click', function () {  
4 - $('.expand-box').each(function(index, element){ this.clicked = false; toggle_expandbox(this); });  
5 - this.clicked = !this.clicked;  
6 - toggle_expandbox(this);  
7 - $.each($(this).siblings('.expand-box'), function(index, value) { value.clicked = false; toggle_expandbox(value); });  
8 -  
9 - return false;  
10 -});  
11 -  
12 -$(document).live('click', function() {  
13 - $.each($('#product-list .product .expand-box'), function(index, value) { value.clicked = false; toggle_expandbox(value); });  
14 -});  
15 -  
16 -$(document).click(function (event) {  
17 - if ($(event.target).parents('.expand-box').length == 0) {  
18 - $('.expand-box').each(function(index, element){  
19 - $(element).removeClass('open');  
20 - $(element).children('div').toggle(false);  
21 - });  
22 - }  
23 -});  
24 -  
25 -var rows = {};  
26 -$('#product-list .product').each(function (index, element) {  
27 - obj = rows[$(element).offset().top] || {};  
28 -  
29 - obj.heights = obj.heights || [];  
30 - obj.elements = obj.elements || [];  
31 - obj.heights.push($(element).height());  
32 - obj.elements.push(element);  
33 -  
34 - rows[$(element).offset().top] = obj;  
35 -});  
36 -  
37 -$.each(rows, function(top, obj) {  
38 - maxWidth = Array.max(obj.heights);  
39 - $(obj.elements).height(maxWidth);  
40 -}); 3 + function toggle_expandbox(element, open) {
  4 + element.clicked = open;
  5 + $(element).toggleClass('open', open);
  6 + }
  7 +
  8 + $('#product-list .expand-box').live('click', function () {
  9 + var me = this;
  10 + $('.expand-box').each(function(index, element){
  11 + if ( element != me ) toggle_expandbox(element, false);
  12 + });
  13 + toggle_expandbox(me, !me.clicked);
  14 + return false;
  15 + });
  16 +
  17 + $('#product-list .float-box').live('click', function () {
  18 + return false;
  19 + });
  20 +
  21 + $(document).click(function (event) {
  22 + if ($(event.target).parents('.expand-box').length == 0) {
  23 + $('#product-list .expand-box').each(function(index, element){
  24 + toggle_expandbox(element, false);
  25 + });
  26 + }
  27 + });
41 28
42 })(jQuery); 29 })(jQuery);
43 -  
44 -function toggle_expandbox(e) {  
45 - jQuery(e).toggleClass('open', e.clicked);  
46 - jQuery(e).children('div').toggle(e.clicked).css({left: jQuery(e).position().left-180, top: jQuery(e).position().top-10});  
47 -}  
public/stylesheets/application.css
@@ -1538,10 +1538,10 @@ a.button.disabled, input.disabled { @@ -1538,10 +1538,10 @@ a.button.disabled, input.disabled {
1538 * style for blocks 1538 * style for blocks
1539 ***********************************************************/ 1539 ***********************************************************/
1540 1540
1541 - #content .communities-block .profile-image {  
1542 - float: none;  
1543 - padding-left: 0px;  
1544 - max-width: none; 1541 +#content .communities-block .profile-image {
  1542 + float: none;
  1543 + padding-left: 0px;
  1544 + max-width: none;
1545 } 1545 }
1546 #content .communities-block .vcard .profile_link { 1546 #content .communities-block .vcard .profile_link {
1547 text-align: center; 1547 text-align: center;
@@ -1594,30 +1594,30 @@ a.button.disabled, input.disabled { @@ -1594,30 +1594,30 @@ a.button.disabled, input.disabled {
1594 .invisible-block a.icon-button { 1594 .invisible-block a.icon-button {
1595 position: relative; 1595 position: relative;
1596 } 1596 }
1597 -/***********************************************************  
1598 - * the handles to where you can drag the blocks  
1599 - ***********************************************************/ 1597 +/************************************************
  1598 + * the handles to where you can drag the blocks *
  1599 + ************************************************/
1600 1600
1601 - .block-target {  
1602 - margin: 5px;  
1603 - height: 2px;  
1604 - height: 15px;  
1605 - border: 1px dashed #e0e0e0; 1601 +.block-target {
  1602 + margin: 5px;
  1603 + height: 2px;
  1604 + height: 15px;
  1605 + border: 1px dashed #e0e0e0;
1606 } 1606 }
1607 .block-target-hover { 1607 .block-target-hover {
1608 background: #ffd; 1608 background: #ffd;
1609 border: 1px solid red; 1609 border: 1px solid red;
1610 height: 30px; 1610 height: 30px;
1611 } 1611 }
1612 -/***********************************************************  
1613 - * put borders around boxes and blocks when organizing boxes  
1614 - ***********************************************************/ 1612 +/*************************************************************
  1613 + * put borders around boxes and blocks when organizing boxes *
  1614 + *************************************************************/
1615 1615
1616 - #box-organizer div.box {  
1617 - border: 1px solid #ccc;  
1618 - background-color: white;  
1619 - background-repeat: no-repeat;  
1620 - background-position: top right; 1616 +#box-organizer div.box {
  1617 + border: 1px solid #ccc;
  1618 + background-color: white;
  1619 + background-repeat: no-repeat;
  1620 + background-position: top right;
1621 } 1621 }
1622 #box-organizer div.box-1 { 1622 #box-organizer div.box-1 {
1623 background-image: url(../images/blocks/1.png); 1623 background-image: url(../images/blocks/1.png);
@@ -1651,6 +1651,36 @@ a.button.disabled, input.disabled { @@ -1651,6 +1651,36 @@ a.button.disabled, input.disabled {
1651 margin-top: 1em; 1651 margin-top: 1em;
1652 text-align: center; 1652 text-align: center;
1653 } 1653 }
  1654 +
  1655 +/****************************************
  1656 + * Block options editor floating window *
  1657 + ****************************************/
  1658 +
  1659 +#cboxLoadedContent {
  1660 + background: #FFF;
  1661 + box-shadow: 0 0 15px #888 inset;
  1662 + border-radius: 5px;
  1663 + border: 1px solid #777;
  1664 + border-left: none;
  1665 + border-right: none;
  1666 +}
  1667 +
  1668 +.block-config-options {
  1669 + padding: 0px 10px 0px 30px;
  1670 +}
  1671 +
  1672 +#add-block-dialog {
  1673 + display: inline-block;
  1674 + padding: 0px 5px 0px 20px;
  1675 +}
  1676 +
  1677 +#add-block-dialog .block-types {
  1678 + column-count: 2;
  1679 + -ms-column-count: 2;
  1680 + -moz-column-count: 2;
  1681 + -webkit-column-count: 2;
  1682 +}
  1683 +
1654 /* ==> blocks/tags-block.css <<= */ 1684 /* ==> blocks/tags-block.css <<= */
1655 1685
1656 .tags-block { 1686 .tags-block {
@@ -2494,6 +2524,7 @@ div#activation_enterprise label, div#activation_enterprise input, div#activation @@ -2494,6 +2524,7 @@ div#activation_enterprise label, div#activation_enterprise input, div#activation
2494 -webkit-border-radius: 10px 0px 0px 10px; 2524 -webkit-border-radius: 10px 0px 0px 10px;
2495 border-radius: 10px 0px 0px 10px; 2525 border-radius: 10px 0px 0px 10px;
2496 width: 202px; 2526 width: 202px;
  2527 + position: relative;
2497 } 2528 }
2498 #product-list .expand-box > span { 2529 #product-list .expand-box > span {
2499 padding-left: 20px; 2530 padding-left: 20px;
@@ -2524,17 +2555,22 @@ div#activation_enterprise label, div#activation_enterprise input, div#activation @@ -2524,17 +2555,22 @@ div#activation_enterprise label, div#activation_enterprise input, div#activation
2524 #product-list li.product .expand-box > span { 2555 #product-list li.product .expand-box > span {
2525 text-transform: uppercase; 2556 text-transform: uppercase;
2526 } 2557 }
2527 -#product-list li.product .expand-box > div { 2558 +#product-list li.product .expand-box .float-box {
2528 display: none; 2559 display: none;
2529 position: absolute; 2560 position: absolute;
  2561 + left: -220px;
  2562 + top: -11px;
2530 z-index: 10; 2563 z-index: 10;
2531 } 2564 }
  2565 +#product-list li.product .expand-box.open .float-box {
  2566 + display: block;
  2567 +}
2532 #product-list li.product .expand-box .content { 2568 #product-list li.product .expand-box .content {
2533 font-size: 11px; 2569 font-size: 11px;
2534 padding: 6px 5px; 2570 padding: 6px 5px;
2535 overflow: auto; 2571 overflow: auto;
2536 max-height: 200px; 2572 max-height: 200px;
2537 - width: 160px; 2573 + width: 200px;
2538 border-radius: 5px; 2574 border-radius: 5px;
2539 -moz-border-radius: 5px; 2575 -moz-border-radius: 5px;
2540 -webkit-border-radius: 5px; 2576 -webkit-border-radius: 5px;
@@ -2797,7 +2833,7 @@ div#activation_enterprise label, div#activation_enterprise input, div#activation @@ -2797,7 +2833,7 @@ div#activation_enterprise label, div#activation_enterprise input, div#activation
2797 position: relative; 2833 position: relative;
2798 clear: left; 2834 clear: left;
2799 } 2835 }
2800 -#product-description, #product-details, #product-info, .input-item { 2836 +#product-details, #product-info, .input-item {
2801 overflow: hidden; 2837 overflow: hidden;
2802 } 2838 }
2803 #product-info { 2839 #product-info {
@@ -2993,11 +3029,17 @@ table.cms-articles a.icon, table.cms-articles a.icon-parent-folder { @@ -2993,11 +3029,17 @@ table.cms-articles a.icon, table.cms-articles a.icon-parent-folder {
2993 table.cms-articles .icon:hover { 3029 table.cms-articles .icon:hover {
2994 background-color: transparent; 3030 background-color: transparent;
2995 } 3031 }
2996 -#article_types { 3032 +
  3033 +.select-article-type {
  3034 + padding: 5px 20px;
  3035 + width: 455px;
  3036 +}
  3037 +
  3038 +.article-types {
2997 padding-left: 5px; 3039 padding-left: 5px;
2998 margin-top: 20px; 3040 margin-top: 20px;
2999 } 3041 }
3000 -#article_types li { 3042 +.article-types li {
3001 list-style: none; 3043 list-style: none;
3002 float: left; 3044 float: left;
3003 width: 180px; 3045 width: 180px;
@@ -3011,18 +3053,18 @@ table.cms-articles .icon:hover { @@ -3011,18 +3053,18 @@ table.cms-articles .icon:hover {
3011 -moz-border-radius: 5px; 3053 -moz-border-radius: 5px;
3012 -webkit-border-radius: 5px; 3054 -webkit-border-radius: 5px;
3013 } 3055 }
3014 -#article_types .description { 3056 +.article-types .description {
3015 color: #888a85; 3057 color: #888a85;
3016 font-size: smaller; 3058 font-size: smaller;
3017 } 3059 }
3018 -#article_types .icon-newrss-feed, #content .icon-rss-feed { 3060 +.article-types .icon-newrss-feed, #content .icon-rss-feed {
3019 background-image: url(../images/icons-mime/rss-feed-16.png); 3061 background-image: url(../images/icons-mime/rss-feed-16.png);
3020 } 3062 }
3021 -#article_types a { 3063 +.article-types a {
3022 text-decoration: none; 3064 text-decoration: none;
3023 color: black; 3065 color: black;
3024 } 3066 }
3025 -#article_types li.mouseover { 3067 +.article-types li.mouseover {
3026 background-color: #eeeeec; 3068 background-color: #eeeeec;
3027 } 3069 }
3028 .controller-cms #article-subitems-hide.hide-button { 3070 .controller-cms #article-subitems-hide.hide-button {
@@ -4324,6 +4366,39 @@ h1#agenda-title { @@ -4324,6 +4366,39 @@ h1#agenda-title {
4324 text-align: center; 4366 text-align: center;
4325 overflow: hidden; 4367 overflow: hidden;
4326 } 4368 }
  4369 +
  4370 +.block-config-options.HighlightsBlock-options {
  4371 + min-width: 450px;
  4372 +}
  4373 +
  4374 +.block-config-options.HighlightsBlock-options .image-data-line select {
  4375 + width: 150px;
  4376 +}
  4377 +
  4378 +.block-config-options.HighlightsBlock-options td {
  4379 + text-align: center;
  4380 +}
  4381 +
  4382 +.block-config-options.HighlightsBlock-options .image-data-line td {
  4383 + padding-top: 7px;
  4384 +}
  4385 +
  4386 +.block-config-options.HighlightsBlock-options .image-title {
  4387 + white-space: nowrap;
  4388 + border-bottom: 1px solid #CCC;
  4389 +}
  4390 +.block-config-options.HighlightsBlock-options .image-title:last-child {
  4391 + border: none;
  4392 +}
  4393 +
  4394 +.block-config-options.HighlightsBlock-options .image-title td {
  4395 + padding-bottom: 7px;
  4396 +}
  4397 +
  4398 +.block-config-options.HighlightsBlock-options .image-title span {
  4399 + padding-right: 5px;
  4400 +}
  4401 +
4327 /* Featured Products stuff */ 4402 /* Featured Products stuff */
4328 4403
4329 .featured-product-items { 4404 .featured-product-items {
@@ -5659,12 +5734,6 @@ li.profile-activity-item.upload_image .activity-gallery-images-count-1 img { @@ -5659,12 +5734,6 @@ li.profile-activity-item.upload_image .activity-gallery-images-count-1 img {
5659 5734
5660 /* Captcha */ 5735 /* Captcha */
5661 5736
5662 -/* Colorbox */  
5663 -  
5664 -#cboxClose {  
5665 - display: none !important;  
5666 -}  
5667 -  
5668 /* Signup interface {{{ */ 5737 /* Signup interface {{{ */
5669 5738
5670 #url-check { 5739 #url-check {
test/unit/application_helper_test.rb
@@ -727,7 +727,37 @@ class ApplicationHelperTest &lt; ActiveSupport::TestCase @@ -727,7 +727,37 @@ class ApplicationHelperTest &lt; ActiveSupport::TestCase
727 assert_nil default_folder_for_image_upload(profile) 727 assert_nil default_folder_for_image_upload(profile)
728 end 728 end
729 729
  730 + should 'envelop a html with button-bar div' do
  731 + result = button_bar { '<b>foo</b>' }
  732 + assert_equal '<div class="button-bar"><b>foo</b>'+
  733 + '<br style=\'clear: left;\' /></div>', result
  734 + end
  735 +
  736 + should 'add more classes to button-bar envelope' do
  737 + result = button_bar :class=>'test' do
  738 + '<b>foo</b>'
  739 + end
  740 + assert_equal '<div class="test button-bar"><b>foo</b>'+
  741 + '<br style=\'clear: left;\' /></div>', result
  742 + end
  743 +
  744 + should 'add more attributes to button-bar envelope' do
  745 + result = button_bar :id=>'bt1' do
  746 + '<b>foo</b>'
  747 + end
  748 + assert_equal '<div class="button-bar" id="bt1"><b>foo</b>'+
  749 + '<br style=\'clear: left;\' /></div>', result
  750 + end
  751 +
730 protected 752 protected
731 include NoosferoTestHelper 753 include NoosferoTestHelper
732 754
  755 + def capture
  756 + yield
  757 + end
  758 +
  759 + def concat(str)
  760 + str
  761 + end
  762 +
733 end 763 end