Commit 123c4f76160b674358e3427a0b4663de835b229b

Authored by LeandroNunes
1 parent 4a2b904d

ActionItem0: adding sort possibility on edit template

git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@77 3f533792-8f58-4932-b0fe-aaf55b0a4547
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 &lt; ApplicationController @@ -10,7 +18,6 @@ class EditTemplateController &lt; 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 &lt; ApplicationController @@ -30,4 +37,19 @@ class EditTemplateController &lt; 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' %>