module AdminIt::FieldsHolder

Public Instance Methods

field(name) click to toggle source
# File lib/admin_it/field/field.rb, line 313
def field(name)
  @fields[name.ensure_symbol]
end
fields(scope: :visible) click to toggle source
# File lib/admin_it/field/field.rb, line 292
def fields(scope: :visible)
  values = @fields.values
  if scope.is_a?(Hash)
    if scope.key?(:editor)
      return values.select { |f| f.editor == scope[:editor] }
    end
  end
  case scope
  when nil, :all then values
  when :visible then values.select { |f| f.visible? }
  when :hidden then values.select { |f| !f.visible? }
  when :readable then values.select { |f| f.readable? }
  when :writable then values.select { |f| f.writable? }
  when :sortable then values.select { |f| f.sortable? }
  when :with_labels then values.select { |f| f.show_label? }
  when :without_labels then values.select { |f| !f.show_label? }
  when *Field::TYPES then values.select { |f| f.type == scope }
  else values
  end
end
hide_fields(*names) click to toggle source
# File lib/admin_it/field/field.rb, line 279
def hide_fields(*names)
  hash = dsl_get(:fields, {})
  names = names.ensure_array(:flatten, :ensure_symbol, :compact, :uniq)
  names.each { |name| hash[name].hide if hash.key?(name) }
end
show_fields(*names) click to toggle source
# File lib/admin_it/field/field.rb, line 285
def show_fields(*names)
  hash = dsl_get(:fields, {})
  names = names.ensure_array(:flatten, :ensure_symbol, :compact, :uniq)
  names.each { |name| hash[name].show if hash.key?(name) }
end