Module: DcHelpControl

Defined in:
app/controls/dc_help_control.rb

Overview

Controls for creating help files

Instance Method Summary collapse

Instance Method Details

#data_filterObject

Will return query to report data



87
88
89
# File 'app/controls/dc_help_control.rb', line 87

def data_filter
  DcTemp.where(key: temp_key).order_by(order: 1)
end

#dc_before_editObject

Will read data from help file



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

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

#dc_before_saveObject

Will save data to help file



77
78
79
80
81
82
# File 'app/controls/dc_help_control.rb', line 77

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

#dc_new_recordObject

Will populate fields with default values



58
59
60
61
# File 'app/controls/dc_help_control.rb', line 58

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

#project_refreshObject

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

def project_refresh
  DcTemp.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]

      DcTemp.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: :cmsedit, table: :dc_temp, form_name: :dc_help_1) }
end