Commit 85974948 authored by Valery Sizov's avatar Valery Sizov

Wiki: history

parent b565cd19
...@@ -4,7 +4,11 @@ class WikisController < ApplicationController ...@@ -4,7 +4,11 @@ class WikisController < ApplicationController
layout "project" layout "project"
def show def show
if params[:old_page_id]
@wiki = @project.wikis.find(params[:old_page_id])
else
@wiki = @project.wikis.where(:slug => params[:id]).order("created_at").last @wiki = @project.wikis.where(:slug => params[:id]).order("created_at").last
end
respond_to do |format| respond_to do |format|
if @wiki if @wiki
format.html format.html
...@@ -22,6 +26,7 @@ class WikisController < ApplicationController ...@@ -22,6 +26,7 @@ class WikisController < ApplicationController
def create def create
@wiki = @project.wikis.new(params[:wiki]) @wiki = @project.wikis.new(params[:wiki])
@wiki.user = current_user
respond_to do |format| respond_to do |format|
if @wiki.save if @wiki.save
...@@ -32,6 +37,10 @@ class WikisController < ApplicationController ...@@ -32,6 +37,10 @@ class WikisController < ApplicationController
end end
end end
def history
@wikis = @project.wikis.where(:slug => params[:id]).order("created_at")
end
def destroy def destroy
@wiki = @project.wikis.find(params[:id]) @wiki = @project.wikis.find(params[:id])
@wiki.destroy @wiki.destroy
......
class Wiki < ActiveRecord::Base class Wiki < ActiveRecord::Base
belongs_to :project belongs_to :project
belongs_to :user
validates :content, :title, :presence => true validates :content, :title, :user_id, :presence => true
validates :title, :length => 1..250 validates :title, :length => 1..250
before_update :set_slug before_update :set_slug
......
%h2 Versions
%table
%thead
%tr
%th #
%th last edit
%th created by
%tbody
- @wikis.each_with_index do |wiki_page, i|
%tr
%td= i + 1
%td= link_to wiki_page.created_at.to_s(:short), project_wiki_path(@project, wiki_page, :old_page_id => wiki_page.id)
%td= wiki_page.user.name
%h3 %h3
= @wiki.title = @wiki.title
- if can? current_user, :write_wiki, @project - if can? current_user, :write_wiki, @project
= link_to history_project_wiki_path(@project, @wiki), :class => "right btn small" do
History
= link_to edit_project_wiki_path(@project, @wiki), :class => "right btn small" do = link_to edit_project_wiki_path(@project, @wiki), :class => "right btn small" do
Edit Edit
......
...@@ -56,7 +56,11 @@ Gitlab::Application.routes.draw do ...@@ -56,7 +56,11 @@ Gitlab::Application.routes.draw do
get "files" get "files"
end end
resources :wikis, :only => [:show, :edit, :destroy, :create] resources :wikis, :only => [:show, :edit, :destroy, :create] do
member do
get "history"
end
end
resource :repository do resource :repository do
member do member do
......
class AddUserToWiki < ActiveRecord::Migration
def change
add_column :wikis, :user_id, :integer
end
end
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# #
# It's strongly recommended to check this file into your version control system. # It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20120219140810) do ActiveRecord::Schema.define(:version => 20120219193300) do
create_table "issues", :force => true do |t| create_table "issues", :force => true do |t|
t.string "title" t.string "title"
...@@ -166,6 +166,7 @@ ActiveRecord::Schema.define(:version => 20120219140810) do ...@@ -166,6 +166,7 @@ ActiveRecord::Schema.define(:version => 20120219140810) do
t.datetime "created_at", :null => false t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
t.string "slug" t.string "slug"
t.integer "user_id"
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment