Module: ProblemsHelper

Defined in:
app/helpers/problems_helper.rb

Instance Method Summary collapse

Instance Method Details

#max_problem_severity(problems) ⇒ Object



6
7
8
9
10
# File 'app/helpers/problems_helper.rb', line 6

def max_problem_severity(problems)
  return nil if problems.empty?
  severities = problems.select(:category).distinct.map { |p| problem_severity(p) }
  severities.max_by { |p| Problem::SEVERITIES.find_index(p) }
end

#problem_icon(severity) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'app/helpers/problems_helper.rb', line 12

def problem_icon(severity)
  case severity
  when :info
    "info-circle-fill"
  when :warning
    "exclamation-triangle-fill"
  when :danger
    "x-octagon-fill"
  end
end

#problem_icon_tag(problems) ⇒ Object



23
24
25
26
27
# File 'app/helpers/problems_helper.rb', line 23

def problem_icon_tag(problems)
  severity = problems.is_a?(Problem) ? problem_severity(problems) : max_problem_severity(problems)
  ico = problem_icon(severity)
  (:span, Icon(icon: ico, label: t("problems.severities.#{severity}")), class: "text-#{severity} align-middle") if ico # rubocop:todo I18n/RailsI18n/DecorateStringFormattingUsingInterpolation
end

#problem_severity(problem) ⇒ Object



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

def problem_severity(problem)
  current_user&.problem_severity(problem.category) || :silent
end