##// 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
journals_controller.rb
110 lines | 3.6 KiB | text/x-ruby | RubyLexer
/ app / controllers / journals_controller.rb
Jean-Philippe Lang
Keep track of issue description changes (#746)....
r4834 # Redmine - project management software
Jean-Philippe Lang
Updates copyright for 2016....
r14856 # Copyright (C) 2006-2016 Jean-Philippe Lang
Jean-Philippe Lang
Administrators can edit issue notes....
r1091 #
# 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/journals_controller.rb....
r6763 #
Jean-Philippe Lang
Administrators can edit issue notes....
r1091 # 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/journals_controller.rb....
r6763 #
Jean-Philippe Lang
Administrators can edit issue notes....
r1091 # 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 JournalsController < ApplicationController
Jean-Philippe Lang
Use regular edit/update actions and named routes for JournalsController....
r14692 before_filter :find_journal, :only => [:edit, :update, :diff]
Eric Davis
Refactor: move IssuesController#reply to JournalsController...
r3827 before_filter :find_issue, :only => [:new]
Eric Davis
Refactor: move IssuesController#changes to JournalsController#index....
r3920 before_filter :find_optional_project, :only => [:index]
Jean-Philippe Lang
Use regular edit/update actions and named routes for JournalsController....
r14692 before_filter :authorize, :only => [:new, :edit, :update, :diff]
Jean-Philippe Lang
Separation of RSS/API auth actions....
r6077 accept_rss_auth :index
Jean-Philippe Lang
Keep track of issue description changes (#746)....
r4834 menu_item :issues
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/journals_controller.rb....
r6763
Eric Davis
Refactor: move IssuesController#changes to JournalsController#index....
r3920 helper :issues
Jean-Philippe Lang
Fixed: error on JournalsController#index when custom fields are present (#7795)....
r4901 helper :custom_fields
Eric Davis
Refactor: move IssuesController#changes to JournalsController#index....
r3920 helper :queries
include QueriesHelper
helper :sort
include SortHelper
def index
retrieve_query
sort_init 'id', 'desc'
sort_update(@query.sortable_columns)
if @query.valid?
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/journals_controller.rb....
r6763 @journals = @query.journals(:order => "#{Journal.table_name}.created_on DESC",
Eric Davis
Refactor: move IssuesController#changes to JournalsController#index....
r3920 :limit => 25)
end
@title = (@project ? @project.name : Setting.app_title) + ": " + (@query.new_record? ? l(:label_changes_details) : @query.name)
render :layout => false, :content_type => 'application/atom+xml'
rescue ActiveRecord::RecordNotFound
render_404
end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/journals_controller.rb....
r6763
Jean-Philippe Lang
Keep track of issue description changes (#746)....
r4834 def diff
@issue = @journal.issue
if params[:detail_id].present?
@detail = @journal.details.find_by_id(params[:detail_id])
else
Jean-Philippe Lang
Show long text custom field changes as a diff (#15236)....
r13572 @detail = @journal.details.detect {|d| d.property == 'attr' && d.prop_key == 'description'}
end
unless @issue && @detail
render_404
return false
end
if @detail.property == 'cf'
unless @detail.custom_field && @detail.custom_field.visible_by?(@issue.project, User.current)
raise ::Unauthorized
end
Jean-Philippe Lang
Keep track of issue description changes (#746)....
r4834 end
@diff = Redmine::Helpers::Diff.new(@detail.value, @detail.old_value)
end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/journals_controller.rb....
r6763
Eric Davis
Refactor: move IssuesController#reply to JournalsController...
r3827 def new
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 @journal = Journal.visible.find(params[:journal_id]) if params[:journal_id]
if @journal
user = @journal.user
text = @journal.notes
Eric Davis
Refactor: move IssuesController#reply to JournalsController...
r3827 else
user = @issue.author
text = @issue.description
end
# Replaces pre blocks with [...]
Jean-Philippe Lang
Fixed flawed regexp for removing pre blocks when quoting notes (#16353)....
r12694 text = text.to_s.strip.gsub(%r{<pre>(.*?)</pre>}m, '[...]')
Jean-Philippe Lang
Removes RJS from JournalsController....
r9871 @content = "#{ll(Setting.default_language, :text_user_wrote, user)}\n> "
@content << text.gsub(/(\r?\n|\r\n?)/, "\n> ") + "\n\n"
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 rescue ActiveRecord::RecordNotFound
render_404
Eric Davis
Refactor: move IssuesController#reply to JournalsController...
r3827 end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/journals_controller.rb....
r6763
Jean-Philippe Lang
Administrators can edit issue notes....
r1091 def edit
Jean-Philippe Lang
Keep track of issue description changes (#746)....
r4834 (render_403; return false) unless @journal.editable_by?(User.current)
Jean-Philippe Lang
Use regular edit/update actions and named routes for JournalsController....
r14692 respond_to do |format|
# TODO: implement non-JS journal update
format.js
end
end
def update
(render_403; return false) unless @journal.editable_by?(User.current)
@journal.update_attributes(:notes => params[:notes]) if params[:notes]
@journal.destroy if @journal.details.empty? && @journal.notes.blank?
call_hook(:controller_journals_edit_post, { :journal => @journal, :params => params})
respond_to do |format|
format.html { redirect_to issue_path(@journal.journalized) }
format.js
Jean-Philippe Lang
Administrators can edit issue notes....
r1091 end
end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/journals_controller.rb....
r6763
Jean-Philippe Lang
Keep track of issue description changes (#746)....
r4834 private
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/journals_controller.rb....
r6763
Jean-Philippe Lang
Administrators can edit issue notes....
r1091 def find_journal
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 @journal = Journal.visible.find(params[:id])
Jean-Philippe Lang
Fixed: wiki and changeset links not displayed when previewing issue description or notes....
r1124 @project = @journal.journalized.project
Jean-Philippe Lang
Administrators can edit issue notes....
r1091 rescue ActiveRecord::RecordNotFound
render_404
end
end