diff --git a/lib/gollum/frontend/app.rb b/lib/gollum/frontend/app.rb
index 8c32904c..553000b7 100644
--- a/lib/gollum/frontend/app.rb
+++ b/lib/gollum/frontend/app.rb
@@ -80,9 +80,11 @@ module Precious
end
get '/history/:name' do
- @name = params[:name]
- wiki = Gollum::Wiki.new($path)
- @page = wiki.page(@name)
+ @name = params[:name]
+ wiki = Gollum::Wiki.new($path)
+ @page = wiki.page(@name)
+ @page_num = [params[:page].to_i, 1].max
+ @versions = @page.versions :page => @page_num
mustache :history
end
diff --git a/lib/gollum/frontend/templates/history.mustache b/lib/gollum/frontend/templates/history.mustache
index 82314b7a..8f17b7b8 100644
--- a/lib/gollum/frontend/templates/history.mustache
+++ b/lib/gollum/frontend/templates/history.mustache
@@ -10,6 +10,7 @@
Select any two versions to
|
+
{{#versions}}
|
@@ -27,6 +28,10 @@
|
{{/versions}}
+
\ No newline at end of file
diff --git a/lib/gollum/frontend/views/history.rb b/lib/gollum/frontend/views/history.rb
index 94240468..d7628d56 100644
--- a/lib/gollum/frontend/views/history.rb
+++ b/lib/gollum/frontend/views/history.rb
@@ -1,26 +1,44 @@
module Precious
module Views
class History < Layout
- attr_reader :page
+ attr_reader :page, :page_num
def title
"History of #{@page.title}"
end
def versions
- i = @page.versions.size + 1
- @page.versions.map do |v|
+ i = @versions.size + 1
+ @versions.map do |v|
i -= 1
- { :id => v.id,
- :id7 => v.id[0..6],
- :num => i,
+ { :id => v.id,
+ :id7 => v.id[0..6],
+ :num => i,
:selected => @page.version.id == v.id,
- :author => v.author.name,
- :message => v.message,
- :date => v.committed_date.strftime("%B %d, %Y"),
+ :author => v.author.name,
+ :message => v.message,
+ :date => v.committed_date.strftime("%B %d, %Y"),
:gravatar => Digest::MD5.hexdigest(v.author.email) }
end
end
+
+ def previous_link
+ label = "« Previous"
+ if @page_num == 1
+ %(#{label})
+ else
+ %(#{label})
+ end
+ end
+
+ def next_link
+ label = "Next »"
+ if @versions.size == Gollum::Page.per_page
+ %(#{label})
+ else
+ %(#{label})
+ end
+ end
end
end
end