Module: Gluttonberg::DragTree::ActionController::ControllerHelperClassMethods
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/gluttonberg/drag_tree/action_controller.rb
Overview
class methods
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #_update_position_for_pages(klass, pages, parent_id = nil) ⇒ Object
-
#move_node ⇒ Object
ClassMethods.
- #save_data_for_elements(params) ⇒ Object
Instance Method Details
#_update_position_for_pages(klass, pages, parent_id = nil) ⇒ Object
61 62 63 64 65 66 67 68 |
# File 'lib/gluttonberg/drag_tree/action_controller.rb', line 61 def _update_position_for_pages(klass, pages, parent_id=nil) pages.each_with_index do |row, index| klass.update(row["id"], :position => index, :parent_id => parent_id) unless row["children"].blank? _update_position_for_pages(klass, row["children"], row["id"]) end end end |
#move_node ⇒ Object
ClassMethods
39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/gluttonberg/drag_tree/action_controller.rb', line 39 def move_node if params[:element_ids].blank? && params[:nestable_serialized_data].blank? render :json => {:success => false} return end if params[:element_ids] save_data_for_elements(params) else nestable_serialized_data = JSON.parse(params[:nestable_serialized_data]) _update_position_for_pages(self.class.drag_class, nestable_serialized_data, nil) end render :json => {:success => true} end |
#save_data_for_elements(params) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/gluttonberg/drag_tree/action_controller.rb', line 53 def save_data_for_elements(params) ids = params[:element_ids].split(",") elements = self.class.drag_class.find_by_sorted_ids(ids) elements.each_with_index do |element , index| element.update_attributes!({:position => index}) end end |