We're renaming it to ActiveResource in order to better differentiate it from the DefaultResource component.
38 lines
1.3 KiB
Ruby
38 lines
1.3 KiB
Ruby
class Dashboard::ActiveResourceComponent < ApplicationComponent
|
|
attr_reader :resource, :proposal, :new_actions_since_last_login
|
|
use_helpers :is_new_action_since_last_login?
|
|
|
|
def initialize(resource, proposal, new_actions_since_last_login)
|
|
@resource = resource
|
|
@proposal = proposal
|
|
@new_actions_since_last_login = new_actions_since_last_login
|
|
end
|
|
|
|
def resource_card_class
|
|
return "alert" unless resource.active_for?(proposal)
|
|
return "success" if resource.executed_for?(proposal)
|
|
|
|
"primary"
|
|
end
|
|
|
|
def resource_tooltip
|
|
return t("dashboard.resource.resource_locked") unless resource.active_for?(proposal)
|
|
return t("dashboard.resource.view_resource") if resource.executed_for?(proposal)
|
|
return t("dashboard.resource.resource_requested") if resource.requested_for?(proposal)
|
|
|
|
t("dashboard.resource.request_resource")
|
|
end
|
|
|
|
def resource_availability_label
|
|
label = []
|
|
|
|
label << t("dashboard.resource.required_days",
|
|
days: resource.day_offset) if resource.day_offset > 0
|
|
label << t("dashboard.resource.required_supports",
|
|
supports: number_with_delimiter(resource.required_supports,
|
|
delimiter: ".")) if resource.required_supports > 0
|
|
|
|
safe_join label, h(" #{t("dashboard.resource.and")})") + tag(:br)
|
|
end
|
|
end
|