app/helpers/blacklight/url_helper_behavior.rb in blacklight-6.25.0 vs app/helpers/blacklight/url_helper_behavior.rb in blacklight-7.0.0.rc1
- old
+ new
@@ -1,25 +1,19 @@
# frozen_string_literal: true
##
# URL helper methods
module Blacklight::UrlHelperBehavior
- include Blacklight::DeprecatedUrlHelperBehavior
-
- ##
- # Extension point for downstream applications
- # to provide more interesting routing to
- # documents
def url_for_document(doc, options = {})
search_state.url_for_document(doc, options)
end
# link_to_document(doc, 'VIEW', :counter => 3)
# Use the catalog_path RESTful route to create a link to the show page for a specific item.
# catalog_path accepts a hash. The solr query params are stored in the session,
# so we only need the +counter+ param here. We also need to know if we are viewing to document as part of search results.
# TODO: move this to the IndexPresenter
- def link_to_document(doc, field_or_opts = nil, opts={:counter => nil})
+ def link_to_document(doc, field_or_opts = nil, opts = { counter: nil })
if field_or_opts.is_a? Hash
opts = field_or_opts
else
field = field_or_opts
end
@@ -30,27 +24,27 @@
end
def document_link_params(doc, opts)
session_tracking_params(doc, opts[:counter]).deep_merge(opts.except(:label, :counter))
end
- protected :document_link_params
+ private :document_link_params
##
# Link to the previous document in the current search context
def link_to_previous_document(previous_document)
- link_opts = session_tracking_params(previous_document, search_session['counter'].to_i - 1).merge(:class => "previous", :rel => 'prev')
+ link_opts = session_tracking_params(previous_document, search_session['counter'].to_i - 1).merge(class: "previous", rel: 'prev')
link_to_unless previous_document.nil?, raw(t('views.pagination.previous')), url_for_document(previous_document), link_opts do
- content_tag :span, raw(t('views.pagination.previous')), :class => 'previous'
+ content_tag :span, raw(t('views.pagination.previous')), class: 'previous'
end
end
##
# Link to the next document in the current search context
def link_to_next_document(next_document)
- link_opts = session_tracking_params(next_document, search_session['counter'].to_i + 1).merge(:class => "next", :rel => 'next')
+ link_opts = session_tracking_params(next_document, search_session['counter'].to_i + 1).merge(class: "next", rel: 'next')
link_to_unless next_document.nil?, raw(t('views.pagination.next')), url_for_document(next_document), link_opts do
- content_tag :span, raw(t('views.pagination.next')), :class => 'next'
+ content_tag :span, raw(t('views.pagination.next')), class: 'next'
end
end
##
# Attributes for a link that gives a URL we can use to track clicks for the current search session
@@ -64,13 +58,13 @@
if path.nil?
return {}
end
- { data: {:'context-href' => path } }
+ { data: { :'context-href' => path } }
end
- protected :session_tracking_params
+ private :session_tracking_params
##
# Get the URL for tracking search sessions across pages using polymorphic routing
def session_tracking_path document, params = {}
return if document.nil?
@@ -99,38 +93,38 @@
##
# Get the path to the search action with any parameters (e.g. view type)
# that should be persisted across search sessions.
def start_over_path query_params = params
- h = { }
+ h = {}
current_index_view_type = document_index_view_type(query_params)
h[:view] = current_index_view_type unless current_index_view_type == default_document_index_view_type
search_action_path(h)
end
# Create a link back to the index screen, keeping the user's facet, query and paging choices intact by using session.
# @example
# link_back_to_catalog(label: 'Back to Search')
# link_back_to_catalog(label: 'Back to Search', route_set: my_engine)
- def link_back_to_catalog(opts={:label=>nil})
+ def link_back_to_catalog(opts = { label: nil })
scope = opts.delete(:route_set) || self
query_params = search_state.reset(current_search_session.try(:query_params)).to_hash
if search_session['counter']
- per_page = (search_session['per_page'] || default_per_page).to_i
+ per_page = (search_session['per_page'] || blacklight_config.default_per_page).to_i
counter = search_session['counter'].to_i
- query_params[:per_page] = per_page unless search_session['per_page'].to_i == default_per_page
- query_params[:page] = ((counter - 1)/ per_page) + 1
+ query_params[:per_page] = per_page unless search_session['per_page'].to_i == blacklight_config.default_per_page
+ query_params[:page] = ((counter - 1) / per_page) + 1
end
link_url = if query_params.empty?
- search_action_path(only_path: true)
- else
- scope.url_for(query_params)
- end
+ search_action_path(only_path: true)
+ else
+ scope.url_for(query_params)
+ end
label = opts.delete(:label)
if link_url =~ /bookmarks/
label ||= t('blacklight.back_to_bookmarks')
end
@@ -151,13 +145,13 @@
# @return [Hash]
def add_group_facet_params_and_redirect group
search_state.add_facet_params_and_redirect(group.field, group.key)
end
- # A URL to refworks export, with an embedded callback URL to this app.
- # the callback URL is to bookmarks#export, which delivers a list of
+ # A URL to refworks export, with an embedded callback URL to this app.
+ # the callback URL is to bookmarks#export, which delivers a list of
# user's bookmarks in 'refworks marc txt' format -- we tell refworks
- # to expect that format.
+ # to expect that format.
def bookmarks_export_url(format, params = {})
- bookmarks_url(params.merge(format: format, encrypted_user_id: encrypt_user_id(current_or_guest_user.id) ))
+ bookmarks_url(params.merge(format: format, encrypted_user_id: encrypt_user_id(current_or_guest_user.id)))
end
end