module ModelMixins::TreeNodeInstanceMethods

Public Instance Methods

child_nodes() click to toggle source
# File lib/model_mixins/tree_node_instance_methods.rb, line 54
def child_nodes
  self.class.child_nodes(self.id)
end
create_resource() click to toggle source
# File lib/model_mixins/tree_node_instance_methods.rb, line 22
def create_resource
  if self.symlink_controller.blank?
    node_resource = Intranet::TextPage.create(:name => self.name)
    self.resource = node_resource
    self.symlink_controller = "text_pages"
    self.symlink_id = node_resource.id.to_s
  end
end
has_children?() click to toggle source
# File lib/model_mixins/tree_node_instance_methods.rb, line 58
def has_children?
  self.class.child_nodes(self.id).count > 0
end
remove_child_nodes() click to toggle source
# File lib/model_mixins/tree_node_instance_methods.rb, line 63
def remove_child_nodes
  if has_children?
    child_nodes.each do |child_node|
      child_node.remove_child_nodes
    end
  end
  remove_one_node
end
remove_one_node() click to toggle source
# File lib/model_mixins/tree_node_instance_methods.rb, line 72
def remove_one_node
  destroy
end
set_positions_after_destroy() click to toggle source
# File lib/model_mixins/tree_node_instance_methods.rb, line 44
def set_positions_after_destroy
  if !deleting_root.blank? && deleting_root
    self.class.child_nodes(parent_node_id).where("position > ?", position).each do |node|
      node.position -= 1
      node.save
    end
  end
end
set_positions_after_move() click to toggle source
# File lib/model_mixins/tree_node_instance_methods.rb, line 31
def set_positions_after_move
  if !old_position.blank? && !old_parent_node_id.blank?
    self.class.child_nodes(old_parent_node_id).where("position > ?", old_position).each do |node|
      node.position -= 1
      node.save
    end
    self.class.child_nodes(parent_node_id).where("position >= ?", position).each do |node|
      node.position += 1
      node.save
    end
  end
end