Commit 123c4f76160b674358e3427a0b4663de835b229b
1 parent
4a2b904d
Exists in
master
and in
29 other branches
ActionItem0: adding sort possibility on edit template
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@77 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
4 changed files
with
29 additions
and
6 deletions
Show diff stats
app/controllers/edit_template_controller.rb
| 1 | class EditTemplateController < ApplicationController | 1 | class EditTemplateController < ApplicationController |
| 2 | 2 | ||
| 3 | + before_filter :manage_template | ||
| 4 | + | ||
| 5 | + attr_accessor :controller_manage_template | ||
| 6 | + | ||
| 7 | + def manage_template? | ||
| 8 | + self.controller_manage_template == true ? true : false | ||
| 9 | + end | ||
| 10 | + | ||
| 3 | # This method changes a block content to a different box place and | 11 | # This method changes a block content to a different box place and |
| 4 | # updates all boxes at the ends | 12 | # updates all boxes at the ends |
| 5 | def change_box | 13 | def change_box |
| @@ -10,7 +18,6 @@ class EditTemplateController < ApplicationController | @@ -10,7 +18,6 @@ class EditTemplateController < ApplicationController | ||
| 10 | @boxes.each do |box| | 18 | @boxes.each do |box| |
| 11 | @box = box | 19 | @box = box |
| 12 | page.replace_html "box_#{box.number}", {:partial => 'layouts/box_template'} | 20 | page.replace_html "box_#{box.number}", {:partial => 'layouts/box_template'} |
| 13 | - page.sortable "sort_#{box.number}", :url => {:action => 'sort_box', :box_number => box.number} | ||
| 14 | end | 21 | end |
| 15 | end | 22 | end |
| 16 | end | 23 | end |
| @@ -30,4 +37,19 @@ class EditTemplateController < ApplicationController | @@ -30,4 +37,19 @@ class EditTemplateController < ApplicationController | ||
| 30 | render :partial => 'layouts/box_template' | 37 | render :partial => 'layouts/box_template' |
| 31 | end | 38 | end |
| 32 | 39 | ||
| 40 | + def set_sort_mode | ||
| 41 | + box = Box.find(params[:box_id]) | ||
| 42 | + render :update do |page| | ||
| 43 | + @box = box | ||
| 44 | + page.replace_html "box_#{box.number}", {:partial => 'layouts/box_template'} | ||
| 45 | + page.sortable "sort_#{box.number}", :url => {:action => 'sort_box', :box_number => box.number} | ||
| 46 | + end | ||
| 47 | + end | ||
| 48 | + | ||
| 49 | + private | ||
| 50 | + | ||
| 51 | + def manage_template | ||
| 52 | + self.controller_manage_template = true | ||
| 53 | + end | ||
| 54 | + | ||
| 33 | end | 55 | end |
app/helpers/application_helper.rb
| @@ -77,7 +77,7 @@ module ApplicationHelper | @@ -77,7 +77,7 @@ module ApplicationHelper | ||
| 77 | 77 | ||
| 78 | # Check if the current controller is the controller that allows layout editing | 78 | # Check if the current controller is the controller that allows layout editing |
| 79 | def edit_mode? | 79 | def edit_mode? |
| 80 | - controller.controller_name == 'edit_template' ? true : false | 80 | + controller.manage_template? |
| 81 | end | 81 | end |
| 82 | 82 | ||
| 83 | # Shows the block as the struture bellow | 83 | # Shows the block as the struture bellow |
app/helpers/edit_template_helper.rb
| @@ -7,11 +7,12 @@ module EditTemplateHelper | @@ -7,11 +7,12 @@ module EditTemplateHelper | ||
| 7 | # In this case the layout can be manipulated | 7 | # In this case the layout can be manipulated |
| 8 | def edit_blocks(box, main_content = "") | 8 | def edit_blocks(box, main_content = "") |
| 9 | blocks = box.blocks_sort_by_position | 9 | blocks = box.blocks_sort_by_position |
| 10 | - content_tag(:ul, box.name + | 10 | + content_tag(:ul, box.name + |
| 11 | + link_to_remote(_('sort'), {:update => "sort_#{box.number}", :url => {:action => 'set_sort_mode', :box_id => box.id }}, :class => 'sort_button') + | ||
| 11 | blocks.map {|b| | 12 | blocks.map {|b| |
| 12 | content_tag(:li, b.name, :class =>"block_item_box_#{box.number}" , :id => "block_#{b.id}" ) + draggable("block_#{b.id}") | 13 | content_tag(:li, b.name, :class =>"block_item_box_#{box.number}" , :id => "block_#{b.id}" ) + draggable("block_#{b.id}") |
| 13 | }.to_s, :id => "sort_#{box.number}" | 14 | }.to_s, :id => "sort_#{box.number}" |
| 14 | - ) + drag_drop_items(box) + sortable_block(box.number) | 15 | + ) + drag_drop_items(box) |
| 15 | end | 16 | end |
| 16 | 17 | ||
| 17 | # Allows the biven box to have sortable elements | 18 | # Allows the biven box to have sortable elements |
| @@ -23,7 +24,7 @@ module EditTemplateHelper | @@ -23,7 +24,7 @@ module EditTemplateHelper | ||
| 23 | 24 | ||
| 24 | # Allows an element item to be draggable | 25 | # Allows an element item to be draggable |
| 25 | def draggable(item) | 26 | def draggable(item) |
| 26 | - draggable_element(item, :ghosting=>true, :revert=>true) | 27 | + draggable_element(item, :ghosting => true, :revert => true) |
| 27 | end | 28 | end |
| 28 | 29 | ||
| 29 | # Allows an draggable element change between diferrents boxes | 30 | # Allows an draggable element change between diferrents boxes |
app/views/layouts/application.rhtml
| @@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
| 6 | 6 | ||
| 7 | </head> | 7 | </head> |
| 8 | <body> | 8 | <body> |
| 9 | - <%= image_tag 'loading.gif', :id=>'spinner', :style=>"display:none; float:right;" %> | 9 | + <%= image_tag 'loading.gif', :id => 'spinner', :style => "display:none; float:right;" %> |
| 10 | 10 | ||
| 11 | <%= link_to _('Show Layout'), :controller => 'home' %> | 11 | <%= link_to _('Show Layout'), :controller => 'home' %> |
| 12 | <%= link_to _('Edit Layout'), :controller => 'edit_template' %> | 12 | <%= link_to _('Edit Layout'), :controller => 'edit_template' %> |