Class: Crm::EmployeeGoalPresenter
Overview
Presenter: employee goal presenter.
Instance Attribute Summary
#current_account, #options, #url_helper
Instance Method Summary
collapse
#initialize
#can?, #capture, #concat, #content_tag, #fa_icon, #h, #initialize, #link_to, #number_to_currency, #present, presents, #r, #safe_present, #simple_format, #u
Instance Method Details
#delete_link ⇒ Object
69
70
71
72
73
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 69
def delete_link
return unless can?(:destroy, r)
link_to(fa_icon('trash'), r, data: { turbo_method: :delete, turbo_confirm: "Are you sure want to delete this review?" })
end
|
#department ⇒ Object
48
49
50
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 48
def department
r.employee_review&.employee_record&.department
end
|
#display_name ⇒ Object
75
76
77
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 75
def display_name
fa_icon('info-circle', text: r.name, title: r.description)
end
|
#due_date ⇒ Object
37
38
39
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 37
def due_date
h.render_date(r.due_date)
end
|
#edit_link ⇒ Object
6
7
8
9
10
11
12
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 6
def edit_link
return unless can?(:update, r)
link_to(fa_icon('pen-square', text: 'Edit/Review'),
h.edit_employee_goal_path(r),
class: "btn btn-#{r.defined? ? 'info' : 'default'}")
end
|
#employee ⇒ Object
52
53
54
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 52
def employee
r.employee_review&.employee_record&.party
end
|
#employee_goal_link ⇒ Object
56
57
58
59
60
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 56
def employee_goal_link
return r.name unless h.can?(:read, r)
link_to r.name, h.employee_goal_path(r)
end
|
#employee_goal_state_label(options = {}) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 14
def employee_goal_state_label(options = {})
case r.state.to_sym
when :reached
css_class = 'bg-success'
when :missed
css_class = 'bg-danger'
when :cancelled
css_class = 'badge-default'
end
css_class ||= 'bg-info'
options[:style] ||= 'font-size: 1em'
content_tag(:span, r.human_state_name.titleize, class: "badge #{css_class}", **options)
end
|
#employee_link ⇒ Object
41
42
43
44
45
46
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 41
def employee_link
return unless employee
return employee.full_name unless h.can?(:read, employee)
link_to employee.full_name, h.employee_path(employee)
end
|
#employee_review_link ⇒ Object
62
63
64
65
66
67
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 62
def employee_review_link
return unless r.employee_review
return unless h.can?(:read, r.employee_review)
link_to r.employee_review.review_name, h.employee_review_path(r.employee_review)
end
|
#reward_info ⇒ Object
29
30
31
32
33
34
35
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 29
def reward_info
capture do
concat number_to_currency(r.earned_reward || 0.0)
concat " / "
concat number_to_currency(r.potential_reward || 0.0)
end
end
|