Commit aaefdf5b3737c64f7da056e5fc5fb2b01c9fcf71

Authored by Aurélio A. Heckert
1 parent 00c7c23e

A better highlights block config interface

Beauty, useful, readable and code cleanner.
ActionItem2613
app/helpers/block_helper.rb
@@ -6,4 +6,21 @@ module BlockHelper @@ -6,4 +6,21 @@ module BlockHelper
6 content_tag 'h3', content_tag('span', title), :class => tag_class 6 content_tag 'h3', content_tag('span', 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)}
  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/_highlights_block.rhtml
1 <strong><%= _('Highlights') %></strong> 1 <strong><%= _('Highlights') %></strong>
2 2
3 -<table id='highlights' class='noborder'>  
4 - <tr><th><%= _('Image') %></th><th><%= _('Address') %></th><th><%= _('Position') %></th><th><%= _('Title') %></th></tr> 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), :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> 8 +</tbody></table>
16 9
17 <%= 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|
18 - page.insert_html :bottom, 'highlights', content_tag('tr',  
19 - 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), :style => "width: 100px")) +  
20 - content_tag('td', text_field_tag('block[images][][address]', nil, :class => 'highlight-address', :size => 10)) +  
21 - content_tag('td', text_field_tag('block[images][][position]', nil, :class => 'highlight-position', :size => 3)) +  
22 - content_tag('td', text_field_tag('block[images][][title]', nil, :class => 'highlight-position', :size => 10))  
23 - ) +  
24 - 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)
25 end %> 12 end %>
26 13
27 <%= 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]}) %>
public/stylesheets/application.css
@@ -4314,6 +4314,35 @@ h1#agenda-title { @@ -4314,6 +4314,35 @@ h1#agenda-title {
4314 text-align: center; 4314 text-align: center;
4315 overflow: hidden; 4315 overflow: hidden;
4316 } 4316 }
  4317 +
  4318 +.block-config-options.HighlightsBlock-options .image-data-line select {
  4319 + width: 150px;
  4320 +}
  4321 +
  4322 +.block-config-options.HighlightsBlock-options td {
  4323 + text-align: center;
  4324 +}
  4325 +
  4326 +.block-config-options.HighlightsBlock-options .image-data-line td {
  4327 + padding-top: 7px;
  4328 +}
  4329 +
  4330 +.block-config-options.HighlightsBlock-options .image-title {
  4331 + white-space: nowrap;
  4332 + border-bottom: 1px solid #CCC;
  4333 +}
  4334 +.block-config-options.HighlightsBlock-options .image-title:last-child {
  4335 + border: none;
  4336 +}
  4337 +
  4338 +.block-config-options.HighlightsBlock-options .image-title td {
  4339 + padding-bottom: 7px;
  4340 +}
  4341 +
  4342 +.block-config-options.HighlightsBlock-options .image-title span {
  4343 + padding-right: 5px;
  4344 +}
  4345 +
4317 /* Featured Products stuff */ 4346 /* Featured Products stuff */
4318 4347
4319 .featured-product-items { 4348 .featured-product-items {