Mercurial > hg > soundsoftware-site
comparison app/controllers/context_menus_controller.rb @ 909:cbb26bc654de redmine-1.3
Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author | Chris Cannam |
---|---|
date | Fri, 24 Feb 2012 19:09:32 +0000 |
parents | cbce1fd3b1b7 |
children | 433d4f72a19b |
comparison
equal
deleted
inserted
replaced
908:c6c2cbd0afee | 909:cbb26bc654de |
---|---|
1 class ContextMenusController < ApplicationController | 1 class ContextMenusController < ApplicationController |
2 helper :watchers | 2 helper :watchers |
3 helper :issues | 3 helper :issues |
4 | 4 |
5 def issues | 5 def issues |
6 @issues = Issue.visible.all(:conditions => {:id => params[:ids]}, :include => :project) | 6 @issues = Issue.visible.all(:conditions => {:id => params[:ids]}, :include => :project) |
7 | 7 |
8 if (@issues.size == 1) | 8 if (@issues.size == 1) |
9 @issue = @issues.first | 9 @issue = @issues.first |
10 @allowed_statuses = @issue.new_statuses_allowed_to(User.current) | 10 @allowed_statuses = @issue.new_statuses_allowed_to(User.current) |
11 else | 11 else |
12 @allowed_statuses = @issues.map do |i| | 12 @allowed_statuses = @issues.map do |i| |
24 :move => (@project && User.current.allowed_to?(:move_issues, @project)), | 24 :move => (@project && User.current.allowed_to?(:move_issues, @project)), |
25 :copy => (@issue && @project.trackers.include?(@issue.tracker) && User.current.allowed_to?(:add_issues, @project)), | 25 :copy => (@issue && @project.trackers.include?(@issue.tracker) && User.current.allowed_to?(:add_issues, @project)), |
26 :delete => User.current.allowed_to?(:delete_issues, @projects) | 26 :delete => User.current.allowed_to?(:delete_issues, @projects) |
27 } | 27 } |
28 if @project | 28 if @project |
29 @assignables = @project.assignable_users | 29 if @issue |
30 @assignables << @issue.assigned_to if @issue && @issue.assigned_to && !@assignables.include?(@issue.assigned_to) | 30 @assignables = @issue.assignable_users |
31 else | |
32 @assignables = @project.assignable_users | |
33 end | |
31 @trackers = @project.trackers | 34 @trackers = @project.trackers |
32 else | 35 else |
33 #when multiple projects, we only keep the intersection of each set | 36 #when multiple projects, we only keep the intersection of each set |
34 @assignables = @projects.map(&:assignable_users).inject{|memo,a| memo & a} | 37 @assignables = @projects.map(&:assignable_users).inject{|memo,a| memo & a} |
35 @trackers = @projects.map(&:trackers).inject{|memo,t| memo & t} | 38 @trackers = @projects.map(&:trackers).inject{|memo,t| memo & t} |
36 end | 39 end |
37 | 40 |
38 @priorities = IssuePriority.all.reverse | 41 @priorities = IssuePriority.active.reverse |
39 @statuses = IssueStatus.find(:all, :order => 'position') | 42 @statuses = IssueStatus.find(:all, :order => 'position') |
40 @back = back_url | 43 @back = back_url |
41 | 44 |
42 render :layout => false | 45 render :layout => false |
43 end | 46 end |
44 | 47 |
45 def time_entries | 48 def time_entries |
46 @time_entries = TimeEntry.all( | 49 @time_entries = TimeEntry.all( |
47 :conditions => {:id => params[:ids]}, :include => :project) | 50 :conditions => {:id => params[:ids]}, :include => :project) |
48 @projects = @time_entries.collect(&:project).compact.uniq | 51 @projects = @time_entries.collect(&:project).compact.uniq |
49 @project = @projects.first if @projects.size == 1 | 52 @project = @projects.first if @projects.size == 1 |
50 @activities = TimeEntryActivity.shared.active | 53 @activities = TimeEntryActivity.shared.active |
51 @can = {:edit => User.current.allowed_to?(:log_time, @projects), | 54 @can = {:edit => User.current.allowed_to?(:edit_time_entries, @projects), |
52 :update => User.current.allowed_to?(:log_time, @projects), | 55 :delete => User.current.allowed_to?(:edit_time_entries, @projects) |
53 :delete => User.current.allowed_to?(:log_time, @projects) | |
54 } | 56 } |
55 @back = back_url | 57 @back = back_url |
56 render :layout => false | 58 render :layout => false |
57 end | 59 end |
58 end | 60 end |