summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2007-07-14 14:37:22 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2007-07-14 14:37:22 +0000
commite94e88e3adec033b71c64ebfb0378a28ea1b0c33 (patch)
treee9ff40e51152668f4414de678f5da700dbd26ac4 /app
parent9c38458f8bd259c7db2cb6a8fda7dcbcbf3f5540 (diff)
downloadredmine-e94e88e3adec033b71c64ebfb0378a28ea1b0c33.tar.gz
redmine-e94e88e3adec033b71c64ebfb0378a28ea1b0c33.zip
Added the ability to log time when changing an issue status.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@586 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/controllers/issues_controller.rb8
-rw-r--r--app/views/issues/change_status.rhtml13
2 files changed, 21 insertions, 0 deletions
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index e0005b309..990d95b0e 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -105,6 +105,13 @@ class IssuesController < ApplicationController
:value => a.filename) unless a.new_record?
} if params[:attachments] and params[:attachments].is_a? Array
+ # Log time
+ if logged_in_user.authorized_to(@project, "timelog/edit")
+ @time_entry ||= TimeEntry.new(:project => @project, :issue => @issue, :user => logged_in_user, :spent_on => Date.today)
+ @time_entry.attributes = params[:time_entry]
+ @time_entry.save
+ end
+
flash[:notice] = l(:notice_successful_update)
Mailer.deliver_issue_edit(journal) if Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled?
redirect_to :action => 'show', :id => @issue
@@ -115,6 +122,7 @@ class IssuesController < ApplicationController
end
end
@assignable_to = @project.members.find(:all, :include => :user).collect{ |m| m.user }
+ @activities = Enumeration::get_values('ACTI')
end
def destroy
diff --git a/app/views/issues/change_status.rhtml b/app/views/issues/change_status.rhtml
index 11fceccca..ab9aee2f9 100644
--- a/app/views/issues/change_status.rhtml
+++ b/app/views/issues/change_status.rhtml
@@ -8,10 +8,23 @@
<%= f.hidden_field :lock_version %>
<div class="box">
+<div class="splitcontentleft">
<p><label><%=l(:label_issue_status_new)%></label> <%= @new_status.name %></p>
<p><%= f.select :assigned_to_id, (@issue.project.members.collect {|m| [m.name, m.user_id]}), :include_blank => true %></p>
<p><%= f.select :done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></p>
<p><%= f.select :fixed_version_id, (@project.versions.collect {|v| [v.name, v.id]}), { :include_blank => true } %></p>
+</div>
+<div class="splitcontentright">
+<% if authorize_for('timelog', 'edit') %>
+<% fields_for :time_entry, @time_entry, { :builder => TabularFormBuilder, :lang => current_language} do |time_entry| %>
+<p><%= time_entry.text_field :hours, :size => 6, :label => :label_spent_time %> <%= l(:field_hours) %></p>
+<p><%= time_entry.text_field :comments, :size => 40 %></p>
+<p><%= time_entry.select :activity_id, (@activities.collect {|p| [p.name, p.id]}) %></p>
+<% end %>
+<% end %>
+</div>
+
+<div class="clear"></div>
<p><label for="notes"><%= l(:field_notes) %></label>
<%= text_area_tag 'notes', @notes, :cols => 60, :rows => 10, :class => 'wiki-edit' %></p>