Class: Decidim::TabPanelsCell
- Includes:
- IconHelper
- Defined in:
- decidim-core/app/cells/decidim/tab_panels_cell.rb
Overview
This cell renders tabs and panels based on an items array wich contains hashes with items required to render them. Each item represent a panel and a tab and has the following keys:
-
enabled: Whether the tab has to be displayed
-
id: Suffix used to generate the id of each tab and panel
-
text: Text of the panel
-
icon: Icon key of the panel
-
method: The method to render the panel content (for example, :cell or
:render)
-
args: The arguments to be passed to the method to render the panel
content
The ‘model` is expected to be a resource with HasAttachments concern
Constant Summary
Constants included from IconHelper
IconHelper::DEFAULT_RESOURCE_TYPE_ICONS
Instance Method Summary collapse
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_user_unread_data, #extended_navigation_bar, #external_icon, #favicon, #icon, #legacy_favicon, #organization_colors, #role
Methods included from TooltipHelper
Methods included from ModalHelper
Methods inherited from ViewModel
#call, #current_user, #view_context
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
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 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, #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 ResourceHelper
#linked_classes_filter_values_for, #linked_classes_for, #resource_locator, #resource_title
Instance Method Details
#items ⇒ Object
28 29 30 |
# File 'decidim-core/app/cells/decidim/tab_panels_cell.rb', line 28 def items @items ||= model.select { |item| item[:enabled] } end |
#panels ⇒ Object
36 37 38 |
# File 'decidim-core/app/cells/decidim/tab_panels_cell.rb', line 36 def panels @panels ||= items.map { |item| item.slice(:id, :method, :args) } end |
#show ⇒ Object
22 23 24 25 26 |
# File 'decidim-core/app/cells/decidim/tab_panels_cell.rb', line 22 def show return if model.blank? render :show end |
#tabs ⇒ Object
32 33 34 |
# File 'decidim-core/app/cells/decidim/tab_panels_cell.rb', line 32 def tabs @tabs ||= items.map { |item| item.slice(:id, :text, :icon) } end |