adds filters and breaks pagination

This commit is contained in:
Lars Henrik Mai 2015-05-18 22:14:46 +02:00
parent ff58856c99
commit be19256457
2 changed files with 39 additions and 5 deletions

View file

@ -1,12 +1,35 @@
class SearchController < ApplicationController class SearchController < ApplicationController
def index def index
@show_search_result = params[:q].present? @paper_type = params[:paper_type]
@originator = params[:originator]
@show_search_result = @show_filters = params[:q].present?
papers_found = if @show_search_result papers_found = if @show_search_result
Paper.search(params[:q]).records Paper.search(params[:q]).records
else else
Paper Paper.all
end
if @show_filters
@paper_types_found = papers_found.map(&:paper_type).uniq
@originators_found = papers_found.map(&:originator).uniq
if @paper_type.present?
papers_found = papers_found.where(paper_type: @paper_type)
end
if @originator.present?
papers_found = papers_found.where(originator: @originator)
end
end
@papers_count = papers_found.page(params[:page]).total_count
@papers = papers_found.page(params[:page])
# Fixme Pagination
#order(published_at: :desc).
# page(params[:page])
end end
@papers_count = @show_search_result ? papers_found.results.total : papers_found.count
@papers = papers_found.order(published_at: :desc).page(params[:page])
end
end end

View file

@ -1,2 +1,13 @@
= form_tag(search_path, method: :get) = form_tag(search_path, method: :get)
= text_field_tag(:q, params[:q], placeholder: 'Suche…', autofocus: true) = text_field_tag(:q, params[:q], placeholder: 'Suche…', autofocus: true)
- if @show_filters
fieldset
legend Ergebnisse filtern
.row
.small-4.columns
= label "paper_type", "Typ"
= select_tag "paper_type", options_for_select(@paper_types_found, @paper_type), include_blank: true, :onchange => "this.form.submit();"
.small-4.columns.end
= label "originator", "Einreicher"
= select_tag "originator", options_for_select(@originators_found, @originator), include_blank: true, :onchange => "this.form.submit();"