Class: Crm::EmployeeGoalPresenter
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
63
64
65
66
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 63
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
44
45
46
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 44
def department
r.employee_review&.employee_record.department
end
|
#display_name ⇒ Object
68
69
70
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 68
def display_name
fa_icon('info-circle', text: r.name, title: r.description)
end
|
#due_date ⇒ Object
34
35
36
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 34
def due_date
h.render_date(r.due_date)
end
|
#edit_link ⇒ Object
4
5
6
7
8
9
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 4
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
48
49
50
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 48
def employee
r.employee_review&.employee_record.party
end
|
#employee_goal_link ⇒ Object
52
53
54
55
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 52
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
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 11
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
38
39
40
41
42
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 38
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
57
58
59
60
61
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 57
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
26
27
28
29
30
31
32
|
# File 'app/presenters/crm/employee_goal_presenter.rb', line 26
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
|