##// END OF EJS Templates
Introduce virtual MenuNodes (#15880)....
Introduce virtual MenuNodes (#15880). They are characterized by having a blank url. they will only be rendered if the user is authorized to see at least one of its children. they render as links which do nothing when clicked. Patch by Jan Schulz-Hofen. git-svn-id: http://svn.redmine.org/redmine/trunk@15501 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r14856:cda9c63d9c21
r15119:53710d80fc88
Show More
messages_controller.rb
142 lines | 4.8 KiB | text/x-ruby | RubyLexer
/ app / controllers / messages_controller.rb
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775 # Redmine - project management software
Jean-Philippe Lang
Updates copyright for 2016....
r14856 # Copyright (C) 2006-2016 Jean-Philippe Lang
Jean-Philippe Lang
Per project forums added....
r526 #
# 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.
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775 #
Jean-Philippe Lang
Per project forums added....
r526 # 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.
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775 #
Jean-Philippe Lang
Per project forums added....
r526 # 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
Contextual quick search (#3263)....
r2829 default_search_scope :messages
Jean-Philippe Lang
Added preview for forum messages....
r1191 before_filter :find_board, :only => [:new, :preview]
Jean-Philippe Lang
Merged ajax_upload branch (#3957)....
r10748 before_filter :find_attachments, :only => [:preview]
Jean-Philippe Lang
Added preview for forum messages....
r1191 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
Jean-Philippe Lang
Support for subforums (#3831)....
r9959 helper :boards
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
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775 include AttachmentsHelper
Jean-Philippe Lang
Attachments can now be added to wiki pages (original patch by Pavol Murin). Only authorized users can add/delete attachments....
r538
Jean-Philippe Lang
Adds pagination to forum messages (#4664)....
r3259 REPLIES_PER_PAGE = 25 unless const_defined?(:REPLIES_PER_PAGE)
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775
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 pagination to forum messages (#4664)....
r3259 page = params[:page]
# Find the page of the requested reply
if params[:r] && page.nil?
Jean-Philippe Lang
Cleanup of finders with :conditions option....
r11733 offset = @topic.children.where("#{Message.table_name}.id < ?", params[:r].to_i).count
Jean-Philippe Lang
Adds pagination to forum messages (#4664)....
r3259 page = 1 + offset / REPLIES_PER_PAGE
end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775
Jean-Philippe Lang
Adds pagination to forum messages (#4664)....
r3259 @reply_count = @topic.children.count
Jean-Philippe Lang
Deprecation warnings (#12774)....
r10909 @reply_pages = Paginator.new @reply_count, REPLIES_PER_PAGE, page
Jean-Philippe Lang
Replaces find(:all) calls....
r10687 @replies = @topic.children.
includes(:author, :attachments, {:board => :project}).
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 reorder("#{Message.table_name}.created_on ASC, #{Message.table_name}.id ASC").
Jean-Philippe Lang
Use #per_page instead of #items_per_page....
r11195 limit(@reply_pages.per_page).
Jean-Philippe Lang
Deprecation warnings (#12774)....
r10909 offset(@reply_pages.offset).
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 to_a
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775
Jean-Philippe Lang
Per project forums added....
r526 @reply = Message.new(:subject => "RE: #{@message.subject}")
render :action => "show", :layout => false if request.xhr?
end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775
Jean-Philippe Lang
Forums enhancements:...
r913 # Create a new topic
Jean-Philippe Lang
Per project forums added....
r526 def new
Jean-Philippe Lang
Prevent mass-assignment when adding/updating a forum message (#10390)....
r9013 @message = Message.new
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
Jean-Philippe Lang
Prevent mass-assignment when adding/updating a forum message (#10390)....
r9013 @message.safe_attributes = params[:message]
Jean-Philippe Lang
Preserve uploaded files when creating a forum topic....
r8820 if request.post?
@message.save_attachments(params[:attachments])
if @message.save
call_hook(:controller_messages_new_after_save, { :params => params, :message => @message})
render_attachment_warning_if_needed(@message)
Jean-Philippe Lang
Use named routes....
r9820 redirect_to board_message_path(@board, @message)
Jean-Philippe Lang
Preserve uploaded files when creating a forum topic....
r8820 end
Jean-Philippe Lang
Per project forums added....
r526 end
end
Jean-Philippe Lang
Forums enhancements:...
r913 # Reply to a topic
Jean-Philippe Lang
Per project forums added....
r526 def reply
Jean-Philippe Lang
Prevent mass-assignment when adding/updating a forum message (#10390)....
r9013 @reply = Message.new
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
Prevent mass-assignment when adding/updating a forum message (#10390)....
r9013 @reply.safe_attributes = params[:reply]
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?
Eric Davis
Added more plugin hooks:...
r2674 call_hook(:controller_messages_reply_after_save, { :params => params, :message => @reply})
Eric Davis
Refactor: Moved ApplicationController#attach_files to the Attachment model...
r3409 attachments = Attachment.attach_files(@reply, params[:attachments])
Eric Davis
Refactor: Decouple failed attachments and the flash messages...
r3414 render_attachment_warning_if_needed(@reply)
Jean-Philippe Lang
Forums: attachments can now be added to replies....
r910 end
Jean-Philippe Lang
Use named routes....
r9820 redirect_to board_message_path(@board, @topic, :r => @reply)
Jean-Philippe Lang
Forums enhancements:...
r913 end
# Edit a message
def edit
Jean-Philippe Lang
Removes "xxx and return" calls (#4446)....
r3071 (render_403; return false) unless @message.editable_by?(User.current)
Jean-Philippe Lang
Prevent mass-assignment when adding/updating a forum message (#10390)....
r9013 @message.safe_attributes = params[:message]
if request.post? && @message.save
Eric Davis
Refactor: Moved ApplicationController#attach_files to the Attachment model...
r3409 attachments = Attachment.attach_files(@message, params[:attachments])
Eric Davis
Refactor: Decouple failed attachments and the flash messages...
r3414 render_attachment_warning_if_needed(@message)
Jean-Philippe Lang
Forums enhancements:...
r913 flash[:notice] = l(:notice_successful_update)
Jean-Philippe Lang
Adds the ability to move threads between project forums (#2452). 'Edit message' permission is required....
r2560 @message.reload
Jean-Philippe Lang
Use named routes....
r9820 redirect_to board_message_path(@message.board, @message.root, :r => (@message.parent_id && @message.id))
Jean-Philippe Lang
Forums enhancements:...
r913 end
end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775
Jean-Philippe Lang
Forums enhancements:...
r913 # Delete a messages
def destroy
Jean-Philippe Lang
Removes "xxx and return" calls (#4446)....
r3071 (render_403; return false) unless @message.destroyable_by?(User.current)
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 r = @message.to_param
Jean-Philippe Lang
Forums enhancements:...
r913 @message.destroy
Jean-Philippe Lang
Use named routes....
r9820 if @message.parent
redirect_to board_message_path(@board, @message.parent, :r => r)
else
redirect_to project_board_path(@project, @board)
end
Jean-Philippe Lang
Per project forums added....
r526 end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775
Jean-Philippe Lang
Adds posts quoting functionality (#1825)....
r1771 def quote
Jean-Philippe Lang
Removes RJS from MessagesController....
r9870 @subject = @message.subject
@subject = "RE: #{@subject}" unless @subject.starts_with?('RE:')
@content = "#{ll(Setting.default_language, :text_user_wrote, @message.author)}\n> "
Jean-Philippe Lang
Fixed flawed regexp for removing pre blocks when quoting messages (#16353)....
r12698 @content << @message.content.to_s.strip.gsub(%r{<pre>(.*?)</pre>}m, '[...]').gsub(/(\r?\n|\r\n?)/, "\n> ") + "\n\n"
Jean-Philippe Lang
Adds posts quoting functionality (#1825)....
r1771 end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775
Jean-Philippe Lang
Added preview for forum messages....
r1191 def preview
message = @board.messages.find_by_id(params[:id])
@text = (params[:message] || params[:reply])[:content]
Jean-Philippe Lang
Set @previewed for rendering preview partial....
r9962 @previewed = message
Jean-Philippe Lang
Added preview for forum messages....
r1191 render :partial => 'common/preview'
end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775
Jean-Philippe Lang
Per project forums added....
r526 private
Jean-Philippe Lang
Forums enhancements:...
r913 def find_message
Jean-Philippe Lang
Fixed that requesting a message from an invalid forum should respond with 404 (#13232)....
r11216 return unless find_board
Toshi MARUYAMA
Rails4: replace deprecated passing options to find at MessagesController...
r12245 @message = @board.messages.includes(:parent).find(params[:id])
Jean-Philippe Lang
Forums enhancements:...
r913 @topic = @message.root
rescue ActiveRecord::RecordNotFound
render_404
end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/messages_controller.rb....
r6775
Jean-Philippe Lang
Forums enhancements:...
r913 def find_board
Toshi MARUYAMA
Rails4: replace deprecated passing options to find at MessagesController...
r12245 @board = Board.includes(:project).find(params[:board_id])
Jean-Philippe Lang
Per project forums added....
r526 @project = @board.project
rescue ActiveRecord::RecordNotFound
render_404
Jean-Philippe Lang
Fixed that requesting a message from an invalid forum should respond with 404 (#13232)....
r11216 nil
Jean-Philippe Lang
Per project forums added....
r526 end
end