diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/repositories_controller.rb | 14 | ||||
-rw-r--r-- | app/controllers/timelog_controller.rb | 2 | ||||
-rw-r--r-- | app/models/changeset.rb | 10 | ||||
-rw-r--r-- | app/views/repositories/revision.rhtml | 22 |
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 %> + « + <% 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 -%> + » + + <% form_tag do %> + <%= text_field_tag 'rev', @rev, :size => 5 %> + <%= submit_tag 'OK' %> + <% end %> </div> <h2><%= l(:label_revision) %> <%= @changeset.revision %></h2> |