Module: Card::Set::Abstract::Filter::HtmlFormat

Extended by:
Card::Set::AbstractFormat
Defined in:
tmpsets/set/mod020-search/abstract/03_filter.rb

Instance Method Summary collapse

Instance Method Details

#active_filter?(field) ⇒ Boolean

Returns:

  • (Boolean)


78
79
80
81
82
83
84
# File 'tmpsets/set/mod020-search/abstract/03_filter.rb', line 78

def active_filter? field
  if card.filter_keys_from_params.present?
    filter_hash.key? field
  else
    default_filter? field
  end
end

#default_filter?(field) ⇒ Boolean

Returns:

  • (Boolean)


86
87
88
# File 'tmpsets/set/mod020-search/abstract/03_filter.rb', line 86

def default_filter? field
  card.default_filter_option.key?(field)
end

#filter_action_pathObject



104
105
106
# File 'tmpsets/set/mod020-search/abstract/03_filter.rb', line 104

def filter_action_path
  path
end

#filter_fields(slot_selector: nil, sort_field: nil) ⇒ Object



63
64
65
66
67
# File 'tmpsets/set/mod020-search/abstract/03_filter.rb', line 63

def filter_fields slot_selector: nil, sort_field: nil
  form_args = { action: filter_action_path, class: "slotter" }
  form_args["data-slot-selector"] = slot_selector if slot_selector
  filter_form filter_form_data, sort_field, form_args
end

#filter_form(data = {}, sort_input_field = nil, form_args = {}) ⇒ Object

Parameters:

  • data (Hash) (defaults to: {})

    the filter categories. The hash needs for every category a hash with a label and a input_field entry.



115
116
117
118
119
# File 'tmpsets/set/mod020-search/abstract/03_filter.rb', line 115

def filter_form data={}, sort_input_field=nil, form_args={}
  haml :filter_form, categories: data,
                     sort_input_field: sort_input_field,
                     form_args: form_args
end

#filter_form_dataObject



69
70
71
72
73
74
75
76
# File 'tmpsets/set/mod020-search/abstract/03_filter.rb', line 69

def filter_form_data
  all_filter_keys.each_with_object({}) do |cat, h|
    h[cat] = { label: filter_label(cat),
               input_field: _render("filter_#{cat}_formgroup"),
               active: active_filter?(cat),
               default: default_filter?(cat) }
  end
end

#filter_label(field) ⇒ Object



90
91
92
93
94
# File 'tmpsets/set/mod020-search/abstract/03_filter.rb', line 90

def filter_label field
  # return "Keyword" if field.to_sym == :name
  #
  filter_label_from_method(field) || filter_label_from_name(field)
end

#filter_label_from_method(field) ⇒ Object



96
97
98
# File 'tmpsets/set/mod020-search/abstract/03_filter.rb', line 96

def filter_label_from_method field
  try "#{field}_filter_label"
end

#filter_label_from_name(field) ⇒ Object



100
101
102
# File 'tmpsets/set/mod020-search/abstract/03_filter.rb', line 100

def filter_label_from_name field
  Card.fetch_name(field) { field.to_s.capitalize }
end

#sort_optionsObject



121
122
123
124
125
126
# File 'tmpsets/set/mod020-search/abstract/03_filter.rb', line 121

def sort_options
  {
    "Alphabetical": :name,
    "Recently Updated": :updated_at
  }
end