@@ -101,6 +101,8 @@ def agent_is_crawler?
101101 end
102102
103103 def find_or_initialize_search_session_from_params params
104+ return unless blacklight_config . track_search_session_config . storage == 'server'
105+
104106 params_copy = params . reject { |k , v | blacklisted_search_session_params . include? ( k . to_sym ) || v . blank? }
105107
106108 return if params_copy . reject { |k , _v | [ :action , :controller ] . include? k . to_sym } . blank?
@@ -131,25 +133,31 @@ def blacklisted_search_session_params
131133 # calls setup_previous_document then setup_next_document.
132134 # used in the show action for single view pagination.
133135 def setup_next_and_previous_documents
134- if search_session [ 'counter' ] && current_search_session
135- index = search_session [ 'counter' ] . to_i - 1
136- response , documents = search_service . previous_and_next_documents_for_search index , search_state . reset ( current_search_session . query_params )
136+ return { counter : params [ :counter ] } if setup_next_and_previous_on_client?
137+ return nil unless setup_next_and_previous_on_server?
137138
138- search_session [ 'total' ] = response . total
139- { prev : documents . first , next : documents . last }
140- end
139+ index = search_session [ 'counter' ] . to_i - 1
140+ response , documents = search_service . previous_and_next_documents_for_search index , search_state . reset ( current_search_session . query_params )
141+
142+ search_session [ 'total' ] = response . total
143+ { prev : documents . first , next : documents . last }
141144 rescue Blacklight ::Exceptions ::InvalidRequest => e
142145 logger &.warn "Unable to setup next and previous documents: #{ e } "
143146 nil
144147 end
145148
149+ def setup_next_and_previous_on_server?
150+ search_session [ 'counter' ] && current_search_session && blacklight_config . track_search_session . storage == 'server'
151+ end
152+
153+ def setup_next_and_previous_on_client?
154+ params [ :counter ] && blacklight_config . track_search_session . storage == 'client'
155+ end
156+
146157 def page_links_document_path ( document , counter )
147158 return nil unless document
159+ return search_state . url_for_document ( document , counter : counter ) if blacklight_config . view_config ( :show ) . route
148160
149- if blacklight_config . view_config ( :show ) . route
150- search_state . url_for_document ( document , counter : counter )
151- else
152- solr_document_path ( document , counter : counter )
153- end
161+ solr_document_path ( document , counter : counter )
154162 end
155163end
0 commit comments