.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;
        }
      }
    }
  })
});