Class: SearchServicePresenter

Inherits:
Gitlab::View::Presenter::Delegated show all
Includes:
RendersCommits, RendersProjectsList
Defined in:
app/presenters/search_service_presenter.rb

Constant Summary collapse

SCOPE_PRELOAD_METHOD =
{
  projects: :with_web_entity_associations,
  issues: :with_web_entity_associations,
  merge_requests: :with_web_entity_associations,
  epics: :with_web_entity_associations,
  notes: :with_web_entity_associations,
  milestones: :with_web_entity_associations,
  commits: :with_web_entity_associations,
  blobs: :with_web_entity_associations
}.freeze
SORT_ENABLED_SCOPES =
%w[issues merge_requests epics].freeze

Instance Method Summary collapse

Methods included from RendersProjectsList

#prepare_projects_for_rendering

Methods included from RendersMemberAccess

#prepare_groups_for_rendering

Methods included from RendersCommits

#limited_commits, #prepare_commits_for_rendering, #set_commits_for_rendering, #valid_ref?

Methods inherited from Gitlab::View::Presenter::Delegated

#initialize

Methods included from Gitlab::Utils::DelegatorOverride

#delegator_override, #delegator_override_with, #delegator_target, validator, validators, verify!

Methods included from Gitlab::View::Presenter::Base

#__subject__, #can?, #declarative_policy_delegate, #is_a?, #path_with_line_numbers, #present, #url_builder, #web_path, #web_url

Methods included from Gitlab::Allowable

#can?

Methods included from Gitlab::Routing

includes_helpers, redirect_legacy_paths, url_helpers

Constructor Details

This class inherits a constructor from Gitlab::View::Presenter::Delegated

Instance Method Details

#advanced_search_enabled?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'app/presenters/search_service_presenter.rb', line 52

def advanced_search_enabled?
  false
end

#search_objectsObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/presenters/search_service_presenter.rb', line 23

def search_objects
  @search_objects ||= begin
    objects = search_service.search_objects(SCOPE_PRELOAD_METHOD[scope.to_sym])

    case scope
    when 'users'
      objects.respond_to?(:eager_load) ? objects.eager_load(:status) : objects # rubocop:disable CodeReuse/ActiveRecord
    when 'commits'
      prepare_commits_for_rendering(objects)
    when 'projects'
      prepare_projects_for_rendering(objects)
    else
      objects
    end
  end
end

#show_results_status?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'app/presenters/search_service_presenter.rb', line 44

def show_results_status?
  !without_count? || show_snippets? || show_sort_dropdown?
end

#show_sort_dropdown?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'app/presenters/search_service_presenter.rb', line 40

def show_sort_dropdown?
  SORT_ENABLED_SCOPES.include?(scope)
end

#without_count?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'app/presenters/search_service_presenter.rb', line 48

def without_count?
  search_objects.is_a?(Kaminari::PaginatableWithoutCount)
end