Class: SearchServicePresenter
- Inherits:
-
Gitlab::View::Presenter::Delegated
- Object
- SimpleDelegator
- Gitlab::View::Presenter::Delegated
- SearchServicePresenter
- 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
- #advanced_search_enabled? ⇒ Boolean
- #search_objects ⇒ Object
- #show_results_status? ⇒ Boolean
- #show_sort_dropdown? ⇒ Boolean
- #without_count? ⇒ Boolean
Methods included from RendersProjectsList
#prepare_projects_for_rendering
Methods included from RendersMemberAccess
Methods included from RendersCommits
#limited_commits, #prepare_commits_for_rendering, #set_commits_for_rendering, #valid_ref?
Methods inherited from Gitlab::View::Presenter::Delegated
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
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
52 53 54 |
# File 'app/presenters/search_service_presenter.rb', line 52 def advanced_search_enabled? false end |
#search_objects ⇒ Object
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
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
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
48 49 50 |
# File 'app/presenters/search_service_presenter.rb', line 48 def without_count? search_objects.is_a?(Kaminari::PaginatableWithoutCount) end |