Mercurial > hg > soundsoftware-site
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 |