Commit 8a3cc2f2 authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'es_fox_pagination' into 'master'

Fix pagination on search result page when ES search is enabled

Fixes https://gitlab.com/gitlab-org/gitlab-ee/issues/811

See merge request !592
parents 06a166a2 4feece80
...@@ -4,6 +4,7 @@ v 8.11.0 (unreleased) ...@@ -4,6 +4,7 @@ v 8.11.0 (unreleased)
v 8.10.2 (unreleased) v 8.10.2 (unreleased)
- Dicouple an ES index update from RepositoryUpdateMirrorWorker - Dicouple an ES index update from RepositoryUpdateMirrorWorker
- Fix pagination on search result page when ES search is enabled
v 8.10.1 v 8.10.1
- No EE-specific changes - No EE-specific changes
......
...@@ -21,7 +21,7 @@ module Gitlab ...@@ -21,7 +21,7 @@ module Gitlab
def objects(scope, page = nil) def objects(scope, page = nil)
case scope case scope
when 'notes' when 'notes'
notes.records.page(page).per(per_page) notes.page(page).per(per_page).records
when 'blobs' when 'blobs'
blobs.page(page).per(per_page) blobs.page(page).per(per_page)
when 'wiki_blobs' when 'wiki_blobs'
......
...@@ -16,13 +16,13 @@ module Gitlab ...@@ -16,13 +16,13 @@ module Gitlab
def objects(scope, page = nil) def objects(scope, page = nil)
case scope case scope
when 'projects' when 'projects'
projects.records.page(page).per(per_page) projects.page(page).per(per_page).records
when 'issues' when 'issues'
issues.records.page(page).per(per_page) issues.page(page).per(per_page).records
when 'merge_requests' when 'merge_requests'
merge_requests.records.page(page).per(per_page) merge_requests.page(page).per(per_page).records
when 'milestones' when 'milestones'
milestones.records.page(page).per(per_page) milestones.page(page).per(per_page).records
else else
Kaminari.paginate_array([]) Kaminari.paginate_array([])
end end
......
...@@ -9,9 +9,9 @@ module Gitlab ...@@ -9,9 +9,9 @@ module Gitlab
def objects(scope, page = nil) def objects(scope, page = nil)
case scope case scope
when 'snippet_titles' when 'snippet_titles'
snippet_titles.records.page(page).per(per_page) snippet_titles.page(page).per(per_page).records
when 'snippet_blobs' when 'snippet_blobs'
snippet_blobs.records.page(page).per(per_page) snippet_blobs.page(page).per(per_page).records
else else
super super
end end
......
require 'spec_helper'
feature 'Global elastic search', feature: true do
let(:user) { create(:user) }
let(:project) { create(:project, namespace: user.namespace) }
before do
stub_application_setting(elasticsearch_search: true, elasticsearch_indexing: true)
project.team << [user, :master]
login_with(user)
end
after do
stub_application_setting(elasticsearch_search: false, elasticsearch_indexing: false)
end
describe 'I search through the issues and I see pagination' do
before do
[::Project, Issue, MergeRequest, Milestone].each do |model|
model.__elasticsearch__.create_index!
end
create_list(:issue, 21, project: project, title: 'initial')
Issue.__elasticsearch__.refresh_index!
end
after do
[::Project, Issue, MergeRequest, Milestone].each do |model|
model.__elasticsearch__.delete_index!
end
end
it "has a pagination" do
visit dashboard_projects_path
fill_in "search", with: "initial"
click_button "Go"
select_filter("Issues")
expect(page).to have_selector('.gl-pagination .page', count: 2)
end
end
end
...@@ -31,6 +31,7 @@ RSpec.configure do |config| ...@@ -31,6 +31,7 @@ RSpec.configure do |config|
config.include Devise::TestHelpers, type: :controller config.include Devise::TestHelpers, type: :controller
config.include LoginHelpers, type: :feature config.include LoginHelpers, type: :feature
config.include LoginHelpers, type: :request config.include LoginHelpers, type: :request
config.include SearchHelpers, type: :feature
config.include StubConfiguration config.include StubConfiguration
config.include EmailHelpers config.include EmailHelpers
config.include TestEnv config.include TestEnv
......
module SearchHelpers
def select_filter(name)
find(:xpath, "//ul[contains(@class, 'search-filter')]//a[contains(.,'#{name}')]").click
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment