summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2008-12-05 15:41:32 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2008-12-05 15:41:32 +0000
commit50794b08a925a6a06f9a76f6f08085e3250bf04c (patch)
treea557307ef434b70e25342be75292f4c2e697c317 /app
parent1b4f0c38ce83003cf25464594945ea11fe451281 (diff)
downloadredmine-50794b08a925a6a06f9a76f6f08085e3250bf04c.tar.gz
redmine-50794b08a925a6a06f9a76f6f08085e3250bf04c.zip
Cross-project gantt and calendar (#1157).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2088 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/controllers/issues_controller.rb14
-rw-r--r--app/views/issues/_sidebar.rhtml11
-rw-r--r--app/views/issues/gantt.rfpdf4
3 files changed, 14 insertions, 15 deletions
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index 0254a6d83..916229cbc 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -20,9 +20,9 @@ class IssuesController < ApplicationController
before_filter :find_issue, :only => [:show, :edit, :reply, :destroy_attachment]
before_filter :find_issues, :only => [:bulk_edit, :move, :destroy]
- before_filter :find_project, :only => [:new, :update_form, :preview, :gantt, :calendar]
- before_filter :authorize, :except => [:index, :changes, :preview, :update_form, :context_menu]
- before_filter :find_optional_project, :only => [:index, :changes]
+ before_filter :find_project, :only => [:new, :update_form, :preview]
+ before_filter :authorize, :except => [:index, :changes, :gantt, :calendar, :preview, :update_form, :context_menu]
+ before_filter :find_optional_project, :only => [:index, :changes, :gantt, :calendar]
accept_key_auth :index, :changes
helper :journals
@@ -352,7 +352,7 @@ class IssuesController < ApplicationController
respond_to do |format|
format.html { render :template => "issues/gantt.rhtml", :layout => !request.xhr? }
format.png { send_data(@gantt.to_image, :disposition => 'inline', :type => 'image/png', :filename => "#{@project.identifier}-gantt.png") } if @gantt.respond_to?('to_image')
- format.pdf { send_data(render(:template => "issues/gantt.rfpdf", :layout => false), :type => 'application/pdf', :filename => "#{@project.identifier}-gantt.pdf") }
+ format.pdf { send_data(render(:template => "issues/gantt.rfpdf", :layout => false), :type => 'application/pdf', :filename => "#{@project.nil? ? '' : "#{@project.identifier}-" }gantt.pdf") }
end
end
@@ -453,9 +453,9 @@ private
end
def find_optional_project
- return true unless params[:project_id]
- @project = Project.find(params[:project_id])
- authorize
+ @project = Project.find(params[:project_id]) unless params[:project_id].blank?
+ allowed = User.current.allowed_to?({:controller => params[:controller], :action => params[:action]}, @project, :global => true)
+ allowed ? true : deny_access
rescue ActiveRecord::RecordNotFound
render_404
end
diff --git a/app/views/issues/_sidebar.rhtml b/app/views/issues/_sidebar.rhtml
index 1b486966e..788f0b947 100644
--- a/app/views/issues/_sidebar.rhtml
+++ b/app/views/issues/_sidebar.rhtml
@@ -3,18 +3,17 @@
<% if @project %>
<%= link_to l(:field_summary), :controller => 'reports', :action => 'issue_report', :id => @project %><br />
<%= link_to l(:label_change_log), :controller => 'projects', :action => 'changelog', :id => @project %>
+<% end %>
<% planning_links = []
- planning_links << link_to_if_authorized(l(:label_calendar), :action => 'calendar', :project_id => @project)
- planning_links << link_to_if_authorized(l(:label_gantt), :action => 'gantt', :project_id => @project)
- planning_links.compact!
- unless planning_links.empty? %>
+ planning_links << link_to(l(:label_calendar), :action => 'calendar', :project_id => @project) if User.current.allowed_to?(:view_calendar, @project, :global => true)
+ planning_links << link_to(l(:label_gantt), :action => 'gantt', :project_id => @project) if User.current.allowed_to?(:view_gantt, @project, :global => true)
+%>
+<% unless planning_links.empty? %>
<h3><%= l(:label_planning) %></h3>
<p><%= planning_links.join(' | ') %></p>
<% end %>
-<% end %>
-
<% unless sidebar_queries.empty? -%>
<h3><%= l(:label_query_plural) %></h3>
diff --git a/app/views/issues/gantt.rfpdf b/app/views/issues/gantt.rfpdf
index 692e0d261..be7f31a39 100644
--- a/app/views/issues/gantt.rfpdf
+++ b/app/views/issues/gantt.rfpdf
@@ -1,12 +1,12 @@
<%
pdf=IfpdfHelper::IFPDF.new(current_language)
-pdf.SetTitle("#{@project.name} - #{l(:label_gantt)}")
+pdf.SetTitle("#{l(:label_gantt)} #{@project}")
pdf.AliasNbPages
pdf.footer_date = format_date(Date.today)
pdf.AddPage("L")
pdf.SetFontStyle('B',12)
pdf.SetX(15)
-pdf.Cell(70, 20, @project.name)
+pdf.Cell(70, 20, @project.to_s)
pdf.Ln
pdf.SetFontStyle('B',9)