Module: ActiveAdmin::DynamicFields

Defined in:
lib/activeadmin/dynamic_fields/engine.rb,
lib/activeadmin/dynamic_fields/version.rb

Defined Under Namespace

Classes: Engine

Constant Summary collapse

VERSION =
'0.2.0'

Class Method Summary collapse

Class Method Details

.edit_boolean(field, url, value) ⇒ Object



9
10
11
# File 'lib/activeadmin/dynamic_fields/engine.rb', line 9

def self.edit_boolean( field, url, value )
  { 'data-field': field, 'data-field-type': 'boolean', 'data-field-value': value, 'data-content': "<span class=\"status_tag changed\">#{value ? 'no' : 'yes'}</span>", 'data-save-url': url, 'data-show-errors': '1' }
end

.edit_select(field, url) ⇒ Object



13
14
15
16
17
18
# File 'lib/activeadmin/dynamic_fields/engine.rb', line 13

def self.edit_select( field, url )
  { 'data-field': field, 'data-field-type': 'select', 'data-save-url': url, 'data-show-errors': '1' }
  # 'data-field': 'author_id', 'data-field-type': 'select', 'data-save-url': save_admin_article_path( row.id ), 'data-show-errors': '1' do
  #   ( [''] + Author.pluck( :name, :id ) ).map{ |opt| option opt[0], value: opt[1], selected: row.author_id == opt[1] }.join
  # end
end

.edit_string(field, url) ⇒ Object



20
21
22
# File 'lib/activeadmin/dynamic_fields/engine.rb', line 20

def self.edit_string( field, url )
  { contenteditable: true, 'data-field': field, 'data-field-type': 'string', 'data-save-url': url, 'data-show-errors': '1' }
end

.update(resource, params, permit_params = nil) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/activeadmin/dynamic_fields/engine.rb', line 24

def self.update( resource, params, permit_params = nil )
  if params[:data]
    if resource.update( permit_params ? params[:data].permit( permit_params ) : params[:data].permit! )
      { json: { status: 'ok' } }
    else
      { json: { status: 'error', message: resource.errors } }
    end
  else
    { json: { status: 'error', message: 'No data' }, status: 400 }
  end
end