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
render json: {status: "ok"}
rescue RuntimeError => e
render json: {status: "error", message: e.message}, status: :unprocessable_entity
end
|