comparison app/controllers/context_menus_controller.rb @ 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 40f7cfd4df19
children af80e5618e9b
comparison
equal deleted inserted replaced
22:40f7cfd4df19 37:94944d00e43c
14 end 14 end
15 end 15 end
16 @projects = @issues.collect(&:project).compact.uniq 16 @projects = @issues.collect(&:project).compact.uniq
17 @project = @projects.first if @projects.size == 1 17 @project = @projects.first if @projects.size == 1
18 18
19 @can = {:edit => (@project && User.current.allowed_to?(:edit_issues, @project)), 19 @can = {:edit => User.current.allowed_to?(:edit_issues, @projects),
20 :log_time => (@project && User.current.allowed_to?(:log_time, @project)), 20 :log_time => (@project && User.current.allowed_to?(:log_time, @project)),
21 :update => (@project && (User.current.allowed_to?(:edit_issues, @project) || (User.current.allowed_to?(:change_status, @project) && @allowed_statuses && !@allowed_statuses.empty?))), 21 :update => (User.current.allowed_to?(:edit_issues, @projects) || (User.current.allowed_to?(:change_status, @projects) && !@allowed_statuses.blank?)),
22 :move => (@project && User.current.allowed_to?(:move_issues, @project)), 22 :move => (@project && User.current.allowed_to?(:move_issues, @project)),
23 :copy => (@issue && @project.trackers.include?(@issue.tracker) && User.current.allowed_to?(:add_issues, @project)), 23 :copy => (@issue && @project.trackers.include?(@issue.tracker) && User.current.allowed_to?(:add_issues, @project)),
24 :delete => (@project && User.current.allowed_to?(:delete_issues, @project)) 24 :delete => User.current.allowed_to?(:delete_issues, @projects)
25 } 25 }
26 if @project 26 if @project
27 @assignables = @project.assignable_users 27 @assignables = @project.assignable_users
28 @assignables << @issue.assigned_to if @issue && @issue.assigned_to && !@assignables.include?(@issue.assigned_to) 28 @assignables << @issue.assigned_to if @issue && @issue.assigned_to && !@assignables.include?(@issue.assigned_to)
29 @trackers = @project.trackers 29 @trackers = @project.trackers
30 else
31 #when multiple projects, we only keep the intersection of each set
32 @assignables = @projects.map(&:assignable_users).inject{|memo,a| memo & a}
33 @trackers = @projects.map(&:trackers).inject{|memo,t| memo & t}
30 end 34 end
31 35
32 @priorities = IssuePriority.all.reverse 36 @priorities = IssuePriority.all.reverse
33 @statuses = IssueStatus.find(:all, :order => 'position') 37 @statuses = IssueStatus.find(:all, :order => 'position')
34 @back = back_url 38 @back = back_url