This commit is contained in:
2009-09-09 11:50:34 -03:00
parent 391bb652ab
commit ec640e6c87
15 changed files with 57 additions and 110 deletions

View File

@@ -26,7 +26,7 @@ class ApplicationController < ActionController::Base
before_filter :set_timezone
# Força o login para algumas áreas do sistema
before_filter :require_login, :only => [ :edit, :new, :create, :update, :delete, :destroy, :undelete ]
before_filter :require_login, :only => [ :edit, :new, :create, :update, :delete, :destroy ]
protected
def rescue_action(exception)

View File

@@ -19,8 +19,9 @@ class AttachmentsController < ApplicationController
#verify :method => :post, :only => [ :destroy, :create, :update ],
# :redirect_to => { :controller => 'courses', :action => :show }
before_filter :find_attachment, :except => [ :undelete ]
#after_filter :cache_sweep, :only => [ :create, :update, :destroy ]
before_filter :find_attachment
def show
respond_to do |format|
@@ -84,9 +85,9 @@ class AttachmentsController < ApplicationController
def destroy
@attachment.destroy
flash[:notice] = 'Attachment removed'[]
flash[:undo] = undelete_course_attachment_url(@course, @attachment)
AttachmentDeleteLogEntry.create!(:target_id => @attachment.id, :user => @current_user, :course => @course)
log = AttachmentDeleteLogEntry.create!(:target_id => @attachment.id, :user => @current_user, :course => @course)
flash[:undo] = undo_course_log_url(@course, log)
respond_to do |format|
format.html { redirect_to course_url(@course) }
@@ -103,14 +104,6 @@ class AttachmentsController < ApplicationController
:streaming => 'true')
end
def undelete
@attachment = Attachment.find_with_deleted(params[:id])
@attachment.recover!
flash[:notice] = 'Attachment restored'[]
AttachmentRestoreLogEntry.create!(:target_id => @attachment.id, :user => @current_user, :course => @attachment.course)
redirect_to course_attachment_url(@attachment.course, @attachment)
end
protected
def find_attachment
params[:course_id] = Course.find(:first, :conditions => ['short_name = ?', params[:course_id]], :order => 'period desc').id if !params[:course_id].is_numeric? and !Course.find_by_short_name(params[:course_id]).nil?

View File

@@ -16,7 +16,7 @@
class EventsController < ApplicationController
before_filter :find_event, :except => [ :mini_calendar, :undelete ]
before_filter :find_event, :except => [ :mini_calendar ]
#after_filter :cache_sweep, :only => [ :create, :update, :destroy ]
def index
@@ -76,9 +76,9 @@ class EventsController < ApplicationController
def destroy
@event.destroy
flash[:notice] = 'Event removed'[]
flash[:undo] = undelete_course_event_url(@course, @event)
EventDeleteLogEntry.create!(:target_id => @event.id, :user => @current_user, :course => @course, :version => @event.version)
log = EventDeleteLogEntry.create!(:target_id => @event.id, :user => @current_user, :course => @course, :version => @event.version)
flash[:undo] = undo_course_log_url(@course, log)
respond_to do |format|
format.html { redirect_to course_events_path(@course) }
@@ -98,19 +98,6 @@ class EventsController < ApplicationController
render :template => 'widgets/calendario', :layout => false
end
def undelete
@event = Event.find_with_deleted(params[:id])
@event.recover!
flash[:notice] = "Event restored"[]
EventRestoreLogEntry.create!(:target_id => @event.id, :user => @current_user, :course => @event.course, :version => @event.version)
respond_to do |format|
format.html { redirect_to course_event_url(@event.course, @event) }
end
end
protected
def find_event
params[:course_id] = Course.find(:first, :conditions => ['short_name = ?', params[:course_id]], :order => 'period desc').id if !params[:course_id].is_numeric? and !Course.find_by_short_name(params[:course_id]).nil?

View File

@@ -16,7 +16,7 @@
class LogController < ApplicationController
before_filter :find_course
before_filter :require_login, :only => [ :undo ]
def index
if @course
@@ -39,7 +39,12 @@ class LogController < ApplicationController
@log_entry.undo!(@current_user)
respond_to do |format|
format.html { redirect_to course_log_url }
format.html do
redirect_to course_event_url(@log_entry.course, @log_entry.target_id) if @log_entry.kind_of?(EventDeleteLogEntry)
redirect_to course_attachment_url(@log_entry.course, @log_entry.target_id) if @log_entry.kind_of?(AttachmentDeleteLogEntry)
redirect_to course_news_instance_url(@log_entry.course, @log_entry.target_id) if @log_entry.kind_of?(NewsDeleteLogEntry)
redirect_to course_wiki_instance_url(@log_entry.course, @log_entry.target_id) if @log_entry.kind_of?(WikiDeleteLogEntry)
end
end
end

View File

@@ -20,7 +20,6 @@ class NewsController < ApplicationController
#verify :method => :post, :only => [ :destroy, :create, :update ],
# :redirect_to => { :action => :list }
before_filter :find_new, :except => [ :undelete ]
#after_filter :cache_sweep, :only => [ :create, :update, :destroy ]
def index
@@ -80,9 +79,9 @@ class NewsController < ApplicationController
def destroy
@news.destroy
flash[:notice] = 'News removed'[]
flash[:undo] = undelete_course_news_instance_url(@course, @news)
NewsDeleteLogEntry.create!(:target_id => @news.id, :user => @current_user, :course => @course, :version => @news.version)
log = NewsDeleteLogEntry.create!(:target_id => @news.id, :user => @current_user, :course => @course, :version => @news.version)
flash[:undo] = undo_course_log_url(@course, log)
respond_to do |format|
format.html { redirect_to course_news_path(@course) }
@@ -90,19 +89,6 @@ class NewsController < ApplicationController
end
end
def undelete
@news = News.find_with_deleted(params[:id])
@news.recover!
flash[:notice] = "News restored"[]
NewsRestoreLogEntry.create!(:target_id => @news.id, :user => @current_user, :course => @news.course, :version => @news.version)
respond_to do |format|
format.html { redirect_to course_news_instance_url(@news.course, @news) }
end
end
protected
def find_new
params[:course_id] = Course.find(:first, :conditions => ['short_name = ?', params[:course_id]], :order => 'period desc').id if !params[:course_id].is_numeric? and !Course.find_by_short_name(params[:course_id]).nil?

View File

@@ -23,9 +23,9 @@ class WikiController < ApplicationController
#after_filter :cache_sweep, :only => [ :create, :update, :destroy, :move_up,
# :move_down, :undelete ]
before_filter :find_wiki, :except => [ :preview, :undelete ]
before_filter :find_wiki, :except => [ :preview ]
before_filter :require_login, :only => [ :new, :create, :edit, :update, :destroy,
:move_up, :move_down, :undelete ]
:move_up, :move_down ]
def index
respond_to do |format|
@@ -87,11 +87,12 @@ class WikiController < ApplicationController
end
def destroy
@wiki_page.remove_from_list
@wiki_page.destroy
flash[:notice] = "Wiki page removed"[]
flash[:undo] = undelete_course_wiki_instance_url(@course, @wiki_page.id)
WikiDeleteLogEntry.create!(:target_id => @wiki_page.id, :user => @current_user, :course => @course)
log = WikiDeleteLogEntry.create!(:target_id => @wiki_page.id, :user => @current_user, :course => @course)
flash[:undo] = undo_course_log_url(@course, log)
respond_to do |format|
format.html { redirect_to course_url(@course) }
@@ -146,19 +147,6 @@ class WikiController < ApplicationController
end
end
def undelete
@wiki_page = WikiPage.find_with_deleted(params[:id])
@wiki_page.recover!
@wiki_page.insert_at(1)
flash[:notice] = "Wiki page restored"[]
WikiRestoreLogEntry.create!(:target_id => @wiki_page.id, :user => @current_user, :course => @wiki_page.course)
respond_to do |format|
format.html { redirect_to course_wiki_instance_url(@wiki_page.course, @wiki_page) }
end
end
protected
def find_wiki
params[:course_id] = Course.find(:first, :conditions => ['short_name = ?', params[:course_id]], :order => 'period desc').id if !params[:course_id].is_numeric? and !Course.find_by_short_name(params[:course_id]).nil?

View File

@@ -25,7 +25,7 @@ class EventDeleteLogEntry < EventLogEntry
event.deleted?
end
def undo!(current_user)
event.restore!
event.recover!
EventRestoreLogEntry.create!(:target_id => event.id, :user_id => current_user.id, :course => event.course, :version => event.version)
end
end

View File

@@ -29,8 +29,8 @@ class WikiDeleteLogEntry < WikiLogEntry
wiki_page.deleted?
end
def undo!(current_user)
wiki_page.update_attribute(:deleted_at, nil)
wiki_page.update_attribute(:position, (wiki_page.course.wiki_pages.maximum(:position)||0) + 1)
wiki_page.update_attribute(:deleted_at, nil)
WikiRestoreLogEntry.create!(:target_id => wiki_page.id, :user_id => current_user.id, :course => wiki_page.course)
end
end

View File

@@ -46,9 +46,9 @@ class WikiPage < ActiveRecord::Base
def before_save
if !self.front_page
self.remove_from_list
self.remove_from_list
elsif self.position.nil?
self.insert_at(1)
self.update_attribute(:position, (self.course.wiki_pages.maximum(:position)||0) + 1)
end
end

View File

@@ -8,7 +8,7 @@
- if !@course.wiki_pages.empty?
%ul
- @course.wiki_pages.find(:all, :order => 'title').each do |w|
%li= link_to(w.title, course_wiki_instance_url(@course, w))
%li= link_to(w.title, course_wiki_instance_url(@course, w)) + " " + w.position.to_s
- else
.box