Class SectionNode
In: app/models/section_node.rb
Parent: ActiveRecord::Base

Methods

Public Instance methods

[Source]

    # File app/models/section_node.rb, line 81
81:   def ancestors()
82:     ancestors = []
83:     fn = lambda do |sn|
84:       ancestors << sn.section
85:       if sn.section && !sn.section.root?
86:         fn.call(sn.section.node)
87:       end
88:     end
89:     fn.call(self)
90:     ancestors.reverse
91:   end

[Source]

    # File app/models/section_node.rb, line 63
63:   def move_after(section_node)
64:     if section == section_node.section && position < section_node.position
65:       pos = section_node.position
66:     else
67:       pos = section_node.position + 1
68:     end
69:     move_to(section_node.section, pos)
70:   end

[Source]

    # File app/models/section_node.rb, line 54
54:   def move_before(section_node)
55:     if section == section_node.section && position < section_node.position
56:       pos = section_node.position - 1
57:     else
58:       pos = section_node.position
59:     end
60:     move_to(section_node.section, pos)
61:   end

[Source]

    # File app/models/section_node.rb, line 31
31:   def move_to(sec, pos)
32:     #logger.info "Moving Section Node ##{id} to Section ##{sec.id} Position #{pos}"
33:     transaction do
34:       if section != sec
35:         remove_from_list
36:         self.section = sec
37:         save
38:       end
39:       
40:       if pos < 0
41:         pos = 0
42:       else
43:         #This helps prevent the position from getting out of whack
44:         #If you pass in a really high number for position, 
45:         #this just corrects it to the right number
46:         node_count = SectionNode.count(:conditions => {:section_id => section_id})
47:         pos = node_count if pos > node_count
48:       end
49:       
50:       insert_at_position(pos)
51:     end
52:   end

[Source]

    # File app/models/section_node.rb, line 72
72:   def move_to_beginning(sec)
73:     move_to(sec, 0)
74:   end

[Source]

    # File app/models/section_node.rb, line 76
76:   def move_to_end(sec)
77:     #1.0/0 == Infinity
78:     move_to(sec, 1.0/0)
79:   end

[Source]

    # File app/models/section_node.rb, line 17
17:   def orphaned?
18:     !node || (node.class.uses_soft_delete? && node.deleted?)
19:   end

Is this node a page

[Source]

    # File app/models/section_node.rb, line 27
27:   def page?
28:     node_type == 'Page'
29:   end

Is this node a section

[Source]

    # File app/models/section_node.rb, line 22
22:   def section?
23:     node_type == 'Section'
24:   end

[Source]

    # File app/models/section_node.rb, line 9
 9:   def visible?
10:     return false unless node
11:     return false if(node.respond_to?(:hidden?) && node.hidden?)
12:     return false if(node.respond_to?(:archived?) && node.archived?)
13:     return false if(node.respond_to?(:published?) && !node.published?)
14:     true
15:   end

[Validate]