Module: Decidim::ResourceHelper
- Included in:
- ButtonCell, DownloadYourDataSerializers::DownloadYourDataConversationSerializer, DownloadYourDataSerializers::DownloadYourDataFollowSerializer, DownloadYourDataSerializers::DownloadYourDataIdentitySerializer, DownloadYourDataSerializers::DownloadYourDataNotificationSerializer, DownloadYourDataSerializers::DownloadYourDataParticipatorySpacePrivateUserSerializer, DownloadYourDataSerializers::DownloadYourDataReportSerializer, DownloadYourDataSerializers::DownloadYourDataUserGroupSerializer, DownloadYourDataSerializers::DownloadYourDataUserSerializer, EndorsementButtonsCell, Exporters::ParticipatorySpaceComponentsSerializer, ResourceVersionsHelper, ViewModel
- Defined in:
- app/helpers/decidim/resource_helper.rb
Overview
A Helper to render and link to resources.
Instance Method Summary collapse
-
#linked_classes_filter_values_for(klass) ⇒ Object
Uses the ‘linked_classes_for(klass)` helper method to find the linked classes, and adds a default value to it so that it can be used directly in a form.
-
#linked_classes_for(klass) ⇒ Object
Gets the classes linked to the given class for the ‘current_component`, and formats them in a nice way so that they can be used in a form.
-
#resource_locator(resource) ⇒ Object
Returns an instance of ResourceLocatorPresenter with the given resource.
Instance Method Details
#linked_classes_filter_values_for(klass) ⇒ Object
Uses the ‘linked_classes_for(klass)` helper method to find the linked classes, and adds a default value to it so that it can be used directly in a form.
Example:
<% if linked_classes_for(klass).any? %>
<%= form.collection_check_boxes :related_to, linked_classes_filter_values_for(klass), :first, :last %>
<% end %>
klass - The class that will have its linked resources formatted.
Returns an Array of Arrays of Strings.
40 41 42 |
# File 'app/helpers/decidim/resource_helper.rb', line 40 def linked_classes_filter_values_for(klass) [["", content_tag(:span, t("all", scope: "decidim.filters.linked_classes"))]] + linked_classes_for(klass) end |
#linked_classes_for(klass) ⇒ Object
Gets the classes linked to the given class for the ‘current_component`, and formats them in a nice way so that they can be used in a form. Resulting format looks like this, considering the given class is related to `Decidim::Meetings::Meeting`:
[["decidim/meetings/meeting", "Meetings"]]
This method is intended to be used as a check to render the filter or not. Use the ‘linked_classes_filter_values_for(klass)` method to get the form filter collection values.
klass - The class that will have its linked resources formatted.
Returns an Array of Arrays of Strings. Returns an empty Array if no links are found.
20 21 22 23 24 25 26 |
# File 'app/helpers/decidim/resource_helper.rb', line 20 def linked_classes_for(klass) return [] unless klass.respond_to?(:linked_classes_for) klass.linked_classes_for(current_component).map do |k| [k.underscore, content_tag(:span, t(k.demodulize.underscore, scope: "decidim.filters.linked_classes"))] end end |
#resource_locator(resource) ⇒ Object
Returns an instance of ResourceLocatorPresenter with the given resource
45 46 47 48 49 |
# File 'app/helpers/decidim/resource_helper.rb', line 45 def resource_locator(resource) return resource.resource_locator if resource.respond_to?(:resource_locator) ::Decidim::ResourceLocatorPresenter.new(resource) end |