Skip to content

Commit 71460ea

Browse files
author
travis
committed
Extended Show View to simplify process. Closes #4
Extending show removed JavaScript dependancy. This limits support for the plugin for Redmine 2.2 to current.
1 parent 7e863e8 commit 71460ea

9 files changed

+224
-111
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<div id="issue-spenttime" >
2+
<h3>Spent Time Report</h3>
3+
4+
<% @issue.time_entries.last( Setting.plugin_redmine_spent_time_in_issue_description['spent_time_max_display'].to_i ).each_with_index do |entry, index| %>
5+
<div class="spenttimeentry <%= ( index % 2 == 0 ? "even" : "odd" ) %>">
6+
<p>
7+
<%= content_tag(:span, entry.spent_on.strftime("%m/%d/%Y") ) if is_spent_on_shown( entry ) %>
8+
<%= content_tag(:span, link_to_user( entry.user )) if is_user_shown( entry ) %>
9+
<%= content_tag(:span, entry.activity ) if is_activity_shown( entry ) %>
10+
<%= content_tag(:span, report_time_spent( entry ) ) if is_report_time_shown( entry ) %>
11+
<%=raw "<br />" << content_tag(:span, entry.comments ) if is_comment_shown( entry ) %>
12+
</p>
13+
</div>
14+
<% end %>
15+
</div>
16+
17+
<% content_for :header_tags do %>
18+
<%= stylesheet_link_tag 'issue_spent_time_description', :plugin => 'redmine_spent_time_in_issue_description' %>
19+
<% end %>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<hr />
2+
<p>
3+
<strong><%= t('plugin_spent_time_in_issue.timeEntries') %></strong>
4+
<% if @issue.time_entries.count > Setting.plugin_redmine_spent_time_in_issue_description['spent_time_max_display'].to_i %>
5+
<%= link_to "#{t "plugin_spent_time_in_issue.seeAllCount", count: @issue.time_entries.count}", issue_time_entries_path( @issue ) %>
6+
<% end %>
7+
</p>
8+
9+
<table class="issue-spent-time-description">
10+
<thead>
11+
<% %w( spentOn user hours comments activity).each do |column_value| %>
12+
<%= content_tag(:th, t("plugin_spent_time_in_issue." << column_value ) ) if Setting.plugin_redmine_spent_time_in_issue_description['display_columns'].include? column_value %>
13+
<%end %>
14+
</thead>
15+
<tbody>
16+
<% @issue.time_entries.last( Setting.plugin_redmine_spent_time_in_issue_description['spent_time_max_display'].to_i ).each do |entry| %>
17+
<tr>
18+
<%= content_tag(:td, entry.spent_on.strftime("%m/%d/%Y") ) if is_spent_on_shown( entry ) %>
19+
<%= content_tag(:td, link_to_user( entry.user )) if is_user_shown( entry ) %>
20+
<%= content_tag(:td, report_time_spent( entry ) ) if is_report_time_shown( entry ) %>
21+
<%= content_tag(:td, entry.comments ) if is_comment_shown( entry ) %>
22+
<%= content_tag(:td, entry.activity ) if is_activity_shown( entry ) %>
23+
</tr>
24+
<% end %>
25+
</tbody>
26+
</table>
27+
28+
<% content_for :header_tags do %>
29+
<%= stylesheet_link_tag 'issue_spent_time_description', :plugin => 'redmine_spent_time_in_issue_description' %>
30+
<% end %>

app/views/issues/show.html.erb

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
<%= render :partial => 'action_menu' %>
2+
3+
<h2><%= issue_heading(@issue) %></h2>
4+
5+
<div class="<%= @issue.css_classes %> details">
6+
<% if @prev_issue_id || @next_issue_id %>
7+
<div class="next-prev-links contextual">
8+
<%= link_to_if @prev_issue_id,
9+
"\xc2\xab #{l(:label_previous)}",
10+
(@prev_issue_id ? issue_path(@prev_issue_id) : nil),
11+
:title => "##{@prev_issue_id}" %> |
12+
<% if @issue_position && @issue_count %>
13+
<span class="position"><%= l(:label_item_position, :position => @issue_position, :count => @issue_count) %></span> |
14+
<% end %>
15+
<%= link_to_if @next_issue_id,
16+
"#{l(:label_next)} \xc2\xbb",
17+
(@next_issue_id ? issue_path(@next_issue_id) : nil),
18+
:title => "##{@next_issue_id}" %>
19+
</div>
20+
<% end %>
21+
22+
<%= avatar(@issue.author, :size => "50") %>
23+
24+
<div class="subject">
25+
<%= render_issue_subject_with_tree(@issue) %>
26+
</div>
27+
<p class="author">
28+
<%= authoring @issue.created_on, @issue.author %>.
29+
<% if @issue.created_on != @issue.updated_on %>
30+
<%= l(:label_updated_time, time_tag(@issue.updated_on)).html_safe %>.
31+
<% end %>
32+
</p>
33+
34+
<table class="attributes">
35+
<%= issue_fields_rows do |rows|
36+
rows.left l(:field_status), h(@issue.status.name), :class => 'status'
37+
rows.left l(:field_priority), h(@issue.priority.name), :class => 'priority'
38+
39+
unless @issue.disabled_core_fields.include?('assigned_to_id')
40+
rows.left l(:field_assigned_to), avatar(@issue.assigned_to, :size => "14").to_s.html_safe + (@issue.assigned_to ? link_to_user(@issue.assigned_to) : "-"), :class => 'assigned-to'
41+
end
42+
unless @issue.disabled_core_fields.include?('category_id')
43+
rows.left l(:field_category), h(@issue.category ? @issue.category.name : "-"), :class => 'category'
44+
end
45+
unless @issue.disabled_core_fields.include?('fixed_version_id')
46+
rows.left l(:field_fixed_version), (@issue.fixed_version ? link_to_version(@issue.fixed_version) : "-"), :class => 'fixed-version'
47+
end
48+
49+
unless @issue.disabled_core_fields.include?('start_date')
50+
rows.right l(:field_start_date), format_date(@issue.start_date), :class => 'start-date'
51+
end
52+
unless @issue.disabled_core_fields.include?('due_date')
53+
rows.right l(:field_due_date), format_date(@issue.due_date), :class => 'due-date'
54+
end
55+
unless @issue.disabled_core_fields.include?('done_ratio')
56+
rows.right l(:field_done_ratio), progress_bar(@issue.done_ratio, :width => '80px', :legend => "#{@issue.done_ratio}%"), :class => 'progress'
57+
end
58+
unless @issue.disabled_core_fields.include?('estimated_hours')
59+
unless @issue.estimated_hours.nil?
60+
rows.right l(:field_estimated_hours), l_hours(@issue.estimated_hours), :class => 'estimated-hours'
61+
end
62+
end
63+
if User.current.allowed_to?(:view_time_entries, @project)
64+
rows.right l(:label_spent_time), (@issue.total_spent_hours > 0 ? link_to(l_hours(@issue.total_spent_hours), issue_time_entries_path(@issue)) : "-"), :class => 'spent-time'
65+
end
66+
end %>
67+
<%= render_custom_fields_rows(@issue) %>
68+
<%= call_hook(:view_issues_show_details_bottom, :issue => @issue) %>
69+
70+
71+
</table>
72+
73+
<% if @issue.description? || @issue.attachments.any? -%>
74+
<hr />
75+
<% if @issue.description? %>
76+
<div class="description">
77+
<div class="contextual">
78+
<%= link_to l(:button_quote), quoted_issue_path(@issue), :remote => true, :method => 'post', :class => 'icon icon-comment' if authorize_for('issues', 'edit') %>
79+
</div>
80+
81+
<p><strong><%=l(:field_description)%></strong></p>
82+
<div class="wiki">
83+
<%= textilizable @issue, :description, :attachments => @issue.attachments %>
84+
</div>
85+
</div>
86+
<% end %>
87+
<%= link_to_attachments @issue, :thumbnails => true %>
88+
<% end -%>
89+
90+
<%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %>
91+
92+
<% if User.current.allowed_to?(:view_time_entries, @project) and @issue.time_entries.present? and (Setting.plugin_redmine_spent_time_in_issue_description['report_location'].eql? "ticket_body" or Setting.plugin_redmine_spent_time_in_issue_description['report_location'].nil? )%>
93+
<%= render :partial => 'time_spent_report' %>
94+
<% end %>
95+
96+
<% if !@issue.leaf? || User.current.allowed_to?(:manage_subtasks, @project) %>
97+
<hr />
98+
<div id="issue_tree">
99+
<div class="contextual">
100+
<%= link_to_new_subtask(@issue) if User.current.allowed_to?(:manage_subtasks, @project) %>
101+
</div>
102+
<p><strong><%=l(:label_subtask_plural)%></strong></p>
103+
<%= render_descendants_tree(@issue) unless @issue.leaf? %>
104+
</div>
105+
<% end %>
106+
107+
<% if @relations.present? || User.current.allowed_to?(:manage_issue_relations, @project) %>
108+
<hr />
109+
<div id="relations">
110+
<%= render :partial => 'relations' %>
111+
</div>
112+
<% end %>
113+
114+
</div>
115+
116+
<% if Setting.plugin_redmine_spent_time_in_issue_description['report_location'].eql? "above_revisions" and User.current.allowed_to?(:view_time_entries, @project) and @issue.time_entries.present? %>
117+
<%= render :partial => 'floating_report' %>
118+
<div style="clear: both;"></div>
119+
<% end %>
120+
121+
<% if @changesets.present? %>
122+
<div id="issue-changesets">
123+
<h3><%=l(:label_associated_revisions)%></h3>
124+
<%= render :partial => 'changesets', :locals => { :changesets => @changesets} %>
125+
</div>
126+
<% end %>
127+
128+
<% if Setting.plugin_redmine_spent_time_in_issue_description['report_location'].eql? "below_revisions" and User.current.allowed_to?(:view_time_entries, @project) and @issue.time_entries.present? %>
129+
<div style="clear: both;"></div>
130+
<%= render :partial => 'floating_report' %>
131+
<% end %>
132+
133+
<% if @journals.present? %>
134+
<div id="history">
135+
<h3><%=l(:label_history)%></h3>
136+
<%= render :partial => 'history', :locals => { :issue => @issue, :journals => @journals } %>
137+
</div>
138+
<% end %>
139+
140+
141+
<div style="clear: both;"></div>
142+
<%= render :partial => 'action_menu' %>
143+
144+
<div style="clear: both;"></div>
145+
<% if @issue.editable? %>
146+
<div id="update" style="display:none;">
147+
<h3><%= l(:button_edit) %></h3>
148+
<%= render :partial => 'edit' %>
149+
</div>
150+
<% end %>
151+
152+
<% other_formats_links do |f| %>
153+
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
154+
<%= f.link_to 'PDF' %>
155+
<% end %>
156+
157+
<% html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %>
158+
159+
<% content_for :sidebar do %>
160+
<%= render :partial => 'issues/sidebar' %>
161+
162+
<% if User.current.allowed_to?(:add_issue_watchers, @project) ||
163+
(@issue.watchers.present? && User.current.allowed_to?(:view_issue_watchers, @project)) %>
164+
<div id="watchers">
165+
<%= render :partial => 'watchers/watchers', :locals => {:watched => @issue} %>
166+
</div>
167+
<% end %>
168+
<% end %>
169+
170+
<% content_for :header_tags do %>
171+
<%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@issue.project} - #{@issue.tracker} ##{@issue.id}: #{@issue.subject}") %>
172+
<% end %>
173+
174+
<%= context_menu issues_context_menu_path %>

app/views/spent_time/_javascript_report.html.erb

Lines changed: 0 additions & 69 deletions
This file was deleted.

app/views/spent_time/_report.html.erb

Lines changed: 0 additions & 33 deletions
This file was deleted.

assets/javascripts/spent_time_report_builder.js

Whitespace-only changes.
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
table.issue-spent-time-description { width: 100%; text-align: left; }
22
.spenttimeentry { border-bottom: 1px solid #ddd }
3-
#issue-spenttime.lonely_spenttime { padding-left: 1em; width: 45%;}
4-
#issue-spenttime { float: right; margin-left: 13m; margin-bottom: 1em; background: #fff; font-size: 90%; width: 100%; }
3+
#issue-spenttime { float: right; margin-bottom: 1em; background: #fff; font-size: 90%; width: 45%; padding-left: 1em;}
54
#issue-spenttime > div > p { margin: 0px; margin-bottom: 1em; }
65
#issue-spenttime > div > p > span { padding-right: 20px; }
76

init.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
require 'redmine'
22

3-
require_dependency 'issue_description_with_spent_time_hook_listener'
4-
53
Redmine::Plugin.register :redmine_spent_time_in_issue_description do
64
name 'Issue Description with Spent Time'
75
author 'Travis Spangle'

lib/issue_description_with_spent_time_hook_listener.rb

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)