Index: app/controllers/issues_controller.rb =================================================================== --- app/controllers/issues_controller.rb (revision 3434) +++ app/controllers/issues_controller.rb (working copy) @@ -315,13 +315,14 @@ @target_project ||= @project @trackers = @target_project.trackers @available_statuses = Workflow.available_statuses(@project) + call_hook(:controller_issues_edit_before_change, { :params => params, :issue => @issue, :target_project => @target_project}) if request.post? new_tracker = params[:new_tracker_id].blank? ? nil : @target_project.trackers.find_by_id(params[:new_tracker_id]) unsaved_issue_ids = [] moved_issues = [] @issues.each do |issue| changed_attributes = {} - [:assigned_to_id, :status_id, :start_date, :due_date].each do |valid_attribute| + self.updatable_attrs_on_move.each do |valid_attribute| unless params[valid_attribute].blank? changed_attributes[valid_attribute] = (params[valid_attribute] == 'none' ? nil : params[valid_attribute]) end @@ -571,4 +572,9 @@ sort_clear render_error "An error occurred while executing the query and has been logged. Please report this error to your Redmine administrator." end + + # Attributes that can be updated on issue move + def updatable_attrs_on_move + [:assigned_to_id, :status_id, :start_date, :due_date] + end end Index: app/views/issues/move.rhtml =================================================================== --- app/views/issues/move.rhtml (revision 3434) +++ app/views/issues/move.rhtml (working copy) @@ -42,6 +42,9 @@ <%= text_field_tag 'due_date', '', :size => 10 %><%= calendar_for('due_date') %>

+ +<%= call_hook(:view_issues_move_bottom, :issue => @issue) %> + <% if @copy %>