• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / orangelight / dedf2a73-1882-428c-a89c-aef4378e65b0

14 Aug 2025 01:25PM UTC coverage: 0.422% (-94.9%) from 95.343%
dedf2a73-1882-428c-a89c-aef4378e65b0

push

circleci

web-flow
Merge pull request #5181 from pulibrary/dependabot/bundler/activestorage-7.2.2.2

Bump activestorage from 7.2.2.1 to 7.2.2.2

41 of 9721 relevant lines covered (0.42%)

0.01 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/app/components/orangelight/guided_search_fields_component.rb
1
# frozen_string_literal: true
2

3
# Fill in default from existing search, if present
4
# -- if you are using same search fields for basic
5
# search and advanced, will even fill in properly if existing
6
# search used basic search on same field present in advanced.
7
class Orangelight::GuidedSearchFieldsComponent < Blacklight::Component
×
8
  def label_tag_default_for(key)
×
9
    params_key = params[key]
×
10
    if params_key.present?
×
11
      params_key
×
12
    elsif params['search_field'] == key || guided_context(key)
×
13
      params['q']
×
14
    else
×
15
      param_for_field key
×
16
    end
×
17
  end
×
18

19
  # :reek:FeatureEnvy
20
  def advanced_key_value
×
21
    advanced_search_fields.map do |field|
×
22
      [field[1][:label], field[0]]
×
23
    end
×
24
  end
×
25

26
  # carries over original search field and original guided search fields if user switches to guided search from regular search
27
  def guided_field(field_num, default_val)
×
28
    search_field = params[:search_field]
×
29
    search_field_for_advanced_search = advanced_search_fields[search_field]
×
30
    return search_field_for_advanced_search.key || default_val if first_search_field_selector?(field_num) && no_advanced_search_fields_specified? && search_field && search_field_for_advanced_search
×
31
    params[field_num] || param_for_field(field_num) || default_val
×
32
  end
×
33

34
  # carries over original search query if user switches to guided search from regular search
35
  def guided_context(key)
×
36
    search_field = params[:search_field]
×
37
    first_search_field?(key) &&
×
38
      search_field && advanced_search_fields[search_field]
×
39
  end
×
40

41
  # carries over guided search operations if user switches back to guided search from regular search
42
  # rubocop:disable Naming/PredicateMethod
43
  def guided_radio(op_num, operator)
×
44
    op_num_from_params = params[op_num]
×
45
    if op_num_from_params
×
46
      op_num_from_params == operator
×
47
    else
×
48
      operator == 'AND'
×
49
    end
×
50
  end
×
51
  # rubocop:enable Naming/PredicateMethod
52

53
  # private
54

55
  # :reek:NilCheck
56
  def advanced_search_fields
×
57
    blacklight_config.search_fields.select do |_key, value|
×
58
      include_in_advanced_search = value.include_in_advanced_search
×
59
      include_in_advanced_search || include_in_advanced_search.nil?
×
60
    end
×
61
  end
×
62

63
  # :reek:UtilityFunction
64
  def first_search_field_selector?(key)
×
65
    %i[clause_0_field].include? key
×
66
  end
×
67

68
  def no_advanced_search_fields_specified?
×
69
    %i[clause_0_field clause_1_field clause_2_field].none? do |key|
×
70
      params[key].present?
×
71
    end
×
72
  end
×
73

74
  # :reek:FeatureEnvy
75
  def param_for_field(field_identifier)
×
76
    field_identifier_string = field_identifier.to_s
×
77
    return unless field_identifier_string.start_with? 'clause'
×
78
    components = field_identifier_string.split('_')
×
79
    params.dig(*components)
×
80
  end
×
81

82
  # :reek:UtilityFunction
83
  def first_search_field?(key)
×
84
    %i[q1 clause_0_query].include? key
×
85
  end
×
86

87
  delegate :blacklight_config, to: :helpers
×
88
end
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc