summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/repositories_controller.rb14
-rw-r--r--app/controllers/timelog_controller.rb2
-rw-r--r--app/models/changeset.rb10
-rw-r--r--app/views/repositories/revision.rhtml22
4 files changed, 40 insertions, 8 deletions
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
index 8ff464c5b..b332c7213 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/repositories_controller.rb
@@ -19,6 +19,9 @@ require 'SVG/Graph/Bar'
require 'SVG/Graph/BarHorizontal'
require 'digest/sha1'
+class ChangesetNotFound < Exception
+end
+
class RepositoriesController < ApplicationController
layout 'base'
before_filter :find_repository, :except => :edit
@@ -94,14 +97,19 @@ class RepositoriesController < ApplicationController
def revision
@changeset = @repository.changesets.find_by_revision(@rev)
- show_error and return unless @changeset
+ raise ChangesetNotFound unless @changeset
@changes_count = @changeset.changes.size
@changes_pages = Paginator.new self, @changes_count, 150, params['page']
@changes = @changeset.changes.find(:all,
:limit => @changes_pages.items_per_page,
:offset => @changes_pages.current.offset)
-
- render :action => "revision", :layout => false if request.xhr?
+
+ respond_to do |format|
+ format.html
+ format.js {render :layout => false}
+ end
+ rescue ChangesetNotFound
+ show_error
end
def diff
diff --git a/app/controllers/timelog_controller.rb b/app/controllers/timelog_controller.rb
index 1a1bace3a..f90c4527e 100644
--- a/app/controllers/timelog_controller.rb
+++ b/app/controllers/timelog_controller.rb
@@ -54,7 +54,7 @@ class TimelogController < ApplicationController
begin; @date_to = params[:date_to].to_date; rescue; end
end
@date_from ||= Date.civil(Date.today.year, 1, 1)
- @date_to ||= Date.civil(Date.today.year, Date.today.month+1, 1) - 1
+ @date_to ||= (Date.civil(Date.today.year, Date.today.month, 1) >> 1) - 1
unless @criterias.empty?
sql_select = @criterias.collect{|criteria| @available_criterias[criteria][:sql] + " AS " + criteria}.join(', ')
diff --git a/app/models/changeset.rb b/app/models/changeset.rb
index 355a5754c..1b79104c4 100644
--- a/app/models/changeset.rb
+++ b/app/models/changeset.rb
@@ -91,4 +91,14 @@ class Changeset < ActiveRecord::Base
self.issues = referenced_issues.uniq
end
+
+ # Returns the previous changeset
+ def previous
+ @previous ||= Changeset.find(:first, :conditions => ['revision < ? AND repository_id = ?', self.revision, self.repository_id], :order => 'revision DESC')
+ end
+
+ # Returns the next changeset
+ def next
+ @next ||= Changeset.find(:first, :conditions => ['revision > ? AND repository_id = ?', self.revision, self.repository_id], :order => 'revision ASC')
+ end
end
diff --git a/app/views/repositories/revision.rhtml b/app/views/repositories/revision.rhtml
index 32f8583a7..64d1668bc 100644
--- a/app/views/repositories/revision.rhtml
+++ b/app/views/repositories/revision.rhtml
@@ -1,8 +1,22 @@
<div class="contextual">
-<% form_tag do %>
-<%= l(:label_revision) %>: <%= text_field_tag 'rev', @rev, :size => 5 %>
-<%= submit_tag 'OK' %>
-<% end %>
+ &#171;
+ <% unless @changeset.previous.nil? -%>
+ <%= link_to l(:label_previous), :controller => 'repositories', :action => 'revision', :id => @project, :rev => @changeset.previous.revision %>
+ <% else -%>
+ <%= l(:label_previous) %>
+ <% end -%>
+|
+ <% unless @changeset.next.nil? -%>
+ <%= link_to l(:label_next), :controller => 'repositories', :action => 'revision', :id => @project, :rev => @changeset.next.revision %>
+ <% else -%>
+ <%= l(:label_next) %>
+ <% end -%>
+ &#187;&nbsp;
+
+ <% form_tag do %>
+ <%= text_field_tag 'rev', @rev, :size => 5 %>
+ <%= submit_tag 'OK' %>
+ <% end %>
</div>
<h2><%= l(:label_revision) %> <%= @changeset.revision %></h2>