diff options
-rw-r--r-- | app/controllers/general_controller.rb | 10 | ||||
-rw-r--r-- | app/views/general/search.rhtml | 12 |
2 files changed, 14 insertions, 8 deletions
diff --git a/app/controllers/general_controller.rb b/app/controllers/general_controller.rb index aafd76ff3..f412a9db7 100644 --- a/app/controllers/general_controller.rb +++ b/app/controllers/general_controller.rb @@ -5,7 +5,7 @@ # Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: general_controller.rb,v 1.24 2008-05-15 22:47:16 francis Exp $ +# $Id: general_controller.rb,v 1.25 2008-05-18 22:07:40 francis Exp $ class GeneralController < ApplicationController @@ -63,11 +63,17 @@ class GeneralController < ApplicationController end query = combined.join("/") - # Query each type separately for separate display + # Query each type separately for separate display (XXX we are calling + # perform_search multiple times and it clobbers per_page for each one, + # so set as separate var) @xapian_requests = perform_search([InfoRequestEvent], query, sortby, 'request_collapse', 25) + @requests_per_page = @per_page @xapian_bodies = perform_search([PublicBody], query, sortby, nil, 5) + @bodies_per_page = @per_page @xapian_users = perform_search([User], query, sortby, nil, 5) + @users_per_page = @per_page + @this_page_hits = @xapian_requests.results.size + @xapian_bodies.results.size + @xapian_users.results.size @total_hits = @xapian_requests.matches_estimated + @xapian_bodies.matches_estimated + @xapian_users.matches_estimated # Spelling and highight words are same for all three queries diff --git a/app/views/general/search.rhtml b/app/views/general/search.rhtml index 0526d2026..82e24db66 100644 --- a/app/views/general/search.rhtml +++ b/app/views/general/search.rhtml @@ -40,33 +40,33 @@ <% end %> <% if @xapian_bodies.results.size > 0 %> - <h1><%= "Public authorities " + ((@page-1)*@per_page+1).to_s + "-" + [@page*@per_page, @xapian_bodies.matches_estimated].min.to_s + " of " + @xapian_bodies.matches_estimated.to_s + " for '" + h(@query) + "'" %></h1> + <h1><%= "Public authorities " + ((@page-1)*@bodies_per_page+1).to_s + "-" + [@page*@bodies_per_page, @xapian_bodies.matches_estimated].min.to_s + " of " + @xapian_bodies.matches_estimated.to_s + " for '" + h(@query) + "'" %></h1> <% for result in @xapian_bodies.results %> <%= render :partial => 'body/body_listing_single', :locals => { :public_body => result[:model] } %> <% end %> - <%= will_paginate WillPaginate::Collection.new(@page, @per_page, @xapian_bodies.matches_estimated) %> + <%= will_paginate WillPaginate::Collection.new(@page, @bodies_per_page, @xapian_bodies.matches_estimated) %> <% end %> <% if @xapian_users.results.size > 0 %> - <h1><%= "People " + ((@page-1)*@per_page+1).to_s + "-" + [@page*@per_page, @xapian_users.matches_estimated].min.to_s + " of " + @xapian_users.matches_estimated.to_s + " for '" + h(@query) + "'" %></h1> + <h1><%= "People " + ((@page-1)*@users_per_page+1).to_s + "-" + [@page*@users_per_page, @xapian_users.matches_estimated].min.to_s + " of " + @xapian_users.matches_estimated.to_s + " for '" + h(@query) + "'" %></h1> <% for result in @xapian_users.results %> <%= render :partial => 'user/user_listing_single', :locals => { :display_user => result[:model] } %> <% end %> - <%= will_paginate WillPaginate::Collection.new(@page, @per_page, @xapian_users.matches_estimated) %> + <%= will_paginate WillPaginate::Collection.new(@page, @users_per_page, @xapian_users.matches_estimated) %> <% end %> <% if @xapian_requests.results.size > 0 %> - <h1><%= "FOI requests " + ((@page-1)*@per_page+1).to_s + "-" + [@page*@per_page, @xapian_requests.matches_estimated].min.to_s + " of " + @xapian_requests.matches_estimated.to_s + " for '" + h(@query) + "'" %></h1> + <h1><%= "FOI requests " + ((@page-1)*@requests_per_page+1).to_s + "-" + [@page*@requests_per_page, @xapian_requests.matches_estimated].min.to_s + " of " + @xapian_requests.matches_estimated.to_s + " for '" + h(@query) + "'" %></h1> <% for result in @xapian_requests.results %> <%= render :partial => 'request/request_listing_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request } %> <% end %> - <%= will_paginate WillPaginate::Collection.new(@page, @per_page, @xapian_requests.matches_estimated) %> + <%= will_paginate WillPaginate::Collection.new(@page, @requests_per_page, @xapian_requests.matches_estimated) %> <% if @track_thing %> <%= render :partial => 'track/tracking_people_and_link', :locals => { :track_thing => @track_thing, :own_request => false, :list_people => false } %> <% end %> |