Method: Sibu::SectionsConcern#clone_element

Defined in:
app/models/concerns/sibu/sections_concern.rb

#clone_element(*ids, element_id) ⇒ Object



50
51
52
53
54
55
56
57
58
# File 'app/models/concerns/sibu/sections_concern.rb', line 50

def clone_element(*ids, element_id)
  src_elt = find_or_init(*ids, element_id)
  siblings = find_or_init(*ids)["elements"]
  ref_index = siblings.index {|s| s["id"] == element_id}
  new_elt = siblings[ref_index].deep_dup
  new_elt["id"] = "cl#{Time.current.to_i}"
  siblings.insert(ref_index + 1, new_elt)
  save ? new_elt : nil
end