Sha256: 0d088875e9e01cdd4dd15d772ccbb2ce7f8a52c722ce3b0e9fbce959c7f7f4ff

Contents?: true

Size: 1.3 KB

Versions: 7

Compression:

Stored size: 1.3 KB

Contents

# frozen_string_literal: true

module Decidim
  # Helper that provides methods to render order selector and links
  module OrdersHelper
    # Public: It renders the order selector for the provided orders
    # (Note) This method requires the javascript 'decidim/orders' to be
    # present in the page.
    #
    # orders - An array of order criterias
    # options - An optional hash of options
    #         * i18n_scope - The scope of the i18n translations
    def order_selector(orders, options = {})
      render partial: "decidim/shared/orders", locals: {
        orders:,
        i18n_scope: options[:i18n_scope]
      }
    end

    # Public: Returns a resource url merging current params with order
    #
    # order - The name of the order criteria. i.e. 'random'
    # options - An optional hash of options
    #         * i18n_scope - The scope of the i18n translations
    def order_link(order, options = {})
      i18n_scope = options.delete(:i18n_scope)

      link_to(
        t("#{i18n_scope}.#{order}"),
        url_for(params.to_unsafe_h.except(
          "component_id",
          "participatory_process_slug",
          "assembly_slug",
          "initiative_slug"
        ).merge(page: nil, order:)),
        {
          data: { order: },
          remote: true
        }.merge(options)
      )
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
decidim-core-0.28.4 app/helpers/decidim/orders_helper.rb
decidim-core-0.28.3 app/helpers/decidim/orders_helper.rb
decidim-core-0.28.2 app/helpers/decidim/orders_helper.rb
decidim-core-0.28.1 app/helpers/decidim/orders_helper.rb
decidim-core-0.28.0 app/helpers/decidim/orders_helper.rb
decidim-core-0.28.0.rc5 app/helpers/decidim/orders_helper.rb
decidim-core-0.28.0.rc4 app/helpers/decidim/orders_helper.rb