Sha256: 9d946e33d4ce805f818d81c80346ddd0411164934cf907634ee2b4ab65dd9da6

Contents?: true

Size: 748 Bytes

Versions: 7

Compression:

Stored size: 748 Bytes

Contents

module DragOrder
  module Models
    module Page
      
      if defined?(Page::NONDRAFT_FIELDS)
        Page::NONDRAFT_FIELDS << 'position'
      end
      
      def self.included(base)
        base.class_eval do
          
          before_validation_on_create :set_initial_position
          
          self.reflections[:children].options[:order] = "position ASC"
          
        private
          def set_initial_position
            self.position ||= begin
              if last_sibling = Page.find_by_parent_id(parent_id, :order => [ "position DESC" ])
                last_sibling.position + 1
              else
                0
              end
            end
          end
          
        end
      end
      
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
radiant-drag_order-extension-0.5.0 lib/drag_order/models/page.rb
radiant-drag_order-extension-0.4.8 lib/drag_order/models/page.rb
radiant-drag_order-extension-0.4.7 lib/drag_order/models/page.rb
radiant-drag_order-extension-0.4.6 lib/drag_order/models/page.rb
radiant-drag_order-extension-0.4.4 lib/drag_order/models/page.rb
radiant-drag_order-extension-0.4.2 lib/drag_order/models/page.rb
radiant-drag_order-extension-0.4.0.beta.2 lib/drag_order/models/page.rb