Skip to content

Commit a899f0a

Browse files
committed
Simple log view, with previous revisions
1 parent d1406bb commit a899f0a

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

git-wiki.rb

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@ def self.find_all
2626
GitWiki.all_page_blobs.map {|blob| new(blob) }
2727
end
2828

29-
def self.find_or_create(name)
29+
def self.find_or_create(name, rev=nil)
3030
path = name + GitWiki.extension
31-
blob = GitWiki.repository.tree/path
32-
new(blob || Grit::Blob.create(GitWiki.repository, :name => path))
31+
tree = rev ? GitWiki.repository.commit(rev).tree : GitWiki.repository.tree
32+
blob = tree/path || Grit::Blob.create(GitWiki.repository, :name => path)
33+
new(blob)
3334
end
3435

3536
def self.wikify(content)
@@ -57,6 +58,10 @@ def edit_url
5758
"/pages/#{to_s}/edit"
5859
end
5960

61+
def log_url
62+
"/pages/#{to_s}/revisions/"
63+
end
64+
6065
def css_class
6166
@blob.id ? 'existing' : 'new'
6267
end
@@ -69,6 +74,10 @@ def to_html
6974
Page.wikify(RDiscount.new(content).to_html)
7075
end
7176

77+
def log
78+
GitWiki.repository.log('master', @blob.name).map {|commit| commit.to_hash }
79+
end
80+
7281
def save!(data, msg)
7382
msg = "web commit: #{self}" if msg.empty?
7483
Dir.chdir(GitWiki.repository.working_dir) do
@@ -96,6 +105,16 @@ def save!(data, msg)
96105
haml :show
97106
end
98107

108+
get '/pages/:page/revisions/' do
109+
@page = Page.find_or_create(params[:page])
110+
haml :log
111+
end
112+
113+
get '/pages/:page/revisions/:rev' do
114+
@page = Page.find_or_create(params[:page], params[:rev])
115+
haml :show
116+
end
117+
99118
get '/pages/:page/edit' do
100119
@page = Page.find_or_create(params[:page])
101120
haml :edit

views/layout.haml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
- if @page
1414
%li
1515
%a.edit{:href => @page.edit_url}> edit
16+
%li
17+
%a.log{:href => @page.log_url}> log
1618
%li
17-
%a.list{:href => '/pages/'}> list
19+
%a.list{:href => '/pages/'}> all
1820
#content= yield

views/log.haml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
%dl
2+
- @page.log.each do |commit|
3+
%dt= commit['committed_date']
4+
%dd
5+
%a{:href => commit['id']}= commit['message']

0 commit comments

Comments
 (0)