* Added links to previous and next revisions on revision view (patch by Cyril Mougel slightly edited)
* Fixed TimelogController#report december error * Fixed ProjectsControllerTest#test_activity 1st and 2nd day of the month failure git-svn-id: http://redmine.rubyforge.org/svn/trunk@938 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
3baf086e2d
commit
db002edabd
@ -19,6 +19,9 @@ require 'SVG/Graph/Bar'
|
|||||||
require 'SVG/Graph/BarHorizontal'
|
require 'SVG/Graph/BarHorizontal'
|
||||||
require 'digest/sha1'
|
require 'digest/sha1'
|
||||||
|
|
||||||
|
class ChangesetNotFound < Exception
|
||||||
|
end
|
||||||
|
|
||||||
class RepositoriesController < ApplicationController
|
class RepositoriesController < ApplicationController
|
||||||
layout 'base'
|
layout 'base'
|
||||||
before_filter :find_repository, :except => :edit
|
before_filter :find_repository, :except => :edit
|
||||||
@ -94,14 +97,19 @@ class RepositoriesController < ApplicationController
|
|||||||
|
|
||||||
def revision
|
def revision
|
||||||
@changeset = @repository.changesets.find_by_revision(@rev)
|
@changeset = @repository.changesets.find_by_revision(@rev)
|
||||||
show_error and return unless @changeset
|
raise ChangesetNotFound unless @changeset
|
||||||
@changes_count = @changeset.changes.size
|
@changes_count = @changeset.changes.size
|
||||||
@changes_pages = Paginator.new self, @changes_count, 150, params['page']
|
@changes_pages = Paginator.new self, @changes_count, 150, params['page']
|
||||||
@changes = @changeset.changes.find(:all,
|
@changes = @changeset.changes.find(:all,
|
||||||
:limit => @changes_pages.items_per_page,
|
:limit => @changes_pages.items_per_page,
|
||||||
:offset => @changes_pages.current.offset)
|
: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
|
end
|
||||||
|
|
||||||
def diff
|
def diff
|
||||||
|
@ -54,7 +54,7 @@ class TimelogController < ApplicationController
|
|||||||
begin; @date_to = params[:date_to].to_date; rescue; end
|
begin; @date_to = params[:date_to].to_date; rescue; end
|
||||||
end
|
end
|
||||||
@date_from ||= Date.civil(Date.today.year, 1, 1)
|
@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?
|
unless @criterias.empty?
|
||||||
sql_select = @criterias.collect{|criteria| @available_criterias[criteria][:sql] + " AS " + criteria}.join(', ')
|
sql_select = @criterias.collect{|criteria| @available_criterias[criteria][:sql] + " AS " + criteria}.join(', ')
|
||||||
|
@ -91,4 +91,14 @@ class Changeset < ActiveRecord::Base
|
|||||||
|
|
||||||
self.issues = referenced_issues.uniq
|
self.issues = referenced_issues.uniq
|
||||||
end
|
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
|
end
|
||||||
|
@ -1,8 +1,22 @@
|
|||||||
<div class="contextual">
|
<div class="contextual">
|
||||||
<% form_tag do %>
|
«
|
||||||
<%= l(:label_revision) %>: <%= text_field_tag 'rev', @rev, :size => 5 %>
|
<% unless @changeset.previous.nil? -%>
|
||||||
<%= submit_tag 'OK' %>
|
<%= link_to l(:label_previous), :controller => 'repositories', :action => 'revision', :id => @project, :rev => @changeset.previous.revision %>
|
||||||
<% end %>
|
<% 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>
|
</div>
|
||||||
|
|
||||||
<h2><%= l(:label_revision) %> <%= @changeset.revision %></h2>
|
<h2><%= l(:label_revision) %> <%= @changeset.revision %></h2>
|
||||||
|
@ -111,6 +111,8 @@ div.square {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px;font-size:0.9em;}
|
.contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px;font-size:0.9em;}
|
||||||
|
.contextual input {font-size:0.9em;}
|
||||||
|
|
||||||
.splitcontentleft{float:left; width:49%;}
|
.splitcontentleft{float:left; width:49%;}
|
||||||
.splitcontentright{float:right; width:49%;}
|
.splitcontentright{float:right; width:49%;}
|
||||||
form {display: inline;}
|
form {display: inline;}
|
||||||
|
7
test/fixtures/repositories.yml
vendored
7
test/fixtures/repositories.yml
vendored
@ -6,3 +6,10 @@ repositories_001:
|
|||||||
root_url: svn://localhost
|
root_url: svn://localhost
|
||||||
password: ""
|
password: ""
|
||||||
login: ""
|
login: ""
|
||||||
|
repositories_002:
|
||||||
|
project_id: 2
|
||||||
|
url: svn://localhost/test
|
||||||
|
id: 11
|
||||||
|
root_url: svn://localhost
|
||||||
|
password: ""
|
||||||
|
login: ""
|
||||||
|
@ -89,7 +89,7 @@ class ProjectsControllerTest < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_activity
|
def test_activity
|
||||||
get :activity, :id => 1
|
get :activity, :id => 1, :year => 2.days.ago.to_date.year, :month => 2.days.ago.to_date.month
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_template 'activity'
|
assert_template 'activity'
|
||||||
assert_not_nil assigns(:events_by_day)
|
assert_not_nil assigns(:events_by_day)
|
||||||
|
46
test/functional/repositories_controller_test.rb
Normal file
46
test/functional/repositories_controller_test.rb
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# redMine - project management software
|
||||||
|
# Copyright (C) 2006-2007 Jean-Philippe Lang
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation; either version 2
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
require File.dirname(__FILE__) + '/../test_helper'
|
||||||
|
require 'repositories_controller'
|
||||||
|
|
||||||
|
# Re-raise errors caught by the controller.
|
||||||
|
class RepositoriesController; def rescue_action(e) raise e end; end
|
||||||
|
|
||||||
|
class RepositoriesControllerTest < Test::Unit::TestCase
|
||||||
|
fixtures :projects, :users, :roles, :members, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
|
||||||
|
|
||||||
|
def setup
|
||||||
|
@controller = RepositoriesController.new
|
||||||
|
@request = ActionController::TestRequest.new
|
||||||
|
@response = ActionController::TestResponse.new
|
||||||
|
User.current = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_revision_with_before_nil_and_afer_normal
|
||||||
|
get :revision, {:id => 1, :rev => 1}
|
||||||
|
assert_response :success
|
||||||
|
assert_template 'revision'
|
||||||
|
assert_no_tag :tag => "div", :attributes => { :class => "contextual" },
|
||||||
|
:child => { :tag => "a", :attributes => { :href => '/repositories/revision/1?rev=0'}
|
||||||
|
}
|
||||||
|
assert_tag :tag => "div", :attributes => { :class => "contextual" },
|
||||||
|
:child => { :tag => "a", :attributes => { :href => '/repositories/revision/1?rev=2'}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
@ -39,4 +39,24 @@ class ChangesetTest < Test::Unit::TestCase
|
|||||||
assert fixed.closed?
|
assert fixed.closed?
|
||||||
assert_equal 90, fixed.done_ratio
|
assert_equal 90, fixed.done_ratio
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_previous
|
||||||
|
changeset = Changeset.find_by_revision(3)
|
||||||
|
assert_equal Changeset.find_by_revision(2), changeset.previous
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_previous_nil
|
||||||
|
changeset = Changeset.find_by_revision(1)
|
||||||
|
assert_nil changeset.previous
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_next
|
||||||
|
changeset = Changeset.find_by_revision(2)
|
||||||
|
assert_equal Changeset.find_by_revision(3), changeset.next
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_next_nil
|
||||||
|
changeset = Changeset.find_by_revision(4)
|
||||||
|
assert_nil changeset.next
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -25,14 +25,14 @@ class RepositoryTest < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_create
|
def test_create
|
||||||
repository = Repository::Subversion.new(:project => Project.find(2))
|
repository = Repository::Subversion.new(:project => Project.find(3))
|
||||||
assert !repository.save
|
assert !repository.save
|
||||||
|
|
||||||
repository.url = "svn://localhost"
|
repository.url = "svn://localhost"
|
||||||
assert repository.save
|
assert repository.save
|
||||||
repository.reload
|
repository.reload
|
||||||
|
|
||||||
project = Project.find(2)
|
project = Project.find(3)
|
||||||
assert_equal repository, project.repository
|
assert_equal repository, project.repository
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user