Undelete
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user