blob: 4365b45b28d4b08b9557edec3a2265813216f2e8 [file] [log] [blame]
class VersionsController < ApplicationController
before_filter :authenticate, :except => [:list]
before_filter :authenticate_admin, :only => [:note]
cache_sweeper :sweeper, :only => [:rollback]
FLASH_FILES_IDENTICAL = "The two selected files are identical"
layout 'wiki'
protect_from_forgery :except => :note
def show
@version = Version.find(params[:id])
@page = @version.page
@wiki = @page.site
@baseversion = @version.baseversion
@last_version = @page.last_version
@current_version = @version.current_version
@source_version = @version.source_version
@previous_version = @version.previous_version
end
def diff
if params[:user_version]
@version = Version.find(params[:user_version][:id])
@version.source_version = Version.find(params[:user_version][:version_id])
else
@version = Version.find(params[:id])
@version.source_version = @version.previous_version || @version
end
@versions = @version.page.versions
@page = @version.page
@wiki = @page.site
@version.xhtmldiffpage(@version.source_version)
end
def text
@version = Version.find(params[:id])
render :inline => "<%= (simple_format(strip_tags(@version.html))) %>", :layout => false
end
# Action #note to update the version note by the reviewer, cadmin or
# an admin when there is no reviewer defined yet.
def note
v = Version.find(params[:id])
if v.reviewer.nil? || v.reviewer == session_user || cadmin?
v.note = params[:value]
v.reviewer = session_user
v.save!
v.reload
end
render :text => v.note
end
end