Module: Decidim::TimeTracker::ApplicationHelper
- Includes:
- Decidim::TranslatableAttributes
- Included in:
- Decidim::TimeTracker::Admin::ActivitiesController, Decidim::TimeTracker::Admin::TasksController, MilestoneCell, MilestonesController
- Defined in:
- app/helpers/decidim/time_tracker/application_helper.rb
Overview
Custom helpers, scoped to the time_tracker engine.
Instance Method Summary collapse
- #activities_empty? ⇒ Boolean
- #activities_label ⇒ Object
- #assignation_date(assignation) ⇒ Object
- #assignation_status_label(status) ⇒ Object
- #assignations_label ⇒ Object
-
#clockify_seconds(total_seconds, padded: false) ⇒ Object
turns a number of seconds to a string 0h 0m 0s.
- #milestones_label ⇒ Object
- #milestones_path(params = {}) ⇒ Object
- #must_fill_in_data? ⇒ Boolean
- #tasks_label ⇒ Object
- #time_events_label ⇒ Object
- #user_joined_at(user) ⇒ Object
- #user_last_milestone(user) ⇒ Object
- #user_total_time_dedicated(user) ⇒ Object
Instance Method Details
#activities_empty? ⇒ Boolean
90 91 92 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 90 def activities_empty? time_tracker.activities.active.empty? end |
#activities_label ⇒ Object
18 19 20 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 18 def activities_label translated_attribute(component_settings.activities_label).presence || t("models.activity.name", scope: "decidim.time_tracker") end |
#assignation_date(assignation) ⇒ Object
66 67 68 69 70 71 72 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 66 def assignation_date(assignation) if assignation.invited_at.present? t("models.assignation.fields.invited_at", time: l(assignation.invited_at, format: :short), scope: "decidim.time_tracker") elsif assignation.requested_at.present? t("models.assignation.fields.requested_at", time: l(assignation.requested_at, format: :short), scope: "decidim.time_tracker") end end |
#assignation_status_label(status) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 54 def assignation_status_label(status) klass = case status when "accepted" then "success" when "pending" then "warning" when "rejected" then "danger" end content_tag :span, class: "#{klass} label" do t("models.assignation.fields.statuses.#{status}", scope: "decidim.time_tracker") end end |
#assignations_label ⇒ Object
22 23 24 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 22 def assignations_label translated_attribute(component_settings.assignations_label).presence || t("models.assignation.name", scope: "decidim.time_tracker") end |
#clockify_seconds(total_seconds, padded: false) ⇒ Object
turns a number of seconds to a string 0h 0m 0s
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 35 def clockify_seconds(total_seconds, padded: false) total_seconds = total_seconds.to_i clock = { hours: total_seconds / (60 * 60), minutes: (total_seconds / 60) % 60, seconds: total_seconds % 60 } content_tag :span, class: "time-tracker--clock" do safe_join( clock.map do |label, value| string_value = padded ? value.to_s.rjust(2, "0") : value content_tag(:span, t("decidim.time_tracker.clock.#{label}", n: string_value), class: ("text-muted" if value.zero?)) end ) end end |
#milestones_label ⇒ Object
30 31 32 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 30 def milestones_label translated_attribute(component_settings.milestones_label).presence || t("models.milestone.name", scope: "decidim.time_tracker") end |
#milestones_path(params = {}) ⇒ Object
10 11 12 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 10 def milestones_path(params = {}) Decidim::EngineRouter.main_proxy(current_component).milestones_path(params) end |
#must_fill_in_data? ⇒ Boolean
86 87 88 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 86 def must_fill_in_data? !current_assignee.tos_accepted?(time_tracker) && !activities_empty? end |
#tasks_label ⇒ Object
14 15 16 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 14 def tasks_label translated_attribute(component_settings.tasks_label).presence || t("models.task.name", scope: "decidim.time_tracker") end |
#time_events_label ⇒ Object
26 27 28 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 26 def time_events_label translated_attribute(component_settings.time_events_label).presence || t("models.time_entry.name", scope: "decidim.time_tracker") end |
#user_joined_at(user) ⇒ Object
78 79 80 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 78 def user_joined_at(user) Assignee.for(user).tos_accepted_at(time_tracker) end |
#user_last_milestone(user) ⇒ Object
82 83 84 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 82 def user_last_milestone(user) Milestone.where(user: user).order(created_at: :desc).first end |
#user_total_time_dedicated(user) ⇒ Object
74 75 76 |
# File 'app/helpers/decidim/time_tracker/application_helper.rb', line 74 def user_total_time_dedicated(user) Assignation.where(user: user).sum(&:time_dedicated) end |