Feature #202 » long_and_textilized_time_entry_comments.patch
app/models/time_entry.rb | ||
---|---|---|
37 | 37 | |
38 | 38 |
validates_presence_of :user_id, :activity_id, :project_id, :hours, :spent_on |
39 | 39 |
validates_numericality_of :hours, :allow_nil => true, :message => :invalid |
40 |
validates_length_of :comments, :maximum => 255, :allow_nil => true |
|
41 | 40 | |
42 | 41 |
def after_initialize |
43 | 42 |
if new_record? && self.activity.nil? |
app/views/issues/_edit.rhtml | ||
---|---|---|
24 | 24 |
<div class="splitcontentright"> |
25 | 25 |
<p><%= time_entry.select :activity_id, activity_collection_for_select_options %></p> |
26 | 26 |
</div> |
27 |
<p><%= time_entry.text_field :comments, :size => 60 %></p>
|
|
27 |
<p><%= time_entry.text_area :comments, :rows => 8 %></p>
|
|
28 | 28 |
<% @time_entry.custom_field_values.each do |value| %> |
29 | 29 |
<p><%= custom_field_tag_with_label :time_entry, value %></p> |
30 | 30 |
<% end %> |
app/views/my/blocks/_timelog.rhtml | ||
---|---|---|
32 | 32 |
<tr class="time-entry" style="border-bottom: 1px solid #f5f5f5;"> |
33 | 33 |
<td class="activity"><%=h entry.activity %></td> |
34 | 34 |
<td class="subject"><%=h entry.project %> <%= ' - ' + link_to_issue(entry.issue, :truncate => 50) if entry.issue %></td> |
35 |
<td class="comments"><%=h entry.comments %></td>
|
|
35 |
<td class="comments"><%= textilizable entry, :comments, :wiki_links => :local %></td>
|
|
36 | 36 |
<td class="hours"><%= html_hours("%.2f" % entry.hours) %></td> |
37 | 37 |
<td align="center"> |
38 | 38 |
<% if entry.editable_by?(@user) -%> |
app/views/timelog/_list.rhtml | ||
---|---|---|
23 | 23 |
<%= entry.issue.visible? ? link_to_issue(entry.issue, :truncate => 50) : "##{entry.issue.id}" -%> |
24 | 24 |
<% end -%> |
25 | 25 |
</td> |
26 |
<td class="comments"><%=h entry.comments %></td>
|
|
26 |
<td class="comments"><%= textilizable entry, :comments, :wiki_links => :local %></td>
|
|
27 | 27 |
<td class="hours"><%= html_hours("%.2f" % entry.hours) %></td> |
28 | 28 |
<td align="center"> |
29 | 29 |
<% if entry.editable_by?(User.current) -%> |
app/views/timelog/edit.rhtml | ||
---|---|---|
8 | 8 |
<p><%= f.text_field :issue_id, :size => 6 %> <em><%= h("#{@time_entry.issue.tracker.name} ##{@time_entry.issue.id}: #{@time_entry.issue.subject}") if @time_entry.issue %></em></p> |
9 | 9 |
<p><%= f.text_field :spent_on, :size => 10, :required => true %><%= calendar_for('time_entry_spent_on') %></p> |
10 | 10 |
<p><%= f.text_field :hours, :size => 6, :required => true %></p> |
11 |
<p><%= f.text_field :comments, :size => 100 %></p>
|
|
11 |
<p><%= f.text_area :comments, :rows => 8 %></p>
|
|
12 | 12 |
<p><%= f.select :activity_id, activity_collection_for_select_options(@time_entry), :required => true %></p> |
13 | 13 |
<% @time_entry.custom_field_values.each do |value| %> |
14 | 14 |
<p><%= custom_field_tag_with_label :time_entry, value %></p> |
db/migrate/20100203222505_convert_time_entry_comment_to_text.rb | ||
---|---|---|
1 |
class ConvertTimeEntryCommentToText < ActiveRecord::Migration |
|
2 |
def self.up |
|
3 |
change_column :time_entries, :comments, :text |
|
4 |
end |
|
5 | ||
6 |
def self.down |
|
7 |
change_column :time_entries, :comments, :string, :limit => 255 |
|
8 |
end |
|
9 |
end |
public/stylesheets/application.css | ||
---|---|---|
364 | 364 |
width: auto; |
365 | 365 |
} |
366 | 366 | |
367 |
input#time_entry_comments { width: 90%;}
|
|
367 |
textarea#time_entry_comments { width: 99%;}
|
|
368 | 368 | |
369 | 369 |
#preview fieldset {margin-top: 1em; background: url(../images/draft.png)} |
370 | 370 |