Sha256: 760e0997bda9a01a837e3d2ffcd963e77d03df019cb757a2e799fd9b82dae69d

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

<%
  # Props
  title = local_assigns.fetch(:title, nil)
  filter = local_assigns.fetch(:filter, nil)
  base_class = local_assigns.fetch(:base_class, nil)

  # Methods
  def filter_list(filter, css_class)
    labels = filter[:labels] || filter[:conds].map {|m,c| [m,m]}
    return if labels.empty?

    content_tag :ul, class: css_class do
      labels.each do |name, value|
        label = "#{filter[:name]}_#{name}".gsub(/\s+/,'_')
        checked = params[:search] &&
          params[:search][filter[:scope]] &&
          params[:search][filter[:scope]].include?(value.to_s) ? true : false

        concat filter_list_item(filter, checked, label, value, name)
      end
    end
  end

  def filter_list_item(filter, checked, label, value, name)
    content_tag :li do
      concat check_box_tag(
        "search[#{filter[:scope].to_s}][]",
        value,
        checked,
        id: label)

      # concat label_tag(label, name)
      concat ("<label for='#{label}'>#{name}</label>").html_safe
    end
  end
%>

<% filter_list = filter_list(filter, "#{base_class}__list") %>
<% if filter_list.present? %>
  <%= content_tag :h6, title, class: "#{base_class}__title" if title %>
  <%= filter_list %>
<% end %>

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
solidus_starter_frontend-0.1.0 app/views/spree/components/search/_filter.html.erb