Module: ArSetupControl

Defined in:
app/controls/ar_setup_control.rb

Overview

Controls for ar_setup edit form.

Instance Method Summary collapse

Instance Method Details

#update_formObject

Update edit form. Admin sees everything while user sees only setup fields.



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'app/controls/ar_setup_control.rb', line 32

def update_form
  if params[:application_name]
    if params[:application_name] == '*'
      save_filter_value(nil, 'ar_setup', :filter)
    else
      filter = { field: 'name', operation: 'eq', value: params[:application_name], table: 'ar_setup', no_off: true }
      save_filter_value(filter, 'ar_setup', :filter)
    end
  end

  return unless params[:id]

  record = if params[:id].to_i.to_s == params[:id]
             ArSetup.find(params[:id])
           else
             ArSetup.find_by(name: params[:id])
           end

  unless agile_user_has_role?('admin')
    @form['form'].delete('tabs')
    @form['readonly'] = true unless record.editors.include?(session[:user_id])
  end

  form = YAML.load(record.form) #rescue nil
  if form.present?
    @form['form']['tabs'] ||= {}
    @form['form']['tabs'].merge!(form)
  end
end