blob: c25c8bb5a9f8ad979ce74363fe5069f112031e18 [file] [log] [blame]
class ReviewController < ApplicationController
before_filter :authenticate_admin
before_filter :find_record
protect_from_forgery :except => [:note,:toggle_done, :assign]
# Action #toggle_done toggles the <tt>done</tt> column.
def toggle_done
if @record.reviewer.nil? || @record.reviewer == session_user || cadmin?
if @record.done == 'Y'
@record.update_attributes(:done => 'N')
else
@record.update_attributes(:done => 'Y')
end
@html = "<%= link_to_done_toggle(@record) %>"
else
@html = "<script language=\"JavaScript\">alert('To change the done flag you need to be the reviewer or " +
"the central administrator (#{User.find_central_admin.name})!')</script><%= link_to_done_toggle(@record) %>"
end
@div_id = "#{params['class_name']}#{params['id']}_done_toggle"
respond_to do |format|
format.js
end
end
#Action #review assigns current User as the reviewer
def assign
@html = "<%= link_to_reviewer(@record) %>"
if @record.reviewer.nil?
@record.update_attributes(:reviewer => session_user)
elsif @record.reviewer == session_user
@record.update_attributes(:reviewer => nil)
elsif cadmin?
@record.update_attributes(:reviewer => session_user)
elsif !@record.reviewer.nil? && !cadmin?
@html = "<script language=\"JavaScript\">alert('Only the central administrator (#{User.find_central_admin.name}) can change or clear the reviewer!')</script><%= link_to_reviewer(@record) %>"
end
respond_to do |format|
format.js
end
end
# Action #review_note updates the review note
def note
if @record.reviewer.nil? || @record.reviewer == session_user || cadmin?
@js_msg = ''
@record.review_note = params[:value]
@record.save!
else
@js_msg = "<script language=\"JavaScript\">alert('Only the central administrator (#{User.find_central_admin.name}) or the reviewer can update the review note!')</script>"
end
@record.reload
render :layout => false, :inline => "<%= @record.review_note %>" + @js_msg
end
#######
private
#######
def find_record
logger.debug("Find record using params: #{params.inspect}")
case params['class_name']
when 'Version' then @record = Version.find(params[:id])
when 'UserVersion' then @record = Version.find(params[:id])
when 'BaselineProcessProcessVersion' then @record = Version.find(params[:id])
when 'Upload' then @record = Upload.find(params[:id])
when 'Comment' then @record = Comment.find(params[:id])
else @record = DaText.find(params[:id])
end
end
end