Fix order in structure
This commit is contained in:
parent
5b289bc1d2
commit
fa83dbf791
|
@ -47,10 +47,10 @@ class Item
|
||||||
new_parent = Item.find(new_parent)
|
new_parent = Item.find(new_parent)
|
||||||
current_position_sibling = find_by_parent_and_position(new_parent, position.to_i)
|
current_position_sibling = find_by_parent_and_position(new_parent, position.to_i)
|
||||||
if current_position_sibling
|
if current_position_sibling
|
||||||
current_position_sibling.at_bottom? ? move_below(current_position_sibling) : move_above(current_position_sibling)
|
move_above(current_position_sibling)
|
||||||
elsif self.parent != new_parent
|
elsif self.parent != new_parent
|
||||||
self.parent = new_parent
|
self.parent = new_parent
|
||||||
save!
|
save
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,14 +24,12 @@ class Page < Item
|
||||||
has_many :page_metas, :autosave => true, :dependent => :destroy
|
has_many :page_metas, :autosave => true, :dependent => :destroy
|
||||||
accepts_nested_attributes_for :page_parts, :allow_destroy => true
|
accepts_nested_attributes_for :page_parts, :allow_destroy => true
|
||||||
|
|
||||||
before_save :delete_empty_frontend_field
|
|
||||||
before_save :create_parts, if: Proc.new { |page| page.new_record? || page.design_id_changed? }
|
before_save :create_parts, if: Proc.new { |page| page.new_record? || page.design_id_changed? }
|
||||||
after_save :generate_html
|
before_save :delete_empty_frontend_field, :generate_html
|
||||||
|
|
||||||
# protected
|
protected
|
||||||
|
|
||||||
def create_parts
|
def create_parts
|
||||||
|
|
||||||
page_design = self.design
|
page_design = self.design
|
||||||
parent = self.parent
|
parent = self.parent
|
||||||
menu_part = parent.page_parts.detect{|page_part| page_part.kind.eql?('public_r_tag') && page_part.public_r_tag.eql?('sub_menu') && page_part.public_r_tag_object_id.eql?(parent.id.to_s)} if parent
|
menu_part = parent.page_parts.detect{|page_part| page_part.kind.eql?('public_r_tag') && page_part.public_r_tag.eql?('sub_menu') && page_part.public_r_tag_object_id.eql?(parent.id.to_s)} if parent
|
||||||
|
@ -73,10 +71,7 @@ class Page < Item
|
||||||
end
|
end
|
||||||
|
|
||||||
def generate_html
|
def generate_html
|
||||||
Page.without_callback(:save, :after, :generate_html) do
|
|
||||||
self.content_translations = parse_page_noko(self, Site.first)
|
self.content_translations = parse_page_noko(self, Site.first)
|
||||||
self.save
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -350,4 +350,16 @@ namespace :migrate do
|
||||||
ModuleApp.new.from_json(File.open("#{Rails.root}/vendor/built_in_modules/gallery/gallery.json").read).save
|
ModuleApp.new.from_json(File.open("#{Rails.root}/vendor/built_in_modules/gallery/gallery.json").read).save
|
||||||
end
|
end
|
||||||
|
|
||||||
|
task :reorder_items => :environment do
|
||||||
|
reorder_children(Item.root)
|
||||||
|
end
|
||||||
|
|
||||||
|
def reorder_children(parent)
|
||||||
|
parent.children.each_with_index do |child, i|
|
||||||
|
child.position = i
|
||||||
|
child.save
|
||||||
|
reorder_children(child) if child.children
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue