.form-inline.wice_index_for

.row
  .col-sm-6.index_for_length
    Show
    %select.form-control.input
      - builder.per_pages do |per_page, url, active|
        %option{"data-href" => ""}
        = url
        " #{selected if active}>#{per_page}
  entries
.col-sm-6.text-right.index_for_filter
  Search:
  %input.form-control.input{:placeholder => "", :type => "search"}/
  = params[:search]
  " data-href="#{url_for(params.merge(search: nil, page: 1))}">

.row

.col-sm-12
  - html_options[:head_builder] ||= IndexFor::WiceHeadColumnBuilder
  = index_for objects, html_options, block

.row

.col-sm-5.index_for_info= page_entries_info objects
.col-sm-7.text-right.index_for_pagination
  = paginate objects, window: 2

:javascript

$(".wice_index_for").each(function() {
  var $this = $(this);
  if ($this.data("wice-index-for")) return;
  $this.data("wice-index-for", true);
  $this.find(".index_for_length select").change(function(event) {
    var location = $(event.target).find("option:selected").data("href");
    if (location) window.location = location;
  });

  $this.find(".index_for thead th").click(function(event) {
    var location = $(event.target).data("href");
    if (location) window.location = location;
  });

  $this.find(".index_for_filter input").keypress(function(event) {
    if (event.which === 13 || event.keyCode === 13) {
      var location = $(event.target).data("href"),
          search = $(event.target).val();
      if (location) {
        if (location.indexOf("?") >= 0) {
          window.location = location + "&search=" + search;
        } else {
          window.location = location + "?search=" + search;
        }
      }
    }
  })
});