Sha256: 25fcb07499195a42dfa0d9550a726e397e0e774463bc82dc45cea1cb8c73ceb9

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

module Outpost
  module Controller
    module Ordering
      private
      
      # Set which attribute is doing the sorting
      #
      # If params[:order] is present, then set the
      # preference to that and return it.
      #
      # If not present, but preferred order is,
      # then use the preferred order.
      #
      # Otherwise use the list order.
      def set_order
        key = "#{model.content_key}_order"
        preferred_order = preference(key)

        @order = if params[:order].present?
          set_preference(key, params[:order])
        elsif preferred_order.present?
          preferred_order
        else
          list.default_order
        end
      end

      # Set the sort mode
      #
      # It will either be the requested sort mode, or if not available, 
      # then the table's default sort mode.
      def set_sort_mode
        key = "#{model.content_key}_sort_mode"
        preferred_sort_mode = preference(key)

        @sort_mode = if %w{ asc desc }.include?(params[:sort_mode])
          set_preference(key, params[:sort_mode])
        elsif preferred_sort_mode.present?
          preferred_sort_mode
        else
          list.default_sort_mode
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
outpost-cms-0.0.3 lib/outpost/controller/ordering.rb