diff --git a/ee/app/views/search/_form_elasticsearch.html.haml b/ee/app/views/search/_form_elasticsearch.html.haml index 7ceddf8d7f42b6693692873f5c4e7210585167c3..666c0ccabc8ab727f9640794295322b011dea625 100644 --- a/ee/app/views/search/_form_elasticsearch.html.haml +++ b/ee/app/views/search/_form_elasticsearch.html.haml @@ -1,3 +1,10 @@ - if @search_service_presenter.advanced_search_enabled? - .form-text.text-muted{ **local_assigns.fetch(:attrs, {}) } - = advanced_search_status_marker(@project) + .gl-mt-2.gl-font-base.gl-mb-0.gl-text-gray-600.gl-align-self-center + - if @scope == 'blobs' && search_service.use_zoekt? + - link_url = help_page_path('user/search/exact_code_search') + - link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: link_url } + - composited_link = s_('GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled') % { link_start: link_start, link_end: '</a>' } + = sanitize(composited_link).html_safe + + - else + = advanced_search_status_marker(@project) diff --git a/ee/spec/features/search/elastic/project_search_spec.rb b/ee/spec/features/search/elastic/project_search_spec.rb index 6f0e0bd131522bd85f788eb355eb46770236a83e..28062973dc52fb988bd2f0406840633fd26a6238 100644 --- a/ee/spec/features/search/elastic/project_search_spec.rb +++ b/ee/spec/features/search/elastic/project_search_spec.rb @@ -125,6 +125,22 @@ end end + describe 'when zoekt is not enabled' do + before do + sign_in(user) + visit project_path(project) + ensure_elasticsearch_index! + + submit_search('test') + select_search_scope('Code') + end + + it 'does not display exact code search is enabled' do + expect(page).to have_selector('[data-testid="es-status-marker"][data-enabled="true"]') + expect(page).not_to have_text('Exact code search (powered by Zoekt) is enabled') + end + end + describe 'renders error when zoekt search fails' do let(:query) { 'test' } let(:search_service) do diff --git a/ee/spec/features/search/zoekt/search_spec.rb b/ee/spec/features/search/zoekt/search_spec.rb index ee81ba62fef8c137bb15316a17f3ac12d3be5e2a..10b1187386949c455971a55e6db0c256a7faddfe 100644 --- a/ee/spec/features/search/zoekt/search_spec.rb +++ b/ee/spec/features/search/zoekt/search_spec.rb @@ -70,5 +70,12 @@ def choose_project(project) select_search_scope('Code') expect(page).not_to have_selector('.file-content .blob-content') end + + it 'displays that exact code search is enabled' do + submit_search('test') + select_search_scope('Code') + expect(page).to have_link('Exact code search (powered by Zoekt)', + href: help_page_path('user/search/exact_code_search')) + end end end diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 8f6b665289d60f4502159b6d96c549a5c76c5d94..699c4a95f0a0e551ed571cf990dc0e4b23c2db50 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -21748,6 +21748,9 @@ msgstr "" msgid "GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list." msgstr "" +msgid "GlobalSearch|%{link_start}Exact code search (powered by Zoekt)%{link_end} is enabled" +msgstr "" + msgid "GlobalSearch|Aggregations load error." msgstr ""