Compare commits

..
1 Commits
Author SHA1 Message Date
Jean-Philippe Lang b1b08e2c89 tagged version 2.2.0
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/tags/2.2.0@11045 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-12-18 12:43:14 +00:00
11 changed files with 10 additions and 29 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
source 'http://rubygems.org' source 'http://rubygems.org'
gem 'rails', '3.2.11' gem 'rails', '3.2.9'
gem "jquery-rails", "~> 2.0.2" gem "jquery-rails", "~> 2.0.2"
gem "i18n", "~> 0.6.0" gem "i18n", "~> 0.6.0"
gem "coderay", "~> 1.0.6" gem "coderay", "~> 1.0.6"
+2 -2
View File
@@ -117,8 +117,8 @@ ru:
many: "около %{count} часов" many: "около %{count} часов"
other: "около %{count} часа" other: "около %{count} часа"
x_hours: x_hours:
one: "1 час" one: "1 hour"
other: "%{count} часов" other: "%{count} hours"
x_days: x_days:
one: "%{count} день" one: "%{count} день"
few: "%{count} дня" few: "%{count} дня"
-10
View File
@@ -4,16 +4,6 @@ Redmine - project management software
Copyright (C) 2006-2012 Jean-Philippe Lang Copyright (C) 2006-2012 Jean-Philippe Lang
http://www.redmine.org/ http://www.redmine.org/
== 2013-01-09 v2.2.1
* Upgrade to Rails 3.2.11
* Defect #12652: "Copy ticket" selects "new ticket"
* Defect #12691: Textile Homepage Dead?
* Defect #12711: incorrect fix of lib/SVG/Graph/TimeSeries.rb
* Defect #12744: Unable to call a macro with a name that contains uppercase letters
* Defect #12776: Security vulnerability in Rails 3.2.10 (CVE-2013-0156)
* Patch #12630: Russian "x_hours" translation
== 2012-12-18 v2.2.0 == 2012-12-18 v2.2.0
* Defect #4787: Gannt to PNG - CJK (Chinese, Japanese and Korean) characters appear as ? * Defect #4787: Gannt to PNG - CJK (Chinese, Japanese and Korean) characters appear as ?
+1 -1
View File
@@ -171,7 +171,7 @@ module SVG
protected protected
def min_x_value=(value) def min_x_value=(value)
@min_x_value = DateTime.parse( value ).to_time @min_x_value = DateTime.parse( data[:data][i] ).to_time
end end
+1 -1
View File
@@ -198,7 +198,7 @@ Redmine::MenuManager.map :project_menu do |menu|
menu.push :roadmap, { :controller => 'versions', :action => 'index' }, :param => :project_id, menu.push :roadmap, { :controller => 'versions', :action => 'index' }, :param => :project_id,
:if => Proc.new { |p| p.shared_versions.any? } :if => Proc.new { |p| p.shared_versions.any? }
menu.push :issues, { :controller => 'issues', :action => 'index' }, :param => :project_id, :caption => :label_issue_plural menu.push :issues, { :controller => 'issues', :action => 'index' }, :param => :project_id, :caption => :label_issue_plural
menu.push :new_issue, { :controller => 'issues', :action => 'new', :copy_from => nil }, :param => :project_id, :caption => :label_issue_new, menu.push :new_issue, { :controller => 'issues', :action => 'new' }, :param => :project_id, :caption => :label_issue_new,
:html => { :accesskey => Redmine::AccessKeys.key_for(:new_issue) } :html => { :accesskey => Redmine::AccessKeys.key_for(:new_issue) }
menu.push :gantt, { :controller => 'gantts', :action => 'show' }, :param => :project_id, :caption => :label_gantt menu.push :gantt, { :controller => 'gantts', :action => 'show' }, :param => :project_id, :caption => :label_gantt
menu.push :calendar, { :controller => 'calendars', :action => 'show' }, :param => :project_id, :caption => :label_calendar menu.push :calendar, { :controller => 'calendars', :action => 'show' }, :param => :project_id, :caption => :label_calendar
+1 -1
View File
@@ -4,7 +4,7 @@ module Redmine
module VERSION #:nodoc: module VERSION #:nodoc:
MAJOR = 2 MAJOR = 2
MINOR = 2 MINOR = 2
TINY = 1 TINY = 0
# Branch values: # Branch values:
# * official release: nil # * official release: nil
+2 -2
View File
@@ -147,10 +147,10 @@ module Redmine
unless block_given? unless block_given?
raise "Can not create a macro without a block!" raise "Can not create a macro without a block!"
end end
name = name.to_s.downcase.to_sym name = name.to_sym if name.is_a?(String)
available_macros[name] = {:desc => @@desc || ''}.merge(options) available_macros[name] = {:desc => @@desc || ''}.merge(options)
@@desc = nil @@desc = nil
Definitions.send :define_method, "macro_#{name}", &block Definitions.send :define_method, "macro_#{name}".downcase, &block
end end
# Sets description for the next macro to be defined # Sets description for the next macro to be defined
+1 -1
View File
@@ -169,7 +169,7 @@ http://www.redmine.org, someone@foo.bar
<h2><a name="5" class="wiki-page"></a>Text formatting</h2> <h2><a name="5" class="wiki-page"></a>Text formatting</h2>
<p>For things such as headlines, bold, tables, lists, Redmine supports Textile syntax. See <a class="external" href="http://en.wikipedia.org/wiki/Textile_%28markup_language%29">http://en.wikipedia.org/wiki/Textile_(markup_language)</a> for information on using any of these features. A few samples are included below, but the engine is capable of much more of that.</p> <p>For things such as headlines, bold, tables, lists, Redmine supports Textile syntax. See <a class="external" href="http://www.textism.com/tools/textile/">http://www.textism.com/tools/textile/</a> for information on using any of these features. A few samples are included below, but the engine is capable of much more of that.</p>
<h3><a name="6" class="wiki-page"></a>Font style</h3> <h3><a name="6" class="wiki-page"></a>Font style</h3>
@@ -37,7 +37,7 @@ class ActivitiesControllerTest < ActionController::TestCase
end end
def test_previous_project_index def test_previous_project_index
get :index, :id => 1, :from => 2.days.ago.to_date get :index, :id => 1, :from => 3.days.ago.to_date
assert_response :success assert_response :success
assert_template 'index' assert_template 'index'
assert_not_nil assigns(:events_by_day) assert_not_nil assigns(:events_by_day)
@@ -2356,9 +2356,6 @@ class IssuesControllerTest < ActionController::TestCase
assert_tag 'select', :attributes => {:name => 'issue[project_id]'}, assert_tag 'select', :attributes => {:name => 'issue[project_id]'},
:child => {:tag => 'option', :attributes => {:value => '2', :selected => nil}, :content => 'OnlineStore'} :child => {:tag => 'option', :attributes => {:value => '2', :selected => nil}, :content => 'OnlineStore'}
assert_tag 'input', :attributes => {:name => 'copy_from', :value => '1'} assert_tag 'input', :attributes => {:name => 'copy_from', :value => '1'}
# "New issue" menu item should not link to copy
assert_select '#main-menu a.new-issue[href=/projects/ecookbook/issues/new]'
end end
def test_new_as_copy_with_attachments_should_show_copy_attachments_checkbox def test_new_as_copy_with_attachments_should_show_copy_attachments_checkbox
@@ -78,12 +78,6 @@ class Redmine::WikiFormatting::MacrosTest < ActionView::TestCase
assert_equal "<p>Baz: (arg1,arg2) (String) (line1\nline2)</p>", textilizable("{{baz(arg1, arg2)\nline1\nline2\n}}") assert_equal "<p>Baz: (arg1,arg2) (String) (line1\nline2)</p>", textilizable("{{baz(arg1, arg2)\nline1\nline2\n}}")
end end
def test_macro_name_with_upper_case
Redmine::WikiFormatting::Macros.macro(:UpperCase) {|obj, args| "Upper"}
assert_equal "<p>Upper</p>", textilizable("{{UpperCase}}")
end
def test_multiple_macros_on_the_same_line def test_multiple_macros_on_the_same_line
Redmine::WikiFormatting::Macros.macro :foo do |obj, args| Redmine::WikiFormatting::Macros.macro :foo do |obj, args|
args.any? ? "args: #{args.join(',')}" : "no args" args.any? ? "args: #{args.join(',')}" : "no args"