Module: ArfReportsHelper

Defined in:
app/helpers/arf_reports_helper.rb

Instance Method Summary collapse

Instance Method Details

#arf_report_breadcrumbsObject



16
17
18
19
20
21
22
23
24
# File 'app/helpers/arf_reports_helper.rb', line 16

def arf_report_breadcrumbs
  breadcrumbs(:resource_url => api_compliance_arf_reports_path,
              :switchable => false,
              :items => [
                { :caption => _('Compliance Reports'),
                  :url => url_for(arf_reports_path) },
                { :caption => @arf_report.host.to_s }
              ])
end

#host_search_by_rule_result_buttons(log) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
# File 'app/helpers/arf_reports_helper.rb', line 65

def host_search_by_rule_result_buttons(log)
  buttons = [
    display_link_if_authorized(_('Hosts failing this rule'), hash_for_hosts_path(:search => "fails_xccdf_rule = #{log.source}")),
    display_link_if_authorized(_('Hosts passing this rule'), hash_for_hosts_path(:search => "passes_xccdf_rule = #{log.source}")),
    display_link_if_authorized(_('Hosts othering this rule'), hash_for_hosts_path(:search => "others_xccdf_rule = #{log.source}")),
  ]
  if log.result == 'fail' && log.message.fixes.present?
    buttons << link_to_function_if_authorized(_('Remediation'), "showRemediationWizard(#{log.id})", hash_for_show_log_arf_report_path(id: log.report.id))
  end
  action_buttons(buttons)
end

#multiple_actions_arf_reportObject



38
39
40
41
42
# File 'app/helpers/arf_reports_helper.rb', line 38

def multiple_actions_arf_report
  actions = [
    [_('Delete reports'), delete_multiple_arf_reports_path]
  ]
end

#multiple_actions_arf_report_selectObject



44
45
46
47
48
49
50
# File 'app/helpers/arf_reports_helper.rb', line 44

def multiple_actions_arf_report_select
  select_action_button(_("Select Action"), { :id => 'submit_multiple' },
                       multiple_actions_arf_report.map do |action|
                         link_to_function(action[0], "buildArfModal(this, '#{action[1]}')",
                                          :'data-dialog-title' => _("%s - The following compliance reports are about to be changed") % action[0])
                       end.flatten)
end


52
53
54
55
# File 'app/helpers/arf_reports_helper.rb', line 52

def openscap_proxy_link(arf_report)
  return _("No proxy found!") unless arf_report.openscap_proxy
  display_link_if_authorized(arf_report.openscap_proxy.name, hash_for_smart_proxy_path(:id => arf_report.openscap_proxy_id))
end

#report_arf_column(event, style = "") ⇒ Object



2
3
4
5
# File 'app/helpers/arf_reports_helper.rb', line 2

def report_arf_column(event, style = "")
  style = "label-default" if event == 0
  (:span, event, :class => 'label ' + style)
end

#reported_info(arf_report) ⇒ Object



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

def reported_info(arf_report)
  msg = _("Reported at %s") % date_time_absolute(arf_report.reported_at)
  msg << _(" for policy %s") % display_link_if_authorized(arf_report.policy.name, hash_for_edit_policy_path(:id => arf_report.policy.id)) if arf_report.policy
  return msg.html_safe unless arf_report.openscap_proxy
  msg += _(" through %s") % openscap_proxy_link(arf_report)
  msg.html_safe
end

#result_tag(level) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'app/helpers/arf_reports_helper.rb', line 26

def result_tag(level)
  tag = case level
        when 'pass'
          "success"
        when 'fail'
          "danger"
        else
          "warning"
        end
  "class='label label-#{tag} result-filter-tag'".html_safe
end

#show_logsObject



7
8
9
10
11
12
13
14
# File 'app/helpers/arf_reports_helper.rb', line 7

def show_logs
  return if @arf_report.logs.empty?
  form_tag arf_report_path(@arf_report), :id => 'level_filter', :method => :get, :class => "form form-horizontal" do
    (:span, _("Show log messages:") + ' ') +
    select(nil, 'level', [[_('All messages'), 'info'], [_('Failed and Othered'), 'warning'], [_('Failed only'), 'error']],
           {}, { :class => "col-md-1 form-control", :onchange => "filter_by_level(this);" })
  end
end

#supported_remediation_snippetsObject



77
78
79
80
81
82
# File 'app/helpers/arf_reports_helper.rb', line 77

def supported_remediation_snippets
  snippets = []
  snippets << 'urn:xccdf:fix:script:sh' if ForemanOpenscap.with_remote_execution?
  snippets << 'urn:xccdf:fix:script:ansible' if ForemanOpenscap.with_ansible?
  snippets
end