comparison app/controllers/.svn/text-base/issue_moves_controller.rb.svn-base @ 37:94944d00e43c

* Update to SVN trunk rev 4411
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Fri, 19 Nov 2010 13:24:41 +0000
parents 1d32c0a0efbf
children cbce1fd3b1b7
comparison
equal deleted inserted replaced
22:40f7cfd4df19 37:94944d00e43c
1 class IssueMovesController < ApplicationController 1 class IssueMovesController < ApplicationController
2 default_search_scope :issues 2 default_search_scope :issues
3 before_filter :find_issues 3 before_filter :find_issues, :check_project_uniqueness
4 before_filter :authorize 4 before_filter :authorize
5 5
6 def new 6 def new
7 prepare_for_issue_move 7 prepare_for_issue_move
8 render :layout => false if request.xhr? 8 render :layout => false if request.xhr?
16 unsaved_issue_ids = [] 16 unsaved_issue_ids = []
17 moved_issues = [] 17 moved_issues = []
18 @issues.each do |issue| 18 @issues.each do |issue|
19 issue.reload 19 issue.reload
20 issue.init_journal(User.current) 20 issue.init_journal(User.current)
21 issue.current_journal.notes = @notes if @notes.present?
21 call_hook(:controller_issues_move_before_save, { :params => params, :issue => issue, :target_project => @target_project, :copy => !!@copy }) 22 call_hook(:controller_issues_move_before_save, { :params => params, :issue => issue, :target_project => @target_project, :copy => !!@copy })
22 if r = issue.move_to_project(@target_project, new_tracker, {:copy => @copy, :attributes => extract_changed_attributes_for_move(params)}) 23 if r = issue.move_to_project(@target_project, new_tracker, {:copy => @copy, :attributes => extract_changed_attributes_for_move(params)})
23 moved_issues << r 24 moved_issues << r
24 else 25 else
25 unsaved_issue_ids << issue.id 26 unsaved_issue_ids << issue.id
48 @allowed_projects = Issue.allowed_target_projects_on_move 49 @allowed_projects = Issue.allowed_target_projects_on_move
49 @target_project = @allowed_projects.detect {|p| p.id.to_s == params[:new_project_id]} if params[:new_project_id] 50 @target_project = @allowed_projects.detect {|p| p.id.to_s == params[:new_project_id]} if params[:new_project_id]
50 @target_project ||= @project 51 @target_project ||= @project
51 @trackers = @target_project.trackers 52 @trackers = @target_project.trackers
52 @available_statuses = Workflow.available_statuses(@project) 53 @available_statuses = Workflow.available_statuses(@project)
54 @notes = params[:notes]
55 @notes ||= ''
53 end 56 end
54 57
55 def extract_changed_attributes_for_move(params) 58 def extract_changed_attributes_for_move(params)
56 changed_attributes = {} 59 changed_attributes = {}
57 [:assigned_to_id, :status_id, :start_date, :due_date].each do |valid_attribute| 60 [:assigned_to_id, :status_id, :start_date, :due_date, :priority_id].each do |valid_attribute|
58 unless params[valid_attribute].blank? 61 unless params[valid_attribute].blank?
59 changed_attributes[valid_attribute] = (params[valid_attribute] == 'none' ? nil : params[valid_attribute]) 62 changed_attributes[valid_attribute] = (params[valid_attribute] == 'none' ? nil : params[valid_attribute])
60 end 63 end
61 end 64 end
62 changed_attributes 65 changed_attributes