##// END OF EJS Templates
Fix in AttachmentsController#show....
Fix in AttachmentsController#show. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2282 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r2017:7a05f8ed6691
r2280:dacddd989720
Show More
messages_controller.rb
125 lines | 4.3 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
Jean-Philippe Lang
Highlight the current item of the main menu....
r1062 menu_item :boards
Jean-Philippe Lang
Added preview for forum messages....
r1191 before_filter :find_board, :only => [:new, :preview]
before_filter :find_message, :except => [:new, :preview]
Jean-Philippe Lang
Adds permissions to let users edit and/or delete their messages (#854, patch by Markus Knittig with slight changes)....
r2017 before_filter :authorize, :except => [:preview, :edit, :destroy]
Jean-Philippe Lang
Per project forums added....
r526
verify :method => :post, :only => [ :reply, :destroy ], :redirect_to => { :action => :show }
Jean-Philippe Lang
Adds posts quoting functionality (#1825)....
r1771 verify :xhr => true, :only => :quote
Jean-Philippe Lang
Per project forums added....
r526
Jean-Philippe Lang
Adds watch/unwatch functionality at forum topic level (#1912)....
r1876 helper :watchers
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
Jean-Philippe Lang
Adds permissions to let users edit and/or delete their messages (#854, patch by Markus Knittig with slight changes)....
r2017 @replies = @topic.children.find(:all, :include => [:author, :attachments, {:board => :project}])
Jean-Philippe Lang
Add a user preference to choose how comments/replies are displayed: in chronological or reverse chronological order (#589, #776)....
r1183 @replies.reverse! if User.current.wants_comments_in_reverse_order?
Jean-Philippe Lang
Per project forums added....
r526 @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
Jean-Philippe Lang
Adds permissions to let users edit and/or delete their messages (#854, patch by Markus Knittig with slight changes)....
r2017 render_403 and return false unless @message.editable_by?(User.current)
if params[:message]
Jean-Philippe Lang
Forums enhancements:...
r913 @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
Jean-Philippe Lang
Adds permissions to let users edit and/or delete their messages (#854, patch by Markus Knittig with slight changes)....
r2017 render_403 and return false unless @message.destroyable_by?(User.current)
Jean-Philippe Lang
Forums enhancements:...
r913 @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
Jean-Philippe Lang
Adds posts quoting functionality (#1825)....
r1771 def quote
user = @message.author
text = @message.content
content = "#{ll(Setting.default_language, :text_user_wrote, user)}\\n> "
content << text.to_s.strip.gsub(%r{<pre>((.|\s)*?)</pre>}m, '[...]').gsub('"', '\"').gsub(/(\r?\n|\r\n?)/, "\\n> ") + "\\n\\n"
render(:update) { |page|
page.<< "$('message_content').value = \"#{content}\";"
page.show 'reply'
page << "Form.Element.focus('message_content');"
page << "Element.scrollTo('reply');"
page << "$('message_content').scrollTop = $('message_content').scrollHeight - $('message_content').clientHeight;"
}
end
Jean-Philippe Lang
Added preview for forum messages....
r1191 def preview
message = @board.messages.find_by_id(params[:id])
@attachements = message.attachments if message
@text = (params[:message] || params[:reply])[:content]
render :partial => 'common/preview'
end
Jean-Philippe Lang
Per project forums added....
r526 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