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