Class: MiniTreesController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/mini_trees_controller.rb

Instance Method Summary collapse

Instance Method Details

#syncObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/controllers/mini_trees_controller.rb', line 2

def sync
  init_klasses(params[:owner])
  id = params[:id]
  value = params[:value]

  case params[:function]
  when "order"
    client_order = JSON.parse(params[:order])
    client_order.each_with_index do |pair, index|
      id, parent_id = pair
      row = @tree.find(id.to_i)
      row.update!(position: index, parent_id: parent_id.to_i)
    end
  when "leaf2node"
    row = @tree.find_by(id: value.to_i)
    row.update! kind: "node"
  when "node2leaf"
    row = @tree.find_by(id: value.to_i)
    row.update! kind: "leaf"
  when "toggle"
    id = id.to_i
    row = @tree.find_by(id:)
    row.update! collapsed: value
  else
    raise "MiniTreeView: unknown function <#{params}>"
  end
  # head :ok
  render json: {status: "ok"}
rescue RuntimeError => e
  # head :bad_request
  render json: {status: "error", message: e.message}, status: :unprocessable_entity
end