module SmarterListing::ControllerExtension
Public Class Methods
included(base)
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 3 def self.included base base.helper_method :collection, :resource base.include SmarterListing::Helper end
Public Instance Methods
collection()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 109 def collection instance_variable_get(collection_ivar) || load_collection end
copy()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 29 def copy instance_variable_set resource_ivar, resource.respond_to?(:deep_clone) ? resource.deep_clone : resource.dup render 'smarter_listing/copy' end
create()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 24 def create instance_variable_get(resource_ivar) || instance_variable_set(resource_ivar, model.create(_resource_params)) render 'smarter_listing/create' end
destroy()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 56 def destroy resource.destroy render 'smarter_listing/destroy' end
edit()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 38 def edit respond_to do |format| format.html { load_collection; resource } format.js { resource } end render 'smarter_listing/edit' end
filter_parameter()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 67 def filter_parameter self.class.instance_variable_get :@filter_parameter end
filtered(model)
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 71 def filtered(model) results = if params[:show_deleted] == "1" && model.instance_methods.include?(:deleted?) if model.column_names.include?("deleted_at") model.only_deleted else results.map(&:deleted?) end end results ||= model.all unless params[filter_parameter].blank? if model.respond_to?(:search) results = results.search { fulltext "#{params[filter_parameter]}" }.results elsif model.respond_to?(:search_columns) columns = model.search_columns.select{|column| model.column_names.include?(column.to_s)} filter = "%#{params[filter_parameter]}%" results = results.where columns.map{|column| "#{column} LIKE :query"}.join(" OR "), :query => filter elsif model.column_names.include?('name') results = results.where("name LIKE ?", "%#{params[filter_parameter]}%") end end results end
index()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 8 def index collection respond_to do |format| format.html { render layout: self.class._layout } format.js { render action: 'index.js.erb' } end end
load_collection()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 94 def load_collection instance_variable_set collection_ivar, smart_listing_create(model.name.tableize.sub('/','_'), filtered(model), partial: "#{current_engine}/#{table_name}/table_header") end
load_resource()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 98 def load_resource res = model.find_by_id params[:id] res ||= model.new(_resource_params) if action_name == 'new' res ||= model.unscoped.find_by_id params[:id] if action_name == 'restore' instance_variable_set resource_ivar, res end
multi_edit()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 46 def multi_edit @multi = true edit end
new()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 16 def new respond_to do |format| format.html { load_collection; resource } format.js { resource } end render 'smarter_listing/new' end
resource()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 105 def resource instance_variable_get(resource_ivar) || load_resource end
restore()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 61 def restore resource.current_user = current_user if resource.respond_to?(:current_user=) resource.restore! index end
show()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 34 def show edit end
update()
click to toggle source
# File lib/smarter_listing/controller_extension.rb, line 51 def update resource.update _resource_params render 'smarter_listing/update' end