From 8d084cf690a78eae0df5c9e13b34ed3c08f6e161 Mon Sep 17 00:00:00 2001 From: hukl Date: Fri, 1 May 2009 18:14:59 +0200 Subject: introducing the restore revision functionality --- app/controllers/revisions_controller.rb | 6 ++++++ app/views/revisions/show.html.erb | 14 ++++++++++++-- config/routes.rb | 2 +- public/stylesheets/admin.css | 4 ++++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/app/controllers/revisions_controller.rb b/app/controllers/revisions_controller.rb index 7ae22f8..e2c0432 100644 --- a/app/controllers/revisions_controller.rb +++ b/app/controllers/revisions_controller.rb @@ -32,4 +32,10 @@ class RevisionsController < ApplicationController @node = Node.find(params[:id]) end + def restore + page = Page.find(params[:id]) + page.node.restore_revision! page.revision + flash[:notice] = "Revision #{page.revision} restored" + redirect_to :back + end end diff --git a/app/views/revisions/show.html.erb b/app/views/revisions/show.html.erb index 2a4a9a1..ebda18d 100644 --- a/app/views/revisions/show.html.erb +++ b/app/views/revisions/show.html.erb @@ -23,11 +23,21 @@ <%= page.title %> <%= page.user.try(:login) %> <%= page.updated_at %> - <%= link_to 'show', node_path(page.node) %> + + <%= link_to 'show', node_path(page.node) %> + + + <%= link_to( + 'restore', + restore_revision_path(page), + :method => :put, + :confirm => "Restore this revision?" + ) %> + <% end %> - <%= submit_tag 'Diff revisions' %> + <%= submit_tag 'Diff revisions' %> diff --git a/config/routes.rb b/config/routes.rb index e96ea13..bf4ba10 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -14,7 +14,7 @@ ActionController::Routing::Routes.draw do |map| map.resources :occurrences map.resources :events - map.resources :revisions, :member => {:diff => :post} + map.resources :revisions, :member => {:diff => :post, :restore => :put} map.resources :pages map.resources :nodes, :member => {:publish => :put, :unlock => :put} map.logout '/logout', :controller => 'sessions', :action => 'destroy' diff --git a/public/stylesheets/admin.css b/public/stylesheets/admin.css index 52d657e..982a231 100644 --- a/public/stylesheets/admin.css +++ b/public/stylesheets/admin.css @@ -159,6 +159,10 @@ table#revisions td.title { width: 450px; } +table#revisions td.date { + width: 175px; +} + table#revisions tr.header:hover { background-color: #ffffff; } -- cgit v1.3