Class: QuickSearch::ActivityPresenter

Inherits:
PinPresenter
  • Object
show all
Defined in:
app/presenters/quick_search/activity_presenter.rb

Instance Method Summary collapse

Instance Method Details

#activity_destination_pathObject

Destination for "open this activity" links (pinned offcanvas, search results,
etc.). Mirrors what ActivitiesController#show would redirect to, so the
client doesn't pay for a 302 hop on every click. Falls back to activity_path
if the parent isn't routable, letting the controller's redirect handle it.



15
16
17
18
19
20
21
22
# File 'app/presenters/quick_search/activity_presenter.rb', line 15

def activity_destination_path
  parent = result.resource || result.party
  return activity_path(result) unless parent

  polymorphic_path(parent, tab: 'activities', selected_activity: result.id)
rescue StandardError
  activity_path(result)
end

#presenting_context?(context_type, context_id) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
28
29
30
31
32
33
34
# File 'app/presenters/quick_search/activity_presenter.rb', line 24

def presenting_context?(context_type, context_id)
  return false unless context_type.present? and context_id.present?
  match = (result.resource_type == context_type.to_s and result.resource_id == context_id.to_i) 
  if result.resource.resource_id
    match ||= (result.resource.resource_type == context_type.to_s and result.resource.resource_id == context_id.to_i)
  end
  if result.resource.party_id and (context_type.constantize.find(context_id.to_i) rescue nil)
    match ||= (result.resource.party_id == context_id.to_i)
  end
  match
end

#set_attributesObject



3
4
5
6
7
8
9
# File 'app/presenters/quick_search/activity_presenter.rb', line 3

def set_attributes
  @title = [result.display_type, result.party&.full_name, result.resource&.to_s].compact_blank.join(" \u2022 ")
  due_date = result.target_datetime&.to_date ? "Due #{result.target_datetime.to_date}" : nil
  @sub_header = [result.party&.timezone_name, result.party&.state_code, due_date].compact_blank.join(" \u2022 ")
  #@sub_header ||= result&.resource.to_s
  @link = activity_destination_path
end