##// END OF EJS Templates
Do not run Mercurial functional tests if the test repository is not set up....
Do not run Mercurial functional tests if the test repository is not set up. git-svn-id: http://redmine.rubyforge.org/svn/trunk@1019 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r977:86319feef236
r1006:3d5381b24bb4
Show More
messages_controller.rb
98 lines | 3.1 KiB | text/x-ruby | RubyLexer
/ app / controllers / messages_controller.rb
Jean-Philippe Lang
Per project forums added....
r526 # redMine - project management software
# Copyright (C) 2006-2007 Jean-Philippe Lang
#
# 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 MessagesController < ApplicationController
layout 'base'
Jean-Philippe Lang
Forums enhancements:...
r913 before_filter :find_board, :only => :new
before_filter :find_message, :except => :new
before_filter :authorize
Jean-Philippe Lang
Per project forums added....
r526
verify :method => :post, :only => [ :reply, :destroy ], :redirect_to => { :action => :show }
Jean-Philippe Lang
Attachments can now be added to wiki pages (original patch by Pavol Murin). Only authorized users can add/delete attachments....
r538 helper :attachments
include AttachmentsHelper
Jean-Philippe Lang
Forums enhancements:...
r913 # Show a topic and its replies
Jean-Philippe Lang
Per project forums added....
r526 def show
@reply = Message.new(:subject => "RE: #{@message.subject}")
render :action => "show", :layout => false if request.xhr?
end
Jean-Philippe Lang
Forums enhancements:...
r913 # Create a new topic
Jean-Philippe Lang
Per project forums added....
r526 def new
@message = Message.new(params[:message])
Jean-Philippe Lang
Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums....
r906 @message.author = User.current
Jean-Philippe Lang
Forums enhancements:...
r913 @message.board = @board
if params[:message] && User.current.allowed_to?(:edit_messages, @project)
@message.locked = params[:message]['locked']
@message.sticky = params[:message]['sticky']
end
Jean-Philippe Lang
Per project forums added....
r526 if request.post? && @message.save
Jean-Philippe Lang
Added ApplicationController#attach_files as a common method to attach files in all actions....
r977 attach_files(@message, params[:attachments])
Jean-Philippe Lang
Per project forums added....
r526 redirect_to :action => 'show', :id => @message
end
end
Jean-Philippe Lang
Forums enhancements:...
r913 # Reply to a topic
Jean-Philippe Lang
Per project forums added....
r526 def reply
@reply = Message.new(params[:reply])
Jean-Philippe Lang
Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums....
r906 @reply.author = User.current
Jean-Philippe Lang
Per project forums added....
r526 @reply.board = @board
Jean-Philippe Lang
Forums enhancements:...
r913 @topic.children << @reply
Jean-Philippe Lang
Forums: attachments can now be added to replies....
r910 if !@reply.new_record?
Jean-Philippe Lang
Added ApplicationController#attach_files as a common method to attach files in all actions....
r977 attach_files(@reply, params[:attachments])
Jean-Philippe Lang
Forums: attachments can now be added to replies....
r910 end
Jean-Philippe Lang
Forums enhancements:...
r913 redirect_to :action => 'show', :id => @topic
end
# Edit a message
def edit
if params[:message] && User.current.allowed_to?(:edit_messages, @project)
@message.locked = params[:message]['locked']
@message.sticky = params[:message]['sticky']
end
if request.post? && @message.update_attributes(params[:message])
Jean-Philippe Lang
Added ApplicationController#attach_files as a common method to attach files in all actions....
r977 attach_files(@message, params[:attachments])
Jean-Philippe Lang
Forums enhancements:...
r913 flash[:notice] = l(:notice_successful_update)
redirect_to :action => 'show', :id => @topic
end
end
# Delete a messages
def destroy
@message.destroy
redirect_to @message.parent.nil? ?
{ :controller => 'boards', :action => 'show', :project_id => @project, :id => @board } :
{ :action => 'show', :id => @message.parent }
Jean-Philippe Lang
Per project forums added....
r526 end
private
Jean-Philippe Lang
Forums enhancements:...
r913 def find_message
find_board
@message = @board.messages.find(params[:id], :include => :parent)
@topic = @message.root
rescue ActiveRecord::RecordNotFound
render_404
end
def find_board
Jean-Philippe Lang
Per project forums added....
r526 @board = Board.find(params[:board_id], :include => :project)
@project = @board.project
rescue ActiveRecord::RecordNotFound
render_404
end
end