Module: ArHelpControl

Defined in:
app/controls/ar_help_control.rb

Overview

Controls for creating help files

Instance Method Summary collapse

Instance Method Details

#before_editObject

Will read data from help file



67
68
69
70
71
72
73
# File 'app/controls/ar_help_control.rb', line 67

def before_edit
  file_name = "#{session[:help_project]}/help/#{@record.form_name}.#{session[:help_lang]}"
  data = YAML.load_file(file_name)
  @record.index = data['index']
  @record.form  = data['form']
  flash[:warning] = "Use only in development!" unless Rails.env.development?
end

#before_saveObject

Will save data to help file



78
79
80
81
82
83
# File 'app/controls/ar_help_control.rb', line 78

def before_save
  rec = params[:record]
  file_name = "#{session[:help_project]}/help/#{@record.form_name}.#{@record.lang}"
  data = { 'index' => @record.index, 'form' => @record.form }
  File.write(file_name, data.to_yaml)
end

#data_filterObject

Will return query to report data



88
89
90
# File 'app/controls/ar_help_control.rb', line 88

def data_filter
  ArTemp.where(key: temp_key).order(:order)
end

#new_recordObject

Will populate fields with default values



59
60
61
62
# File 'app/controls/ar_help_control.rb', line 59

def new_record
  @record.project = session[:help_project]
  @record.lang = session[:help_lang]
end

#project_refreshObject

Will fill ar_temp with help documents found in a defined project directory.



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

def project_refresh
  ArTemp.clear(temp_key)

  if params[:record][:select_project].present?
    # far less complicated if saved to session
    session[:help_project] = params[:record][:select_project]
    session[:help_lang] = params[:record][:lang_1]
    help_dir_name = "#{session[:help_project]}/help/"
    # create help directory if not yet exists
    FileUtils.mkdir(help_dir_name) unless File.exist?(help_dir_name)
    Dir["#{help_dir_name}*"].each do |file_name|
      lang = File.extname(file_name).sub('.', '')
      next unless lang == session[:help_lang]

      ArTemp.new(key: temp_key,
                 project: session[:help_project],
                 form_name: File.basename(file_name, '.*'),
                 lang: lang,
                 updated_at: File.mtime(file_name)).save
    end
  end
  render json: { url: url_for(controller: :agile, table: :ar_temp, form_name: :agile_help) }
end