Mercurial > hg > soundsoftware-site
comparison app/controllers/workflows_controller.rb @ 1517:dffacf8a6908 redmine-2.5
Update to Redmine SVN revision 13367 on 2.5-stable branch
author | Chris Cannam |
---|---|
date | Tue, 09 Sep 2014 09:29:00 +0100 |
parents | e248c7af89ec |
children |
comparison
equal
deleted
inserted
replaced
1516:b450a9d58aed | 1517:dffacf8a6908 |
---|---|
36 assignee = options.is_a?(Array) && options.include?('assignee') && !options.include?('always') | 36 assignee = options.is_a?(Array) && options.include?('assignee') && !options.include?('always') |
37 WorkflowTransition.create(:role_id => @role.id, :tracker_id => @tracker.id, :old_status_id => status_id, :new_status_id => new_status_id, :author => author, :assignee => assignee) | 37 WorkflowTransition.create(:role_id => @role.id, :tracker_id => @tracker.id, :old_status_id => status_id, :new_status_id => new_status_id, :author => author, :assignee => assignee) |
38 } | 38 } |
39 } | 39 } |
40 if @role.save | 40 if @role.save |
41 flash[:notice] = l(:notice_successful_update) | |
41 redirect_to workflows_edit_path(:role_id => @role, :tracker_id => @tracker, :used_statuses_only => params[:used_statuses_only]) | 42 redirect_to workflows_edit_path(:role_id => @role, :tracker_id => @tracker, :used_statuses_only => params[:used_statuses_only]) |
42 return | 43 return |
43 end | 44 end |
44 end | 45 end |
45 | 46 |
62 @role = Role.find_by_id(params[:role_id]) if params[:role_id] | 63 @role = Role.find_by_id(params[:role_id]) if params[:role_id] |
63 @tracker = Tracker.find_by_id(params[:tracker_id]) if params[:tracker_id] | 64 @tracker = Tracker.find_by_id(params[:tracker_id]) if params[:tracker_id] |
64 | 65 |
65 if request.post? && @role && @tracker | 66 if request.post? && @role && @tracker |
66 WorkflowPermission.replace_permissions(@tracker, @role, params[:permissions] || {}) | 67 WorkflowPermission.replace_permissions(@tracker, @role, params[:permissions] || {}) |
68 flash[:notice] = l(:notice_successful_update) | |
67 redirect_to workflows_permissions_path(:role_id => @role, :tracker_id => @tracker, :used_statuses_only => params[:used_statuses_only]) | 69 redirect_to workflows_permissions_path(:role_id => @role, :tracker_id => @tracker, :used_statuses_only => params[:used_statuses_only]) |
68 return | 70 return |
69 end | 71 end |
70 | 72 |
71 @used_statuses_only = (params[:used_statuses_only] == '0' ? false : true) | 73 @used_statuses_only = (params[:used_statuses_only] == '0' ? false : true) |
75 @statuses ||= IssueStatus.sorted.all | 77 @statuses ||= IssueStatus.sorted.all |
76 | 78 |
77 if @role && @tracker | 79 if @role && @tracker |
78 @fields = (Tracker::CORE_FIELDS_ALL - @tracker.disabled_core_fields).map {|field| [field, l("field_"+field.sub(/_id$/, ''))]} | 80 @fields = (Tracker::CORE_FIELDS_ALL - @tracker.disabled_core_fields).map {|field| [field, l("field_"+field.sub(/_id$/, ''))]} |
79 @custom_fields = @tracker.custom_fields | 81 @custom_fields = @tracker.custom_fields |
80 | 82 @permissions = WorkflowPermission. |
81 @permissions = WorkflowPermission.where(:tracker_id => @tracker.id, :role_id => @role.id).all.inject({}) do |h, w| | 83 where(:tracker_id => @tracker.id, :role_id => @role.id).inject({}) do |h, w| |
82 h[w.old_status_id] ||= {} | 84 h[w.old_status_id] ||= {} |
83 h[w.old_status_id][w.field_name] = w.rule | 85 h[w.old_status_id][w.field_name] = w.rule |
84 h | 86 h |
85 end | 87 end |
86 @statuses.each {|status| @permissions[status.id] ||= {}} | 88 @statuses.each {|status| @permissions[status.id] ||= {}} |
87 end | 89 end |
88 end | 90 end |
89 | 91 |
90 def copy | 92 def copy |
91 | |
92 if params[:source_tracker_id].blank? || params[:source_tracker_id] == 'any' | 93 if params[:source_tracker_id].blank? || params[:source_tracker_id] == 'any' |
93 @source_tracker = nil | 94 @source_tracker = nil |
94 else | 95 else |
95 @source_tracker = Tracker.find_by_id(params[:source_tracker_id].to_i) | 96 @source_tracker = Tracker.find_by_id(params[:source_tracker_id].to_i) |
96 end | 97 end |
97 if params[:source_role_id].blank? || params[:source_role_id] == 'any' | 98 if params[:source_role_id].blank? || params[:source_role_id] == 'any' |
98 @source_role = nil | 99 @source_role = nil |
99 else | 100 else |
100 @source_role = Role.find_by_id(params[:source_role_id].to_i) | 101 @source_role = Role.find_by_id(params[:source_role_id].to_i) |
101 end | 102 end |
102 | 103 @target_trackers = params[:target_tracker_ids].blank? ? |
103 @target_trackers = params[:target_tracker_ids].blank? ? nil : Tracker.find_all_by_id(params[:target_tracker_ids]) | 104 nil : Tracker.where(:id => params[:target_tracker_ids]).all |
104 @target_roles = params[:target_role_ids].blank? ? nil : Role.find_all_by_id(params[:target_role_ids]) | 105 @target_roles = params[:target_role_ids].blank? ? |
105 | 106 nil : Role.where(:id => params[:target_role_ids]).all |
106 if request.post? | 107 if request.post? |
107 if params[:source_tracker_id].blank? || params[:source_role_id].blank? || (@source_tracker.nil? && @source_role.nil?) | 108 if params[:source_tracker_id].blank? || params[:source_role_id].blank? || (@source_tracker.nil? && @source_role.nil?) |
108 flash.now[:error] = l(:error_workflow_copy_source) | 109 flash.now[:error] = l(:error_workflow_copy_source) |
109 elsif @target_trackers.blank? || @target_roles.blank? | 110 elsif @target_trackers.blank? || @target_roles.blank? |
110 flash.now[:error] = l(:error_workflow_copy_target) | 111 flash.now[:error] = l(:error_workflow_copy_target) |