Module: RansackAdvancedSearch::SavedSearchUtils
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/controllers/concerns/ransack_advanced_search/saved_search_utils.rb
Instance Method Summary collapse
-
#get_params_to_search(context) ⇒ Object
Return params of Saved Search or search form params.
-
#get_saved_searches(context) ⇒ Object
Get list of Saved Search by context.
- #new_saved_search(params) ⇒ Object
-
#perform_saved_searches_actions(context, params = {}) ⇒ Object
Perform saved searches actions to provide full functionality with one method.
-
#save_or_update_saved_search(params) ⇒ Object
Save or update Saved Search.
- #update_saved_search(params) ⇒ Object
Instance Method Details
#get_params_to_search(context) ⇒ Object
Return params of Saved Search or search form params
18 19 20 21 22 23 24 |
# File 'app/controllers/concerns/ransack_advanced_search/saved_search_utils.rb', line 18 def get_params_to_search(context) if params[:saved_search].present? @saved_search = SavedSearch.find_by(id: params[:saved_search], context: context) end return params[:q] if params[:use_search_params].present? params[:q] = @saved_search.try(:search_params) || params[:q] end |
#get_saved_searches(context) ⇒ Object
Get list of Saved Search by context
13 14 15 |
# File 'app/controllers/concerns/ransack_advanced_search/saved_search_utils.rb', line 13 def get_saved_searches(context) @saved_searches = SavedSearch.where(context: context) end |
#new_saved_search(params) ⇒ Object
45 46 47 48 49 50 |
# File 'app/controllers/concerns/ransack_advanced_search/saved_search_utils.rb', line 45 def new_saved_search(params) SavedSearch.new( context: params[:context], description: params[:description], search_params: params[:q] ) end |
#perform_saved_searches_actions(context, params = {}) ⇒ Object
Perform saved searches actions to provide full functionality with one method
6 7 8 9 10 |
# File 'app/controllers/concerns/ransack_advanced_search/saved_search_utils.rb', line 6 def perform_saved_searches_actions(context, params={}) get_saved_searches(context) save_or_update_saved_search(params.merge(context: context)) get_params_to_search(context) end |
#save_or_update_saved_search(params) ⇒ Object
Save or update Saved Search
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/controllers/concerns/ransack_advanced_search/saved_search_utils.rb', line 27 def save_or_update_saved_search(params) if params[:save_new_search].present? || params[:save_search].present? if params[:save_new_search].present? @saved_search = new_saved_search(params) elsif params[:save_search].present? && params[:saved_search].present? @saved_search = update_saved_search(params) elsif params[:save_search].present? @saved_search = new_saved_search(params) end if @saved_search.save flash[:notice] = t('ransack.saved_search.save.success') else flash[:error] = t('ransack.saved_search.save.error') end end end |
#update_saved_search(params) ⇒ Object
52 53 54 55 56 57 |
# File 'app/controllers/concerns/ransack_advanced_search/saved_search_utils.rb', line 52 def update_saved_search(params) saved_search = SavedSearch.find_by(id: params[:saved_search], context: params[:context]) saved_search.description = params[:description] saved_search.search_params = params[:q] saved_search end |