diff --git a/app/models/search_builder.rb b/app/models/search_builder.rb index d9501db13..8e0163183 100644 --- a/app/models/search_builder.rb +++ b/app/models/search_builder.rb @@ -85,7 +85,7 @@ def excessive_paging_error(_solr_parameters) def excessive_paging? page = blacklight_params[:page].to_i || 0 return false if page <= 1 - return false if (search_parameters? || advanced_search?) && page < 1000 + return false if (search_parameters? || advanced_search? || bookmarks_page?) && page < 1000 true end @@ -153,4 +153,8 @@ def add_edismax(advanced_fields:) blacklight_config.search_fields[field]['clause_params'] = { edismax: } end end + + def bookmarks_page? + blacklight_params[:controller] == 'bookmarks' + end end diff --git a/spec/models/search_builder_spec.rb b/spec/models/search_builder_spec.rb index a21799fa0..f45bda1b0 100644 --- a/spec/models/search_builder_spec.rb +++ b/spec/models/search_builder_spec.rb @@ -54,6 +54,12 @@ expect(search_builder.excessive_paging?).to be false end + it 'allows paging for bookmarks controller' do + search_builder.blacklight_params[:page] = reasonable + search_builder.blacklight_params[:controller] = 'bookmarks' + expect(search_builder.excessive_paging?).to be false + end + it 'handles query ending with empty parenthesis' do search_builder.blacklight_params[:q] = 'hello world ()' search_builder.parslet_trick({})