##// END OF EJS Templates
show "no data" label when there's nothing to display on changelog and roadmap...
show "no data" label when there's nothing to display on changelog and roadmap git-svn-id: http://redmine.rubyforge.org/svn/trunk@255 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r202:fe22797d6927
r252:ddd0796e403d
Show More
issues_controller.rb
149 lines | 6.4 KiB | text/x-ruby | RubyLexer
/ app / controllers / issues_controller.rb
Jean-Philippe Lang
Initial commit...
r2 # redMine - project management software
Jean-Philippe Lang
mail notifications added when:...
r193 # Copyright (C) 2006-2007 Jean-Philippe Lang
Jean-Philippe Lang
Initial commit...
r2 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class IssuesController < ApplicationController
Jean-Philippe Lang
* single/multiple issues pdf export added...
r35 layout 'base', :except => :export_pdf
Jean-Philippe Lang
data locking for issues...
r21 before_filter :find_project, :authorize
Jean-Philippe Lang
Initial commit...
r2
Jean-Philippe Lang
data locking for issues...
r21 helper :custom_fields
include CustomFieldsHelper
Jean-Philippe Lang
* single/multiple issues pdf export added...
r35 helper :ifpdf
include IfpdfHelper
Jean-Philippe Lang
data locking for issues...
r21
def show
Jean-Philippe Lang
added the ability to set the sort order for issue statuses...
r202 @status_options = @issue.status.workflows.find(:all, :order => 'position', :include => :new_status, :conditions => ["role_id=? and tracker_id=?", self.logged_in_user.role_for_project(@project.id), @issue.tracker.id]).collect{ |w| w.new_status } if self.logged_in_user
Jean-Philippe Lang
0.3 unstable...
r10 @custom_values = @issue.custom_values.find(:all, :include => :custom_field)
Jean-Philippe Lang
improved issues change history...
r52 @journals_count = @issue.journals.count
@journals = @issue.journals.find(:all, :include => [:user, :details], :limit => 15, :order => "journals.created_on desc")
end
def history
@journals = @issue.journals.find(:all, :include => [:user, :details], :order => "journals.created_on desc")
@journals_count = @journals.length
Jean-Philippe Lang
* single/multiple issues pdf export added...
r35 end
def export_pdf
@custom_values = @issue.custom_values.find(:all, :include => :custom_field)
@options_for_rfpdf ||= {}
@options_for_rfpdf[:file_name] = "#{@project.name}_#{@issue.long_id}.pdf"
Jean-Philippe Lang
data locking for issues...
r21 end
Jean-Philippe Lang
Initial commit...
r2
Jean-Philippe Lang
data locking for issues...
r21 def edit
@priorities = Enumeration::get_values('IPRI')
if request.get?
@custom_values = @project.custom_fields_for_issues(@issue.tracker).collect { |x| @issue.custom_values.find_by_custom_field_id(x.id) || CustomValue.new(:custom_field => x, :customized => @issue) }
else
begin
Jean-Philippe Lang
improved issues change history...
r52 @issue.init_journal(self.logged_in_user)
Jean-Philippe Lang
data locking for issues...
r21 # Retrieve custom fields and values
@custom_values = @project.custom_fields_for_issues(@issue.tracker).collect { |x| CustomValue.new(:custom_field => x, :customized => @issue, :value => params["custom_fields"][x.id.to_s]) }
@issue.custom_values = @custom_values
@issue.attributes = params[:issue]
if @issue.save
flash[:notice] = l(:notice_successful_update)
redirect_to :action => 'show', :id => @issue
end
rescue ActiveRecord::StaleObjectError
# Optimistic locking exception
flash[:notice] = l(:notice_locking_conflict)
end
end
end
Jean-Philippe Lang
issues/add_note added...
r34
def add_note
Jean-Philippe Lang
improved issues change history...
r52 unless params[:notes].empty?
journal = @issue.init_journal(self.logged_in_user, params[:notes])
#@history = @issue.histories.build(params[:history])
#@history.author_id = self.logged_in_user.id if self.logged_in_user
#@history.status = @issue.status
if @issue.save
Jean-Philippe Lang
issues/add_note added...
r34 flash[:notice] = l(:notice_successful_update)
Jean-Philippe Lang
replaced deprecated controller instance variables: @params, @session, @request...
r124 Mailer.deliver_issue_edit(journal) if Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled?
Jean-Philippe Lang
issues/add_note added...
r34 redirect_to :action => 'show', :id => @issue
return
end
end
show
render :action => 'show'
end
Jean-Philippe Lang
data locking for issues...
r21
def change_status
Jean-Philippe Lang
improved issues change history...
r52 #@history = @issue.histories.build(params[:history])
Jean-Philippe Lang
added the ability to set the sort order for issue statuses...
r202 @status_options = @issue.status.workflows.find(:all, :order => 'position', :include => :new_status, :conditions => ["role_id=? and tracker_id=?", self.logged_in_user.role_for_project(@project.id), @issue.tracker.id]).collect{ |w| w.new_status } if self.logged_in_user
Jean-Philippe Lang
improved issues change history...
r52 @new_status = IssueStatus.find(params[:new_status_id])
Jean-Philippe Lang
data locking for issues...
r21 if params[:confirm]
begin
Jean-Philippe Lang
improved issues change history...
r52 #@history.author_id = self.logged_in_user.id if self.logged_in_user
#@issue.status = @history.status
#@issue.fixed_version_id = (params[:issue][:fixed_version_id])
#@issue.assigned_to_id = (params[:issue][:assigned_to_id])
#@issue.done_ratio = (params[:issue][:done_ratio])
#@issue.lock_version = (params[:issue][:lock_version])
Jean-Philippe Lang
mailer bug fix...
r53 journal = @issue.init_journal(self.logged_in_user, params[:notes])
Jean-Philippe Lang
improved issues change history...
r52 @issue.status = @new_status
if @issue.update_attributes(params[:issue])
Jean-Philippe Lang
data locking for issues...
r21 flash[:notice] = l(:notice_successful_update)
Jean-Philippe Lang
replaced deprecated controller instance variables: @params, @session, @request...
r124 Mailer.deliver_issue_edit(journal) if Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled?
Jean-Philippe Lang
data locking for issues...
r21 redirect_to :action => 'show', :id => @issue
end
rescue ActiveRecord::StaleObjectError
# Optimistic locking exception
flash[:notice] = l(:notice_locking_conflict)
end
end
Jean-Philippe Lang
Initial commit...
r2 @assignable_to = @project.members.find(:all, :include => :user).collect{ |m| m.user }
Jean-Philippe Lang
data locking for issues...
r21 end
def destroy
@issue.destroy
redirect_to :controller => 'projects', :action => 'list_issues', :id => @project
end
Jean-Philippe Lang
Initial commit...
r2 def add_attachment
Jean-Philippe Lang
multiple file upload...
r38 # Save the attachments
Jean-Philippe Lang
mail notifications added when:...
r193 @attachments = []
params[:attachments].each { |file|
next unless file.size > 0
a = Attachment.create(:container => @issue, :file => file, :author => logged_in_user)
@attachments << a unless a.new_record?
Jean-Philippe Lang
multiple file upload...
r38 } if params[:attachments] and params[:attachments].is_a? Array
Jean-Philippe Lang
mail notifications added when:...
r193 Mailer.deliver_attachments_add(@attachments) if !@attachments.empty? and Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled?
Jean-Philippe Lang
Initial commit...
r2 redirect_to :action => 'show', :id => @issue
end
def destroy_attachment
@issue.attachments.find(params[:attachment_id]).destroy
redirect_to :action => 'show', :id => @issue
end
Jean-Philippe Lang
0.3 unstable...
r10
# Send the file in stream mode
def download
@attachment = @issue.attachments.find(params[:attachment_id])
send_file @attachment.diskfile, :filename => @attachment.filename
Jean-Philippe Lang
git-svn-id: http://redmine.rubyforge.org/svn/trunk@51 e93f8b46-1217-0410-a6f0-8f06a7374b81
r49 rescue
Jean-Philippe Lang
ActiveRecord::RecordNotFound exceptions handled more gracefully...
r130 render_404
Jean-Philippe Lang
0.3 unstable...
r10 end
Jean-Philippe Lang
Initial commit...
r2 private
Jean-Philippe Lang
0.3 unstable...
r10 def find_project
Jean-Philippe Lang
data locking for issues...
r21 @issue = Issue.find(params[:id], :include => [:project, :tracker, :status, :author, :priority, :category])
Jean-Philippe Lang
0.3 unstable...
r10 @project = @issue.project
Jean-Philippe Lang
* new report: project activity...
r42 @html_title = "#{@project.name} - #{@issue.tracker.name} ##{@issue.id}"
Jean-Philippe Lang
ActiveRecord::RecordNotFound exceptions handled more gracefully...
r130 rescue ActiveRecord::RecordNotFound
render_404
Jean-Philippe Lang
0.3 unstable...
r10 end
Jean-Philippe Lang
Initial commit...
r2 end