Module: DcSetupControl

Defined in:
app/controls/dc_setup_control.rb

Overview

Controls for DcSetup edit form.

Instance Method Summary collapse

Instance Method Details

#dc_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
# File 'app/controls/dc_setup_control.rb', line 32

def dc_update_form
  return unless params[:id]

  record = if BSON::ObjectId.legal?(params[:id])
             DcSetup.find(params[:id])
           else
             DcSetup.find_by(name: params[:id])
           end

  unless dc_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