module SortableSkima

Public Class Methods

attach_filters(query, filters, srtbl) click to toggle source
# File lib/sortable_skima.rb, line 15
def self.attach_filters query, filters, srtbl
  unless filters.blank?
    filters.each_key do |filter_key|
      filter_val = filters[filter_key]
      if filter_val
        filter_obj = srtbl.filters()[filter_key.to_i]
        filter_val = filter_obj[:options][filter_val.to_i]
        unless ['Todos','todos','',"All", "all"].include?(filter_val)
          if filter_obj[:raw_sql]
            query = query.where(filter_val)
          else
            query = query.where(filter_obj[:column_name]=>filter_val)
          end

        end
      end
    end
  end
  query
end
attach_orders(query, orders, srtbl) click to toggle source
# File lib/sortable_skima.rb, line 36
def self.attach_orders query, orders, srtbl
  order_for_client = false
  orders_ar = (orders || '').split ','
  orders_ar.each do |new_order|
    order_for_client = new_order unless order_for_client != false
    new_order = new_order.split ' '
    order_by = (srtbl.columns_queries()[new_order[0].to_i][:sort_field] + " #{new_order[1]}") if new_order[0]
    if order_by
      query = query.order( order_by)
    end
  end
 return query, order_for_client
end
attach_sortables(query, sortable_id, cur_user_or_admin, include_order = false) click to toggle source
# File lib/sortable_skima.rb, line 50
def self.attach_sortables query, sortable_id, cur_user_or_admin, include_order = false #, include_page = false
  srtbl = Sortable.find_by_id(sortable_id)

  return if srtbl.blank?

  query = eval(srtbl.base_query) if query.nil? || query == :base

  backtrace = Backtrace.for_token(srtbl.token, cur_user_or_admin)

  filters = backtrace.get_filters
  orders = backtrace.get_order
  #page = backtrace.get_page

  orders = srtbl.options[:default_order] if orders.blank?

  query = SortableSkima::attach_filters query, filters, srtbl

  query = SortableSkima::attach_orders( query, orders, srtbl) if include_order

  query
end
root() click to toggle source
# File lib/sortable_skima.rb, line 11
def self.root
  File.expand_path '../..', __FILE__
end
setup() { |self| ... } click to toggle source

Yield self on setup for nice config blocks

# File lib/sortable_skima.rb, line 7
def self.setup
  yield self
end