Added version control for wiki pages.
This commit is contained in:
parent
7ba6bc3680
commit
053c665270
36 changed files with 1647 additions and 15 deletions
|
|
@ -37,7 +37,7 @@ class PagesController < ApplicationController
|
|||
# POST /pages
|
||||
# POST /pages.xml
|
||||
def create
|
||||
@page = Page.new(params[:page])
|
||||
@page = current_user.pages.build(params[:page])
|
||||
|
||||
respond_to do |format|
|
||||
if @page.save
|
||||
|
|
@ -56,7 +56,7 @@ class PagesController < ApplicationController
|
|||
def update
|
||||
@page = Page.find(params[:id])
|
||||
|
||||
if @page.update_attributes(params[:page])
|
||||
if @page.update_attributes(params[:page].merge({:user => current_user}))
|
||||
flash[:notice] = 'Seite wurde aktualisiert.'
|
||||
redirect_to wiki_page_path(@page.permalink)
|
||||
else
|
||||
|
|
@ -83,4 +83,16 @@ class PagesController < ApplicationController
|
|||
def all
|
||||
@pages = Page.all :order => 'created_at'
|
||||
end
|
||||
|
||||
def version
|
||||
@page = Page.find(params[:id])
|
||||
@version = @page.versions[params[:version].to_i - 1]
|
||||
end
|
||||
|
||||
def revert
|
||||
@page = Page.find(params[:id])
|
||||
@page.revert_to(params[:version].to_i)
|
||||
|
||||
render :action => 'edit'
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
class Page < ActiveRecord::Base
|
||||
|
||||
belongs_to :user, :foreign_key => 'updated_by'
|
||||
|
||||
acts_as_versioned
|
||||
self.non_versioned_columns += ['permalink', 'created_at']
|
||||
|
||||
validates_presence_of :title, :body
|
||||
validates_uniqueness_of :permalink
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ class User < ActiveRecord::Base
|
|||
has_many :assignments, :dependent => :destroy
|
||||
has_many :tasks, :through => :assignments
|
||||
has_many :send_messages, :class_name => "Message", :foreign_key => "sender_id"
|
||||
has_many :pages, :foreign_key => 'updated_by'
|
||||
|
||||
attr_accessor :password, :setting_attributes
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,22 @@
|
|||
- title @page.title
|
||||
|
||||
#page-versions{:style => "float:right;margin-top:-2%;text-align:right;"}
|
||||
= link_to "Bearbeiten", edit_page_path(@page)
|
||||
= link_to_function "Versionen (#{@page.versions.count})", "Element.toggle('versions')"
|
||||
#versions{:style => "display:none"}
|
||||
%ul
|
||||
- for version in @page.versions.reverse
|
||||
%li
|
||||
= link_to format_datetime(version.updated_at), version_page_path(@page, :version => version.version)
|
||||
= "(#{User.find(version.updated_by).nick})"
|
||||
|
||||
|
||||
= wikified_body @page.body
|
||||
|
||||
%hr/
|
||||
%hr.clear/
|
||||
%p
|
||||
= link_to "Seite bearbeiten", edit_page_path(@page)
|
||||
= link_to "Seite bearbeiten", edit_page_path(@page)
|
||||
|
|
||||
= link_to "Seite löschen", @page, :method => :delete, :confirm => "Achtung, möchtest Du wirklich die Wikiseite löschen?"
|
||||
|
|
||||
= "Zuletzt bearbeitet: #{format_datetime @page.updated_at} (#{@page.user.nick})"
|
||||
|
|
|
|||
11
app/views/pages/version.html.haml
Normal file
11
app/views/pages/version.html.haml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
- title @version.title
|
||||
|
||||
#page-versions{:style => "float:right"}
|
||||
%b= "Version vom #{format_datetime @version.updated_at}"
|
||||
%ul
|
||||
%li= "Autor: #{User.find(@version.updated_by).nick}"
|
||||
%li= link_to "Aktuelle Version sehen", wiki_page_path(:permalink => @page.permalink)
|
||||
%li= link_to "Auf diese Version zurücksetzen", revert_page_path(@page, :version => @version.version)
|
||||
|
||||
= wikified_body @version.body
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue