##// END OF EJS Templates
User custom fields can now be set as editable so that users can edit them on 'My account'....
User custom fields can now be set as editable so that users can edit them on 'My account'. For existing user custom fields, this new attribute is set to false by default to preserve the prior behaviour (it can turned on by editing the custom field in admin area). Note: on the registration form, *required* custom fields will be displayed even if they are not defined as editable so that the account can be created. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2276 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r2017:7a05f8ed6691
r2274:12792d8068d0
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