Class: Decidim::ActivityCell
- Includes:
- Cell::ViewModel::Partial, ApplicationHelper, IconHelper, SanitizeHelper
- Defined in:
- app/cells/decidim/activity_cell.rb
Overview
This cell is used to render public activities performed by users.
Each model that we want to represent should inherit from this cell and tweak the necessary methods (usually ‘title` is enough).
Instance Method Summary collapse
- #created_at ⇒ Object
-
#description ⇒ Object
The description to show at the card.
- #element_id ⇒ Object
-
#renderable? ⇒ Boolean
Since activity logs could be linked to resource no longer available this method is added in order to skip rendering a cell if there’s not enough data.
-
#resource ⇒ Object
The resource linked to the activity.
-
#resource_link_path ⇒ Object
The link to the resource linked to the activity.
-
#resource_link_text ⇒ Object
The text to show as the link to the resource.
- #show ⇒ Object
-
#title ⇒ Object
The title to show at the card.
- #user ⇒ Object
Methods included from SanitizeHelper
#decidim_html_escape, #decidim_sanitize, #decidim_sanitize_newsletter, #decidim_url_escape, included
Methods included from ApplicationHelper
#cell, #edit_link, #extra_admin_link, #html_truncate, #present, #resolve_presenter_class, #step_cta_url
Methods included from AmendmentsHelper
#accept_and_reject_buttons_for, #action_button_card_for, #allowed_to_accept_and_reject?, #allowed_to_promote?, #amend_button_for, #amenders_list_for, #amendments_enabled?, #amendments_for, #amendments_form_field_for, #amendments_form_fields_label, #amendments_form_fields_value, #can_participate_in_private_space?, #can_react_to_emendation?, #emendation_actions_for, #emendation_announcement_for, #promote_button_for, #render_emendation_body, #user_group_select_field
Methods included from RichTextEditorHelper
Methods included from ContextualHelpHelper
Methods included from ScopesHelper
#has_visible_scopes?, #scope_name_for_picker, #scopes_picker_field, #scopes_picker_filter, #scopes_picker_tag
Methods included from TranslatableAttributes
Methods included from DecidimFormHelper
#areas_for_select, #base_error_messages, #decidim_form_for, #decidim_form_slug_url, #editor_field_tag, #form_field_has_error?, #form_required_explanation, #foundation_datepicker_locale_tag, #name_with_locale, #scopes_picker_field_tag, #tab_element_class_for, #translated_field_tag
Methods included from OmniauthHelper
#normalize_provider_name, #oauth_icon, #provider_name
Methods included from IconHelper
#component_icon, #manifest_icon, #resource_icon
Methods included from LayoutHelper
#_icon_classes, #extended_navigation_bar, #external_icon, #favicon, #icon, #organization_colors, #role
Methods inherited from ViewModel
Methods included from FilterParamsHelper
Methods included from ReplaceButtonsHelper
Methods included from ActionAuthorizationHelper
#action_authorized_button_to, #action_authorized_link_to, #logged_button_to, #logged_link_to
Methods included from ResourceHelper
#linked_classes_filter_values_for, #linked_classes_for, #linked_resources_for, #resource_locator, #resource_title
Instance Method Details
#created_at ⇒ Object
72 73 74 |
# File 'app/cells/decidim/activity_cell.rb', line 72 def created_at I18n.l(model.created_at, format: :short) end |
#description ⇒ Object
The description to show at the card.
The card will also be displayed OK if there’s no description.
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'app/cells/decidim/activity_cell.rb', line 49 def description resource_description = resource.try(:resource_description) || resource.try(:description) return if resource_description.blank? resource_description = if resource_description.is_a?(String) resource_description elsif resource_description.is_a?(Hash) translated_attribute(resource_description) end truncate((resource_description), length: 300) end |
#element_id ⇒ Object
87 88 89 |
# File 'app/cells/decidim/activity_cell.rb', line 87 def element_id "action-#{model.id}" end |
#renderable? ⇒ Boolean
Since activity logs could be linked to resource no longer available this method is added in order to skip rendering a cell if there’s not enough data.
23 24 25 |
# File 'app/cells/decidim/activity_cell.rb', line 23 def renderable? resource.present? && participatory_space.present? && published? end |
#resource ⇒ Object
The resource linked to the activity.
28 29 30 |
# File 'app/cells/decidim/activity_cell.rb', line 28 def resource model.resource_lazy end |
#resource_link_path ⇒ Object
The link to the resource linked to the activity.
63 64 65 |
# File 'app/cells/decidim/activity_cell.rb', line 63 def resource_link_path resource_locator(resource).path end |
#resource_link_text ⇒ Object
The text to show as the link to the resource.
68 69 70 |
# File 'app/cells/decidim/activity_cell.rb', line 68 def resource_link_text translated_attribute(resource.title) end |
#show ⇒ Object
14 15 16 17 18 |
# File 'app/cells/decidim/activity_cell.rb', line 14 def show return unless renderable? render end |
#title ⇒ Object
The title to show at the card.
The card will also be displayed OK if there’s no title.
35 36 37 38 39 40 41 42 43 44 |
# File 'app/cells/decidim/activity_cell.rb', line 35 def title resource_title = resource.try(:resource_title) || resource.try(:title) return if resource_title.blank? if resource_title.is_a?(String) resource_title elsif resource_title.is_a?(Hash) translated_attribute(resource_title) end end |
#user ⇒ Object
76 77 78 79 80 81 82 83 |
# File 'app/cells/decidim/activity_cell.rb', line 76 def user return resource. if resource.respond_to?(:normalized_author) return resource. if resource.respond_to?(:author) # As Proposals have Coauthorable concern instead of Authorable return resource.identities.first if resource.respond_to?(:identities) model.user_lazy if resource.respond_to?(:user) end |