Module: SmarterListing::ControllerExtension
- Defined in:
- lib/smarter_listing/controller_extension.rb
Class Method Summary collapse
Instance Method Summary collapse
- #collection ⇒ Object
- #copy ⇒ Object
- #create ⇒ Object
- #destroy ⇒ Object
- #edit ⇒ Object
- #filter_parameter ⇒ Object
- #filtered(model) ⇒ Object
- #index ⇒ Object
- #load_collection ⇒ Object
- #load_resource ⇒ Object
- #multi_edit ⇒ Object
- #new ⇒ Object
- #resource ⇒ Object
- #restore ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Class Method Details
.included(base) ⇒ Object
3 4 5 6 |
# File 'lib/smarter_listing/controller_extension.rb', line 3 def self.included base base.helper_method :collection, :resource base.include SmarterListing::Helper end |
Instance Method Details
#collection ⇒ Object
105 106 107 |
# File 'lib/smarter_listing/controller_extension.rb', line 105 def collection instance_variable_get(collection_ivar) || load_collection end |
#copy ⇒ Object
29 30 31 32 |
# 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 ⇒ Object
24 25 26 27 |
# 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 ⇒ Object
56 57 58 59 |
# File 'lib/smarter_listing/controller_extension.rb', line 56 def destroy resource.destroy render 'smarter_listing/destroy' end |
#edit ⇒ Object
38 39 40 41 42 43 44 |
# 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 ⇒ Object
67 68 69 |
# File 'lib/smarter_listing/controller_extension.rb', line 67 def filter_parameter self.class.instance_variable_get :@filter_parameter end |
#filtered(model) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# 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?(:name) results = results.where("name LIKE ?", "%#{params[filter_parameter]}%") end end results end |
#index ⇒ Object
8 9 10 11 12 13 14 |
# 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 ⇒ Object
90 91 92 |
# File 'lib/smarter_listing/controller_extension.rb', line 90 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 ⇒ Object
94 95 96 97 98 99 |
# File 'lib/smarter_listing/controller_extension.rb', line 94 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 ⇒ Object
46 47 48 49 |
# File 'lib/smarter_listing/controller_extension.rb', line 46 def multi_edit @multi = true edit end |
#new ⇒ Object
16 17 18 19 20 21 22 |
# 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 ⇒ Object
101 102 103 |
# File 'lib/smarter_listing/controller_extension.rb', line 101 def resource instance_variable_get(resource_ivar) || load_resource end |
#restore ⇒ Object
61 62 63 64 65 |
# 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 ⇒ Object
34 35 36 |
# File 'lib/smarter_listing/controller_extension.rb', line 34 def show edit end |
#update ⇒ Object
51 52 53 54 |
# File 'lib/smarter_listing/controller_extension.rb', line 51 def update resource.update _resource_params render 'smarter_listing/update' end |