Commit 7e2ac2d57d7a9f384036eb19c2814410db6d71a6
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Merge branch 'AI3279-new_block_store' into stable
Showing
7 changed files
with
34 additions
and
8 deletions
Show diff stats
app/controllers/box_organizer_controller.rb
app/helpers/boxes_helper.rb
... | ... | @@ -193,7 +193,7 @@ module BoxesHelper |
193 | 193 | if block.nil? or modifiable?(block) |
194 | 194 | draggable_id = "encodeURIComponent(jQuery(ui.draggable).attr('id'))" |
195 | 195 | draggable_type = "encodeURIComponent(jQuery(ui.draggable).attr('data-block-type'))" |
196 | - content_tag('div', _('Drop Here'), :id => id, :class => 'block-target' ) + drop_receiving_element(id, :url => { :action => 'move_block', :target => id }, :accept => box.acceptable_blocks, :hoverclass => 'block-target-hover', :with => "'type='+"+draggable_type+"+'&id=' + "+draggable_id, :activeClass => 'block-target-active') | |
196 | + content_tag('div', _('Drop Here'), :id => id, :class => 'block-target' ) + drop_receiving_element(id, :url => { :action => 'move_block', :target => id }, :accept => box.acceptable_blocks, :hoverclass => 'block-target-hover', :with => "'type='+"+draggable_type+"+'&id=' + "+draggable_id, :activeClass => 'block-target-active', :tolerance => 'pointer') | |
197 | 197 | else |
198 | 198 | "" |
199 | 199 | end | ... | ... |
app/views/box_organizer/index.html.erb
... | ... | @@ -8,9 +8,10 @@ |
8 | 8 | <% end %> |
9 | 9 | |
10 | 10 | <div id="block-store"> |
11 | + <input type="text" id="block-store-filter" placeholder="<%= _('Filter blocks') %>" title="<%= _('Filter blocks') %>"> | |
11 | 12 | <div id="block-types"> |
12 | 13 | <% @available_blocks.each do |block| %> |
13 | - <div id="block-<%= block.name.to_css_class %>" class="block-type <%= block.name.to_css_class %>" data-block-type="<%= block.name %>"> | |
14 | + <div id="block-<%= block.name.to_css_class %>" class="block-type <%= block.name.to_css_class %>" data-block-type="<%= block.name %>" data-block-name="<%= block.pretty_name %>"> | |
14 | 15 | <div class="button-bar"> |
15 | 16 | <%= modal_button 'help', _('Help on this block'), |
16 | 17 | {:action => 'show_block_type_info', :type => block.name}, | ... | ... |
plugins/container_block/public/style.css
public/javascripts/block-store.js
1 | +function filterBlocks() { | |
2 | + jQuery('#block-store #block-types').slick('slickFilter', function() { | |
3 | + var name = $(this).data('block-name'); | |
4 | + var filter = $('#block-store #block-store-filter').val(); | |
5 | + return name.toLowerCase().indexOf(filter.toLowerCase()) > -1; | |
6 | + }); | |
7 | +} | |
8 | + | |
1 | 9 | function cloneDraggableBlock(el, blockIcon) { |
2 | 10 | el.addClass('ui-draggable-dragging'); |
3 | 11 | return blockIcon; |
... | ... | @@ -13,29 +21,30 @@ function stopDragBlock() { |
13 | 21 | } |
14 | 22 | |
15 | 23 | function initBlockStore() { |
24 | + jQuery('#block-store').show(); | |
16 | 25 | var store = jQuery('#block-store #block-types').slick({ |
17 | - infinite: true, | |
26 | + infinite: false, | |
18 | 27 | dots: true, |
19 | 28 | draggable: false, |
20 | 29 | respondTo: 'slider', |
21 | 30 | slidesToShow: 7, |
22 | - slidesToScroll: 4, | |
31 | + slidesToScroll: 6, | |
23 | 32 | responsive: [ |
24 | 33 | { |
25 | 34 | breakpoint: 2048, |
26 | 35 | settings: { |
27 | 36 | slidesToShow: 10, |
28 | - slidesToScroll: 4, | |
37 | + slidesToScroll: 9, | |
29 | 38 | } |
30 | 39 | }, |
31 | 40 | { |
32 | 41 | breakpoint: 1024, |
33 | 42 | settings: { |
34 | 43 | slidesToShow: 8, |
35 | - slidesToScroll: 4, | |
44 | + slidesToScroll: 7, | |
36 | 45 | } |
37 | 46 | } |
38 | 47 | ] |
39 | 48 | }); |
40 | - jQuery('#block-store').show(); | |
49 | + jQuery('#block-store #block-store-filter').keyup(filterBlocks); | |
41 | 50 | } | ... | ... |
public/stylesheets/block-store.css
... | ... | @@ -27,6 +27,13 @@ |
27 | 27 | /************************************************ |
28 | 28 | * block store styles |
29 | 29 | ************************************************/ |
30 | +#block-store #block-store-filter { | |
31 | + float: right; | |
32 | + margin-bottom: 8px; | |
33 | +} | |
34 | +#block-store #block-types { | |
35 | + clear: both; | |
36 | +} | |
30 | 37 | #block-store { |
31 | 38 | display: none; |
32 | 39 | } | ... | ... |
test/functional/profile_design_controller_test.rb
... | ... | @@ -362,6 +362,12 @@ class ProfileDesignControllerTest < ActionController::TestCase |
362 | 362 | assert_tag :tag => 'a', :content => 'Back to control panel' |
363 | 363 | end |
364 | 364 | |
365 | + should 'display avaliable blocks in alphabetical order' do | |
366 | + @controller.stubs(:available_blocks).returns([TagsBlock, ArticleBlock]) | |
367 | + get :index, :profile => 'designtestuser' | |
368 | + assert_equal assigns(:available_blocks), [ArticleBlock, TagsBlock] | |
369 | + end | |
370 | + | |
365 | 371 | should 'not allow products block if environment do not let' do |
366 | 372 | env = Environment.default |
367 | 373 | env.disable('products_for_enterprises') | ... | ... |