Module: CmAdmin::ApplicationHelper

Defined in:
app/helpers/cm_admin/application_helper.rb

Instance Method Summary collapse

Instance Method Details

#action(action_name) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'app/helpers/cm_admin/application_helper.rb', line 14

def action(action_name)
  case action_name.to_sym
  when :update
    return :edit
  when :create
    return :new
  else
    return action_name.to_sym
  end
end

#current_webpacker_instanceObject



4
5
6
# File 'app/helpers/cm_admin/application_helper.rb', line 4

def current_webpacker_instance
  CmAdmin.webpacker
end

#error_headerObject



35
36
37
38
39
40
# File 'app/helpers/cm_admin/application_helper.rb', line 35

def error_header
   :div, class: 'info-split' do
    concat (:div, "Row number", class: 'info-split__lhs')
    concat (:div, "Error")
  end
end

#error_items(invalid_rows) ⇒ Object



42
43
44
45
46
47
48
# File 'app/helpers/cm_admin/application_helper.rb', line 42

def error_items(invalid_rows)
   :div do
    invalid_rows.each do |row_item|
      concat format_error_item(row_item)
    end
  end
end

#format_error(errors) ⇒ Object



57
58
59
60
61
62
63
64
# File 'app/helpers/cm_admin/application_helper.rb', line 57

def format_error(errors)
   :div do
    errors.each do |error|
      message = error[1].instance_of?(Array) ? error[1].join(', ') : error[1]
      concat (:div, error[0].titleize + '-' + message)
    end
  end
end

#format_error_item(row_item) ⇒ Object



50
51
52
53
54
55
# File 'app/helpers/cm_admin/application_helper.rb', line 50

def format_error_item(row_item)
   :div, class: 'info-split' do
    concat (:div, row_item[0], class: 'info-split__lhs')
    concat format_error(row_item[2])
  end
end

#formatted_error_message(model_name, field_name) ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'app/helpers/cm_admin/application_helper.rb', line 25

def formatted_error_message(model_name, field_name)
  invalid_rows = model_name.send(field_name)
  if invalid_rows.present?
    (:div) do
      concat error_header
      concat error_items(invalid_rows)
    end
  end
end

#has_valid_policy(model_name, action_name) ⇒ Object

Allow if policy is not defined.



9
10
11
12
# File 'app/helpers/cm_admin/application_helper.rb', line 9

def has_valid_policy(model_name, action_name)
  return true unless policy([:cm_admin, model_name.classify.constantize]).methods.include?(:"#{action_name}?")
  policy([:cm_admin, model_name.classify.constantize]).send(:"#{action_name}?")
end

#is_show_action_available(model) ⇒ Object



66
67
68
69
70
# File 'app/helpers/cm_admin/application_helper.rb', line 66

def is_show_action_available(model)
  model &&
  model.available_actions.map(&:name).include?('show') &&
  has_valid_policy(model.name, 'show')
end