Class: QuickSearch::ActivityPresenter
- Inherits:
-
PinPresenter
- Object
- PinPresenter
- QuickSearch::ActivityPresenter
- Defined in:
- app/presenters/quick_search/activity_presenter.rb
Instance Method Summary collapse
-
#activity_destination_path ⇒ Object
Destination for "open this activity" links (pinned offcanvas, search results, etc.).
- #presenting_context?(context_type, context_id) ⇒ Boolean
- #set_attributes ⇒ Object
Instance Method Details
#activity_destination_path ⇒ Object
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
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_attributes ⇒ Object
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 |