Module: TheSortableTreeController::Rebuild

Includes:
DefineVariablesMethod
Defined in:
app/controllers/the_sortable_tree_controller.rb

Instance Method Summary collapse

Methods included from DefineVariablesMethod

#the_define_common_variables

Instance Method Details

#rebuildObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'app/controllers/the_sortable_tree_controller.rb', line 37

def rebuild
  id        = params[:id].to_i
  parent_id = params[:parent_id].to_i
  prev_id   = params[:prev_id].to_i
  next_id   = params[:next_id].to_i

  return render(nothing: true, status: :no_content) if parent_id.zero? && prev_id.zero? && next_id.zero?

  variable, collection, klass = self.the_define_common_variables
  variable = self.instance_variable_set(variable, klass.find(id))

  if prev_id.zero? && next_id.zero?
    variable.move_to_child_of klass.find(parent_id)
  elsif !prev_id.zero?
    variable.move_to_right_of klass.find(prev_id)
  elsif !next_id.zero?
    variable.move_to_left_of klass.find(next_id)
  end

  render(nothing: true, status: :ok)
end