Sha256: 4957a5512fdfc91449caf12d3ae81f03065a12d705532fda3c15226de5590ff1

Contents?: true

Size: 1.14 KB

Versions: 42

Compression:

Stored size: 1.14 KB

Contents

module Locomotive
  module Concerns
    module ContentType
      module OrderBy

        def order_manually?
          self.order_by == '_position'
        end

        def order_by_definition(reverse_order = false)
          direction = self.order_manually? ? 'asc' : self.order_direction || 'asc'

          if reverse_order
            direction = (direction == 'asc' ? 'desc' : 'asc')
          end

          [order_by_attribute, direction]
        end

        def order_by_attribute
          case self.order_by
          when '_position'
            self.sortable_column
          when 'created_at', 'updated_at'
            self.order_by
          else
            self.entries_custom_fields.find(self.order_by).name rescue 'created_at'
          end
        end

        def sortable_column
          # only the belongs_to field has a special column for relative positionning
          # that's why we don't call groupable?
          if self.group_by_field.try(:type) == 'belongs_to' && self.order_manually?
            "position_in_#{self.group_by_field.name}"
          else
            '_position'
          end
        end

      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
locomotivecms-4.2.0.alpha2 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.2.0.alpha1 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.1.1 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.1.0 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.1.0.rc1 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.0.3 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.0.2 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.0.1 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.0.0 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.0.0.rc0 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.0.0.alpha3 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-3.4.1 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.0.0.alpha2 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-4.0.0.alpha1 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-3.4.0 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-3.3.0 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-3.3.0.rc3 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-3.3.0.rc2 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-3.1.2 app/models/locomotive/concerns/content_type/order_by.rb
locomotivecms-3.2.1 app/models/locomotive/concerns/content_type/order_by.rb