Sha256: 68fda7f54a357273458293f4c3eb4858f24575d6366f93da7e3079383d32984e

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

module ActiveAdminAddons
  class BoolBuilder < CustomBuilder
    DEFAULT_BOOLEAN_TRUE = '&#x2714;'
    DEFAULT_BOOLEAN_FALSE = '&#x2717;'

    def render
      if data
        i18n_lookup('true_value', DEFAULT_BOOLEAN_TRUE)
      else
        i18n_lookup('false_value', DEFAULT_BOOLEAN_FALSE)
      end
    end

    private

    def i18n_lookup(key, last_default)
      model_name = model.class.model_name.i18n_key

      scope = "activeadmin.addons.boolean"
      value = I18n.t("models.#{model_name}.#{attribute}.#{key}", default: '', scope: scope)
      value = I18n.t("models.#{model_name}.#{key}", default: '', scope: scope) if value.empty?
      value = I18n.t("default.#{key}", default: last_default, scope: scope) if value.empty?

      value.html_safe
    end
  end

  module BoolValues
    module ::ActiveAdmin
      module Views
        class TableFor
          def bool_column(*args, &block)
            column(*args) { |model| BoolBuilder.render(self, model, *args, &block) }
          end
        end
        class AttributesTable
          def bool_row(*args, &block)
            row(*args) { |model| BoolBuilder.render(self, model, *args, &block) }
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
activeadmin_addons-0.7.0 lib/activeadmin_addons/addons/bool_values.rb