Class: Decidim::EndorsementButtonsCell
- Includes:
- CellsHelper, EndorsableHelper, ResourceHelper
- Defined in:
- app/cells/decidim/endorsement_buttons_cell.rb
Overview
This cell renders the endorsement button and the endorsements count. It only supports one row of buttons per page due to current tag ids used by javascript.
Constant Summary
Constants included from AmendmentsHelper
Instance Method Summary collapse
- #button_classes ⇒ Object
- #button_content ⇒ Object
-
#endorsement_path ⇒ Object
produce the path to an endorsement from the engine routes as the cell does not have access to routes.
-
#endorsements_path ⇒ Object
produce the path to endorsements from the engine routes as the cell does not have access to routes.
-
#resource ⇒ Object
The resource being un/endorsed is the Cell’s model.
- #reveal_identities_url ⇒ Object
-
#show ⇒ Object
Renders the “Endorse” button.
Methods included from ResourceHelper
#linked_classes_filter_values_for, #linked_classes_for, #resource_locator
Methods included from EndorsableHelper
#current_user_can_endorse?, #endorsement_buttons_cell, #endorsements_enabled?, #endorsers_list_cell, #fully_endorsed?, #path_to_create_endorsement, #path_to_destroy_endorsement, #render_endorsement_identity, #show_endorsements_card?
Methods included from CellsHelper
#current_component, #flaggable?, #from_context, #index_action?, #show_action?, #user_flaggable?, #withdrawable?
Methods inherited from ViewModel
#call, #current_user, #view_context
Methods included from IconHelper
#component_icon, #manifest_icon, #resource_icon, #resource_type_icon, #resource_type_icon_key, #text_with_resource_icon
Methods included from LayoutHelper
#_icon_classes, #apple_favicon, #application_path, #current_url, #current_user_unread_data, #extended_navigation_bar, #external_icon, #favicon, #icon, #legacy_favicon, #role
Methods included from TooltipHelper
Methods included from ModalHelper
Methods included from OrganizationHelper
#current_organization_name, #organization_colors, #organization_description_label, #organization_name
Methods included from TranslatableAttributes
Methods included from ApplicationHelper
#add_body_classes, #cell, #edit_link, #extra_admin_link, #html_truncate, #present, #prevent_timeout_seconds, #resolve_presenter_class, #text_initials
Methods included from CacheHelper
Methods included from AmendmentsHelper
#accept_and_reject_buttons_for, #action_button_card_for, #allowed_to_accept_and_reject?, #allowed_to_promote?, #amend_button_for, #amendments_enabled?, #amendments_form_field_for, #amendments_form_fields_label, #amendments_form_fields_value, #can_participate_in_private_space?, #can_react_to_emendation?, #current_step, #emendation_actions_for, #emendation_announcement_for, #promote_button_for, #render_emendation_body, #total_steps, #wizard_aside_back_url, #wizard_header_title
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_select_field, #scopes_select_tag
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, #name_with_locale, #ordered_scopes_descendants, #ordered_scopes_descendants_for_select, #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 SanitizeHelper
#decidim_escape_translated, #decidim_html_escape, #decidim_sanitize, #decidim_sanitize_admin, #decidim_sanitize_editor, #decidim_sanitize_editor_admin, #decidim_sanitize_newsletter, #decidim_sanitize_translated, #decidim_url_escape, included
Methods included from MarkupHelper
Methods included from ReplaceButtonsHelper
Methods included from ActionAuthorizationHelper
#action_authorized_button_to, #action_authorized_link_to, #logged_button_to, #logged_link_to
Instance Method Details
#button_classes ⇒ Object
30 31 32 |
# File 'app/cells/decidim/endorsement_buttons_cell.rb', line 30 def "button button__sm button__transparent-secondary" end |
#button_content ⇒ Object
53 54 55 |
# File 'app/cells/decidim/endorsement_buttons_cell.rb', line 53 def render end |
#endorsement_path ⇒ Object
produce the path to an endorsement from the engine routes as the cell does not have access to routes
49 50 51 |
# File 'app/cells/decidim/endorsement_buttons_cell.rb', line 49 def endorsement_path(*) decidim.endorsement_path(*) end |
#endorsements_path ⇒ Object
produce the path to endorsements from the engine routes as the cell does not have access to routes
44 45 46 |
# File 'app/cells/decidim/endorsement_buttons_cell.rb', line 44 def endorsements_path(*) decidim.endorsements_path(*) end |
#resource ⇒ Object
The resource being un/endorsed is the Cell’s model.
35 36 37 |
# File 'app/cells/decidim/endorsement_buttons_cell.rb', line 35 def resource model end |
#reveal_identities_url ⇒ Object
39 40 41 |
# File 'app/cells/decidim/endorsement_buttons_cell.rb', line 39 def reveal_identities_url decidim.identities_endorsement_path(resource.to_gid.to_param) end |
#show ⇒ Object
Renders the “Endorse” button. Contains all the logic about how the button should be rendered and which actions the button must trigger.
It takes into account:
-
if endorsements are enabled
-
if users are logged in
-
if users can endorse with many identities (of their user_groups)
-
if users require verification
20 21 22 23 24 25 26 27 28 |
# File 'app/cells/decidim/endorsement_buttons_cell.rb', line 20 def show return render :disabled_endorsements if endorsements_blocked? return render unless current_user return render :disabled_endorsements if user_can_not_participate? return render :verification_modal unless endorse_allowed? return render :select_identity_button if user_has_verified_groups? render end |