Skip to content

Commit d6e3a1b

Browse files
author
travis
committed
Extracted redundancy into helper
Created patch that adds method to Issues Helper to clean up views.
1 parent 5ab37c0 commit d6e3a1b

File tree

5 files changed

+47
-45
lines changed

5 files changed

+47
-45
lines changed

app/views/spent_time/_javascript_report.html.erb

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,11 @@
1313
<% @issue.time_entries.last( Setting.plugin_redmine_spent_time_in_issue_description['spent_time_max_display'].to_i ).each_with_index do |entry, index| %>
1414
<%= "," if index > 0 %> {
1515

16-
<% # Repeating code from _report.html.erb
17-
18-
if Setting.plugin_redmine_spent_time_in_issue_description['time_format'].eql? "human"
19-
hours = entry.hours.to_i
20-
minutes = entry.hours * 60
21-
minutes = (minutes - hours * 60 ).to_i
22-
23-
time_spent = ""
24-
25-
if hours == 1
26-
time_spent = t('plugin_spent_time_in_issue.datetime.hours.one')
27-
elsif hours > 1
28-
time_spent = t('plugin_spent_time_in_issue.datetime.hours.other', hours: hours )
29-
end
30-
31-
if minutes == 1
32-
time_spent << " " << t('plugin_spent_time_in_issue.datetime.minutes.one')
33-
elsif minutes > 1
34-
time_spent << " " << t('plugin_spent_time_in_issue.datetime.minutes.other', minutes: minutes )
35-
end
36-
else
37-
time_spent = entry.hours
38-
end
39-
16+
<% if Setting.plugin_redmine_spent_time_in_issue_description['time_format'].eql? "human"
17+
time_spent = humanized_time( entry.hours )
18+
else
19+
time_spent = entry.hours
20+
end
4021
%>
4122

4223
<%=raw '"spent_on":"' << entry.spent_on.strftime("%m/%d/%Y") << '",' if Setting.plugin_redmine_spent_time_in_issue_description['display_columns'].include? 'spentOn' %>

app/views/spent_time/_report.html.erb

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,7 @@
2222
<% if Setting.plugin_redmine_spent_time_in_issue_description['display_columns'].include? 'hours'
2323

2424
if Setting.plugin_redmine_spent_time_in_issue_description['time_format'].eql? "human"
25-
hours = entry.hours.to_i
26-
minutes = entry.hours * 60
27-
minutes = (minutes - hours * 60 ).to_i
28-
29-
time_spent = ""
30-
31-
if hours == 1
32-
time_spent = t('plugin_spent_time_in_issue.datetime.hours.one')
33-
elsif hours > 1
34-
time_spent = t('plugin_spent_time_in_issue.datetime.hours.other', hours: hours )
35-
end
36-
37-
if minutes == 1
38-
time_spent << " " << t('plugin_spent_time_in_issue.datetime.minutes.one')
39-
elsif minutes > 1
40-
time_spent << " " << t('plugin_spent_time_in_issue.datetime.minutes.other', minutes: minutes )
41-
end
25+
time_spent = humanized_time( entry.hours )
4226
else
4327
time_spent = entry.hours
4428
end

config/locales/en.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ en:
99
datetime:
1010
hours:
1111
one: 1 hour
12-
other: %{hours} hours
12+
other: "%{hours} hours"
1313
minutes:
1414
one: 1 minute
15-
other: %{minutes} minutes
15+
other: "%{minutes} minutes"
1616
user: User
1717
hours: Hours
1818
comments: Comments
1919
display_cols: Display Columns
2020
activity: Activity
21-
seeAllCount: ( See all %{count} entries )
21+
seeAllCount: "( See all %{count} entries )"

init.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
require 'redmine'
32

43
require_dependency 'issue_description_with_spent_time_hook_listener'
@@ -16,3 +15,8 @@
1615
},
1716
:partial => 'settings/spent_time_settings' )
1817
end
18+
19+
Rails.configuration.to_prepare do
20+
require_dependency 'issue_helper_patch'
21+
IssuesHelper.send :include, IssuesHelperPatch
22+
end

lib/issue_helper_patch.rb

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
module IssuesHelperPatch
2+
module InstanceMethods
3+
4+
def humanized_time(entry_hours)
5+
hours = entry_hours.to_i
6+
minutes = entry_hours * 60
7+
minutes = (minutes - hours * 60 ).to_i
8+
9+
time_spent = case
10+
when hours == 1
11+
t('plugin_spent_time_in_issue.datetime.hours.one')
12+
when hours > 1
13+
t('plugin_spent_time_in_issue.datetime.hours.other', hours: hours)
14+
else
15+
""
16+
end
17+
18+
if minutes == 1
19+
time_spent << " " << t('plugin_spent_time_in_issue.datetime.minutes.one')
20+
elsif minutes > 1
21+
time_spent << " " << t('plugin_spent_time_in_issue.datetime.minutes.other', minutes: minutes)
22+
else
23+
time_spent
24+
end
25+
end
26+
27+
end
28+
29+
def self.included(receiver)
30+
receiver.send :include, InstanceMethods
31+
end
32+
end
33+

0 commit comments

Comments
 (0)