app/controllers/manifestations_controller.rb in enju_biblio-0.3.11 vs app/controllers/manifestations_controller.rb in enju_biblio-0.3.12

- old
+ new

@@ -31,29 +31,18 @@ if params[:format] == 'txt' per_page = 65534 end - if params[:format] == 'sru' - if params[:operation] == 'searchRetrieve' - sru = Sru.new(params) - query = sru.cql.to_sunspot - sort = sru.sort_by - else - render template: 'manifestations/explain', layout: false - return - end + if params[:api] == 'openurl' + openurl = Openurl.new(params) + @manifestations = openurl.search + query = openurl.query_text + sort = set_search_result_order(params[:sort_by], params[:order]) else - if params[:api] == 'openurl' - openurl = Openurl.new(params) - @manifestations = openurl.search - query = openurl.query_text - sort = set_search_result_order(params[:sort_by], params[:order]) - else - query = make_query(params[:query], params) - sort = set_search_result_order(params[:sort_by], params[:order]) - end + query = make_query(params[:query], params) + sort = set_search_result_order(params[:sort_by], params[:order]) end # 絞り込みを行わない状態のクエリ @query = query.dup query = query.gsub(' ', ' ') @@ -189,41 +178,41 @@ if params[:per_page].to_i > 0 per_page = params[:per_page].to_i else per_page = Manifestation.default_per_page end - if params[:format] == 'sru' - #search.query.start_record(params[:startRecord] || 1, params[:maximumRecords] || 200) + + pub_dates = parse_pub_date(params) + pub_date_range = {} + + if pub_dates[:from] == '*' + pub_date_range[:from] = 0 else - pub_dates = parse_pub_date(params) - pub_date_range = {} - if pub_dates[:from] == '*' - pub_date_range[:from] = 0 - else - pub_date_range[:from] = Time.zone.parse(pub_dates[:from]).year - end - if pub_dates[:until] == '*' - pub_date_range[:until] = 10000 - else - pub_date_range[:until] = Time.zone.parse(pub_dates[:until]).year - end - if params[:pub_year_range_interval] - pub_year_range_interval = params[:pub_year_range_interval].to_i - else - pub_year_range_interval = @library_group.pub_year_facet_range_interval || 10 - end + pub_date_range[:from] = Time.zone.parse(pub_dates[:from]).year + end + if pub_dates[:until] == '*' + pub_date_range[:until] = 10000 + else + pub_date_range[:until] = Time.zone.parse(pub_dates[:until]).year + end - search.build do - facet :reservable if defined?(EnjuCirculation) - facet :carrier_type - facet :library - facet :language - facet :pub_year, range: pub_date_range[:from]..pub_date_range[:until], range_interval: pub_year_range_interval - facet :subject_ids if defined?(EnjuSubject) - paginate page: page.to_i, per_page: per_page - end + if params[:pub_year_range_interval] + pub_year_range_interval = params[:pub_year_range_interval].to_i + else + pub_year_range_interval = @library_group.pub_year_facet_range_interval || 10 end + + search.build do + facet :reservable if defined?(EnjuCirculation) + facet :carrier_type + facet :library + facet :language + facet :pub_year, range: pub_date_range[:from]..pub_date_range[:until], range_interval: pub_year_range_interval + facet :subject_ids if defined?(EnjuSubject) + paginate page: page.to_i, per_page: per_page + end + search_result = search.execute if @count[:query_result] > @max_number_of_results max_count = @max_number_of_results else max_count = @count[:query_result] @@ -259,10 +248,9 @@ respond_to do |format| format.html format.html.phone format.xml { render xml: @manifestations } - format.sru { render layout: false } format.rss { render layout: false } format.txt { render layout: false } format.rdf { render layout: false } format.atom format.mods