Sha256: 23813c2341009696d9c58437cab230c745fc8b9c57e500b2e74a485536d08a94

Contents?: true

Size: 1.28 KB

Versions: 6

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

module Decidim
  # This cell is used to render a button to toggle machine translations. It will
  # only render if the translations are enabled.
  class TranslationBarCell < Decidim::ViewModel
    def show
      return unless renderable?

      render
    end

    def renderable?
      Decidim.config.enable_machine_translations &&
        model.enable_machine_translations
    end

    def link
      original_url = request.original_url
      parsed_url = URI.parse(original_url)
      query = parsed_url.query
      new_query_params = "toggle_translations=true"

      new_query = if RequestStore.store[:toggle_machine_translations]
                    query.gsub("toggle_translations=true", "")
                  elsif query.nil?
                    new_query_params
                  else
                    "#{query}&#{new_query_params}"
                  end

      parsed_url.query = new_query
      url = parsed_url.to_s

      link_to button_text, url, class: "button small hollow"
    end

    def button_text
      if must_render_translation?(model)
        t("decidim.translation_bar.show_original")
      else
        t("decidim.translation_bar.show_translated")
      end
    end

    def help_text
      t("decidim.translation_bar.help_text")
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
decidim-core-0.29.1 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.29.0 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.29.0.rc4 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.29.0.rc3 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.29.0.rc2 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.29.0.rc1 app/cells/decidim/translation_bar_cell.rb