Module: Discerner::Methods::Helpers::SearchesHelper
- Included in:
- ParametersHelper, SearchesHelper
- Defined in:
- lib/discerner/methods/helpers/searches_helper.rb
Instance Method Summary collapse
- #combined_searches_options(search = nil) ⇒ Object
- #dictionary_options(searchable_dictionaries) ⇒ Object
- #discerner_export_link ⇒ Object
- #discerner_format_date(date) ⇒ Object
- #discerner_format_datetime(datetime) ⇒ Object
- #discerner_generate_nested_attributes_template(f, association, association_prefix = nil) ⇒ Object
- #discerner_link_to_add_fields(name, association, html_options = {}) ⇒ Object
- #discerner_link_to_remove_fields(name, f, association) ⇒ Object
- #discerner_nested_record_id(builder, assocation) ⇒ Object
- #discerner_results_partial ⇒ Object
- #exportable_parameter_categories(search = nil) ⇒ Object
- #exportable_parameters(search, category) ⇒ Object
- #operator_options(type = nil) ⇒ Object
- #parameter_options(searchable_parameters, base_id = nil) ⇒ Object
- #parameter_value_options(searchable_values, base_id = nil) ⇒ Object
- #search_parameter_values(search_parameter) ⇒ Object
- #searchable_object_index(object, base_id = nil) ⇒ Object
Instance Method Details
#combined_searches_options(search = nil) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 47 def (search=nil) all_searches = Discerner::Search.order(:id) username = discerner_user.username unless discerner_user.blank? all_searches = all_searches.by_user(username) unless username.blank? if search.blank? || !search.persisted? searches = all_searches.not_deleted.reject{|s| s.disabled?} else searches_available = all_searches.not_deleted. where('id != ? and dictionary_id = ?', search.id,search.dictionary_id). reject{|s| s.nested_searches.include?(search) || s.disabled?} searches_used = search.combined_searches searches = searches_available | searches_used end searches.map {|s| [s.display_name, s.id, {class: s.dictionary.css_class_name}]} end |
#dictionary_options(searchable_dictionaries) ⇒ Object
43 44 45 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 43 def (searchable_dictionaries) searchable_dictionaries.map{|d| [d.name, d.id, {class: d.css_class_name}]} end |
#discerner_export_link ⇒ Object
118 119 120 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 118 def discerner_export_link link_to "Export options", export_parameters_path(@discerner_search), class: "discerner-button discerner-button-positive" end |
#discerner_format_date(date) ⇒ Object
126 127 128 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 126 def discerner_format_date(date) date.strftime("%m/%d/%Y") if date end |
#discerner_format_datetime(datetime) ⇒ Object
122 123 124 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 122 def discerner_format_datetime(datetime) datetime.strftime("%m/%d/%Y %I:%M %p") if datetime end |
#discerner_generate_nested_attributes_template(f, association, association_prefix = nil) ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 9 def discerner_generate_nested_attributes_template(f, association, association_prefix = nil ) if association_prefix.nil? association_prefix = association.to_s.singularize end new_object = f.object.class.reflect_on_association(association).klass.new fields = f.fields_for(association, new_object, child_index: "new_#{association}") do |form_builder| render(association_prefix + "_fields", f: form_builder) end escape_javascript(fields) end |
#discerner_link_to_add_fields(name, association, html_options = {}) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 20 def discerner_link_to_add_fields(name, association, ={}) css_class = [:class] || ' ' css_class += "add_#{association.to_s} add discerner-add-link discerner-icon-link" [:class] = css_class link_to(name, 'javascript:void(0);', ) end |
#discerner_link_to_remove_fields(name, f, association) ⇒ Object
27 28 29 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 27 def discerner_link_to_remove_fields(name, f, association) f.hidden_field(:_destroy) + link_to(name, "javascript:void(0);", class: "delete_#{association.to_s} discerner-delete-link discerner-icon-link") end |
#discerner_nested_record_id(builder, assocation) ⇒ Object
31 32 33 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 31 def discerner_nested_record_id(builder, assocation) builder.object.id.nil? ? "new_nested_record" : "#{assocation.to_s.singularize}_#{builder.object.id}" end |
#discerner_results_partial ⇒ Object
5 6 7 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 5 def discerner_results_partial "discerner/dictionaries/#{@discerner_search.dictionary.parameterized_name}/results" end |
#exportable_parameter_categories(search = nil) ⇒ Object
85 86 87 88 89 90 91 92 93 94 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 85 def exportable_parameter_categories(search=nil) if search.blank? || !search.persisted? parameter_categories = Discerner::ParameterCategory.not_deleted.exportable.to_a else parameter_categories_available = search.dictionary.parameter_categories.exportable.to_a parameter_categories_used = search.export_parameters.map{ |ep| ep.parameter.parameter_category }.flatten parameter_categories = parameter_categories_available | parameter_categories_used end parameter_categories end |
#exportable_parameters(search, category) ⇒ Object
96 97 98 99 100 101 102 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 96 def exportable_parameters(search, category) return if search.blank? || !search.persisted? parameters_available = category.parameters.exportable.to_a parameters_used = search.export_parameters.map{|ep| ep.parameter}.reject{|p| p.parameter_category != category }.flatten parameters = parameters_available | parameters_used parameters.sort{|a,b| a.name <=> b.name} end |
#operator_options(type = nil) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 35 def (type=nil) operators = Discerner::Operator.not_deleted unless type.blank? operators = operators.joins(:parameter_types).where("discerner_parameter_types.name in (?)", type) end operators.includes(:parameter_types).uniq.map {|o| [o.text, o.id, {class: o.css_class_name}]} end |
#parameter_options(searchable_parameters, base_id = nil) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 65 def (searchable_parameters, base_id=nil) = [] searchable_parameters.each do |p| option = [p.display_name, p.id] = {class: p.css_class_name} [:id] = searchable_object_index(p, base_id) unless base_id.blank? option << << option end end |
#parameter_value_options(searchable_values, base_id = nil) ⇒ Object
77 78 79 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 77 def (searchable_values, base_id=nil) searchable_values.map { |pv| [(pv.category_name.nil? ? pv.name : "#{pv.category_name} - #{pv.name}"), pv.id, base_id.nil? ? {} : { id: searchable_object_index(pv, base_id) }] } end |
#search_parameter_values(search_parameter) ⇒ Object
104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 104 def search_parameter_values(search_parameter) search_parameter_values = search_parameter.parameter.parameter_type.name == 'list' ? search_parameter.search_parameter_values.chosen : search_parameter.search_parameter_values display_values = [] search_parameter_values.each do |spv| string = '' value = spv.parameter_value.blank? ? spv.value : spv.parameter_value.name string += spv.operator.text unless spv.operator.blank? string += " \"#{value}\"" unless value.blank? string += " \"#{spv.additional_value}\"" unless spv.additional_value.blank? display_values << string end display_values.join(' or ') end |
#searchable_object_index(object, base_id = nil) ⇒ Object
81 82 83 |
# File 'lib/discerner/methods/helpers/searches_helper.rb', line 81 def searchable_object_index(object, base_id=nil) "#{base_id}_#{object.id}" end |