def sortable_order(sortable_name, *args)
if args.size >= 1
if args.first.kind_of?(Class)
model = args.first
if args.size >= 2
field = args[1].to_s
data_name = model.table_name+'.'+field
end
elsif args.first.kind_of?(Hash)
if !args.first[:sort_direction].blank?
default_sort_direction = args.first[:sort_direction].to_s.strip.upcase
end
if !args.first[:model].blank? && args.first[:model].kind_of?(Class)
model = args.first[:model]
if !args.first[:field].blank?
field = args.first[:field].to_s
data_name = model.table_name+'.'+field
end
elsif !args.first[:field].blank? || !args.first[:alias].blank?
if !args.first[:field].blank?
field = args.first[:field].to_s
data_name = field
end
if !args.first[:alias].blank?
col_alias = args.first[:alias].to_s
col_alias.chop! if (col_alias[-1].chr == '!')
data_name = col_alias
end
else
raise sch_err_msg
end
else
field = args.first.to_s
data_name = field
end
else
data_name = 'id'
end
process_sort_param(sortable_name)
sorted_key = assemble_sort_key(sortable_name)
unless session[:sortable_column_headers].nil? || session[:sortable_column_headers][sorted_key].nil?
return session[:sortable_column_headers][sorted_key].join(',') if session[:sortable_column_headers][sorted_key].size > 0
end
default_sort_direction ||= 'ASC'
return data_name + ' ' + default_sort_direction
end