diff --git a/app/components/blacklight/search_context/server_item_pagination_component.html.erb b/app/components/blacklight/search_context/server_item_pagination_component.html.erb new file mode 100644 index 0000000000..dbe9ae9fc4 --- /dev/null +++ b/app/components/blacklight/search_context/server_item_pagination_component.html.erb @@ -0,0 +1,10 @@ +
diff --git a/app/components/blacklight/search_context/server_item_pagination_component.rb b/app/components/blacklight/search_context/server_item_pagination_component.rb new file mode 100644 index 0000000000..45c99c05d5 --- /dev/null +++ b/app/components/blacklight/search_context/server_item_pagination_component.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +module Blacklight + module SearchContext + class ServerItemPaginationComponent < Blacklight::Component + with_collection_parameter :search_context + + def initialize(search_context:, search_session:, current_document:) + @search_context = search_context + @search_session = search_session + @current_document_id = current_document.id + end + + def render? + @search_context.present? && (@search_context[:prev] || @search_context[:next]) + end + + def item_page_entry_info + Deprecation.silence(Blacklight::CatalogHelperBehavior) do + helpers.item_page_entry_info + end + end + + def link_to_previous_document(document = nil, *args, **kwargs) + Deprecation.silence(Blacklight::UrlHelperBehavior) do + helpers.link_to_previous_document(document || @search_context[:prev], *args, **kwargs) + end + end + + def link_to_next_document(document = nil, *args, **kwargs) + Deprecation.silence(Blacklight::UrlHelperBehavior) do + helpers.link_to_next_document(document || @search_context[:next], *args, **kwargs) + end + end + end + end +end diff --git a/app/components/blacklight/search_context_component.rb b/app/components/blacklight/search_context_component.rb index e7d8bb59a3..fd623221dc 100644 --- a/app/components/blacklight/search_context_component.rb +++ b/app/components/blacklight/search_context_component.rb @@ -5,6 +5,7 @@ class SearchContextComponent < Blacklight::Component with_collection_parameter :search_context def initialize(search_context:, search_session:) + Blacklight.deprecation.warn("Blacklight::SearchContextComponent is deprecated and will be moved to Blacklight::SearchContext::ServerItemPaginationComponent in Blacklight 8.0.0") @search_context = search_context @search_session = search_session end diff --git a/app/helpers/blacklight/catalog_helper_behavior.rb b/app/helpers/blacklight/catalog_helper_behavior.rb index 9120846efc..05befd35ae 100644 --- a/app/helpers/blacklight/catalog_helper_behavior.rb +++ b/app/helpers/blacklight/catalog_helper_behavior.rb @@ -106,7 +106,7 @@ def item_page_entry_info total: number_with_delimiter(search_session['total']), count: search_session['total'].to_i).html_safe end - deprecation_deprecate item_page_entry_info: 'Use Blacklight::SearchContextComponent methods instead' + deprecation_deprecate item_page_entry_info: 'Use Blacklight::SearchContext::ServerItemPaginationComponent methods instead' ## # Look up search field user-displayable label diff --git a/app/helpers/blacklight/url_helper_behavior.rb b/app/helpers/blacklight/url_helper_behavior.rb index 16b5ddb0b0..a5ecc82d80 100644 --- a/app/helpers/blacklight/url_helper_behavior.rb +++ b/app/helpers/blacklight/url_helper_behavior.rb @@ -58,7 +58,7 @@ def link_to_previous_document(previous_document, classes: 'previous', **addl_lin tag.span raw(t('views.pagination.previous')), class: 'previous' end end - deprecation_deprecate link_to_previous_document: 'Moving to Blacklight::SearchContextComponent' + deprecation_deprecate link_to_previous_document: 'Moving to Blacklight::SearchContext::ServerItemPaginationComponent' ## # Link to the next document in the current search context @@ -69,7 +69,7 @@ def link_to_next_document(next_document, classes: 'next', **addl_link_opts) tag.span raw(t('views.pagination.next')), class: 'next' end end - deprecation_deprecate link_to_previous_document: 'Moving to Blacklight::SearchContextComponent' + deprecation_deprecate link_to_previous_document: 'Moving to Blacklight::SearchContext::ServerItemPaginationComponent' ## # Attributes for a link that gives a URL we can use to track clicks for the current search session diff --git a/app/views/catalog/_previous_next_doc.html.erb b/app/views/catalog/_previous_next_doc.html.erb index c0d32fd6a4..3a1ec2b2ae 100644 --- a/app/views/catalog/_previous_next_doc.html.erb +++ b/app/views/catalog/_previous_next_doc.html.erb @@ -1,2 +1,2 @@ -<% Deprecation.warn(self, 'The partial _previous_next_doc.html.erb will be removed in 8.0. Render Blacklight::SearchContextComponent instead.') %> -<%= render(Blacklight::SearchContextComponent.new(search_context: @search_context, search_session: search_session)) %> +<% Deprecation.warn(self, 'The partial _previous_next_doc.html.erb will be removed in 8.0. Render Blacklight::SearchContext::ServerItemPaginationComponent instead.') %> +<%= render(Blacklight::SearchContext::ServerItemPaginationComponent.new(search_context: @search_context, search_session: search_session, current_document: @current_document)) %> diff --git a/app/views/catalog/_show_main_content.html.erb b/app/views/catalog/_show_main_content.html.erb index 8190d7b5d4..aa4c790ab7 100644 --- a/app/views/catalog/_show_main_content.html.erb +++ b/app/views/catalog/_show_main_content.html.erb @@ -1,4 +1,4 @@ -<%= render(Blacklight::SearchContextComponent.new(search_context: @search_context, search_session: search_session)) if search_session['document_id'] == @document.id %> +<%= render(Blacklight::SearchContext::ServerItemPaginationComponent.new(search_context: @search_context, search_session: search_session, current_document: @document)) if search_session['document_id'] == @document.id %> <% @page_title = t('blacklight.search.show.title', document_title: Deprecation.silence(Blacklight::BlacklightHelperBehavior) { document_show_html_title }, application_name: application_name).html_safe %> <% content_for(:head) { render_link_rel_alternates } %>