Mercurial > hg > soundsoftware-site
comparison app/controllers/issue_moves_controller.rb @ 51:371eac10df0b live
* Merge from "cannam" branch. This includes update to Redmine trunk, plus welcome/tip-of-the-day from luisf branch.
author | Chris Cannam |
---|---|
date | Wed, 24 Nov 2010 12:20:08 +0000 |
parents | 94944d00e43c |
children | cbce1fd3b1b7 |
comparison
equal
deleted
inserted
replaced
34:09b1d4349da3 | 51:371eac10df0b |
---|---|
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 |