Sha256: e81a1497569ba6cf8595bba4506d3627e834c8e1f39bb69161e666adb3f40277

Contents?: true

Size: 1.32 KB

Versions: 44

Compression:

Stored size: 1.32 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
    include Decidim::TranslatableAttributes

    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

44 entries across 44 versions & 1 rubygems

Version Path
decidim-core-0.28.4 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.27.9 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.28.3 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.27.8 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.28.2 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.27.7 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.28.1 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.27.6 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.26.10 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.26.9 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.28.0 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.27.5 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.28.0.rc5 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.28.0.rc4 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.26.8 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.27.4 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.27.3 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.26.7 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.26.5 app/cells/decidim/translation_bar_cell.rb
decidim-core-0.27.2 app/cells/decidim/translation_bar_cell.rb