Sha256: f2e00d6122cf66ba07f8dc86de9e1b29d544b198dee4dd6c36657b433618e8ac

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

module SqlSortSetup

	def setup_sql_sort(model_class=nil)
		#Get model class from class if passed in or by guessing at controller
		model = model_class || controller_name.classify.constantize 
    if model.is_a? SqlSearchableSortable
			if sort_by
				@sort_by = (sort_by.split.length > 1) ? 
											sort_by.split.first.to_sym : sort_by.to_sym
				dir = (sort_by.split.length > 1) ? sort_by.split[1].to_sym : nil
				if [:asc, :desc].include?(dir)
					@sort_dir = dir
				else
					#attempt to save from invalid sort direction passed in with valid sort_by
					@sort_dir = :asc
					#TODO: I'm not sure its adviseable to set a params value like this
					params[:sort_by] = @sort_by 
				end
			else
				sort_by_param = model.default_sort_col.to_s
				sort_by_param += " #{model.default_sort_dir}" if model.default_sort_dir
				#unless model.default_sort_dir.nil?
				params[:sort_by] = sort_by_param
			end
			@sort_dropdown_opts = model.sort_cols_for_dropdown #for the view
			@sort_dir ||= :asc
		end
  end

  private
  	def sort_by
  		params[:sort_by]
  	end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sql_search_n_sort-2.1.5 lib/sql_search_n_sort/sql_sort_setup.rb
sql_search_n_sort-2.1.4 lib/sql_search_n_sort/sql_sort_setup.rb
sql_search_n_sort-2.1.3 lib/sql_search_n_sort/sql_sort_setup.rb
sql_search_n_sort-2.1.2 lib/sql_search_n_sort/sql_sort_setup.rb
sql_search_n_sort-2.1.1 lib/sql_search_n_sort/sql_sort_setup.rb
sql_search_n_sort-2.1.0 lib/sql_search_n_sort/sql_sort_setup.rb