Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9c7b8c8192 | ||
|
|
f26654b29f | ||
|
|
5c62c1cf95 | ||
|
|
2d6adbd7ff | ||
|
|
b0ccaffe1b | ||
|
|
2c37617973 | ||
|
|
567eb70fdb | ||
|
|
de63102925 | ||
|
|
a8fcf9389e | ||
|
|
3e4b36de83 |
2
Gemfile
2
Gemfile
@@ -1,6 +1,6 @@
|
||||
source 'http://rubygems.org'
|
||||
|
||||
gem 'rails', '3.2.9'
|
||||
gem 'rails', '3.2.11'
|
||||
gem "jquery-rails", "~> 2.0.2"
|
||||
gem "i18n", "~> 0.6.0"
|
||||
gem "coderay", "~> 1.0.6"
|
||||
|
||||
@@ -117,8 +117,8 @@ ru:
|
||||
many: "около %{count} часов"
|
||||
other: "около %{count} часа"
|
||||
x_hours:
|
||||
one: "1 hour"
|
||||
other: "%{count} hours"
|
||||
one: "1 час"
|
||||
other: "%{count} часов"
|
||||
x_days:
|
||||
one: "%{count} день"
|
||||
few: "%{count} дня"
|
||||
|
||||
@@ -4,6 +4,16 @@ Redmine - project management software
|
||||
Copyright (C) 2006-2012 Jean-Philippe Lang
|
||||
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
|
||||
|
||||
* Defect #4787: Gannt to PNG - CJK (Chinese, Japanese and Korean) characters appear as ?
|
||||
|
||||
@@ -171,7 +171,7 @@ module SVG
|
||||
protected
|
||||
|
||||
def min_x_value=(value)
|
||||
@min_x_value = DateTime.parse( data[:data][i] ).to_time
|
||||
@min_x_value = DateTime.parse( value ).to_time
|
||||
end
|
||||
|
||||
|
||||
|
||||
@@ -198,7 +198,7 @@ Redmine::MenuManager.map :project_menu do |menu|
|
||||
menu.push :roadmap, { :controller => 'versions', :action => 'index' }, :param => :project_id,
|
||||
:if => Proc.new { |p| p.shared_versions.any? }
|
||||
menu.push :issues, { :controller => 'issues', :action => 'index' }, :param => :project_id, :caption => :label_issue_plural
|
||||
menu.push :new_issue, { :controller => 'issues', :action => 'new' }, :param => :project_id, :caption => :label_issue_new,
|
||||
menu.push :new_issue, { :controller => 'issues', :action => 'new', :copy_from => nil }, :param => :project_id, :caption => :label_issue_new,
|
||||
:html => { :accesskey => Redmine::AccessKeys.key_for(:new_issue) }
|
||||
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
|
||||
|
||||
@@ -4,7 +4,7 @@ module Redmine
|
||||
module VERSION #:nodoc:
|
||||
MAJOR = 2
|
||||
MINOR = 2
|
||||
TINY = 0
|
||||
TINY = 1
|
||||
|
||||
# Branch values:
|
||||
# * official release: nil
|
||||
|
||||
@@ -147,10 +147,10 @@ module Redmine
|
||||
unless block_given?
|
||||
raise "Can not create a macro without a block!"
|
||||
end
|
||||
name = name.to_sym if name.is_a?(String)
|
||||
name = name.to_s.downcase.to_sym
|
||||
available_macros[name] = {:desc => @@desc || ''}.merge(options)
|
||||
@@desc = nil
|
||||
Definitions.send :define_method, "macro_#{name}".downcase, &block
|
||||
Definitions.send :define_method, "macro_#{name}", &block
|
||||
end
|
||||
|
||||
# Sets description for the next macro to be defined
|
||||
|
||||
@@ -169,7 +169,7 @@ http://www.redmine.org, someone@foo.bar
|
||||
<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://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>
|
||||
<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>
|
||||
|
||||
<h3><a name="6" class="wiki-page"></a>Font style</h3>
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ class ActivitiesControllerTest < ActionController::TestCase
|
||||
end
|
||||
|
||||
def test_previous_project_index
|
||||
get :index, :id => 1, :from => 3.days.ago.to_date
|
||||
get :index, :id => 1, :from => 2.days.ago.to_date
|
||||
assert_response :success
|
||||
assert_template 'index'
|
||||
assert_not_nil assigns(:events_by_day)
|
||||
|
||||
@@ -2356,6 +2356,9 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
assert_tag 'select', :attributes => {:name => 'issue[project_id]'},
|
||||
:child => {:tag => 'option', :attributes => {:value => '2', :selected => nil}, :content => 'OnlineStore'}
|
||||
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
|
||||
|
||||
def test_new_as_copy_with_attachments_should_show_copy_attachments_checkbox
|
||||
|
||||
@@ -78,6 +78,12 @@ class Redmine::WikiFormatting::MacrosTest < ActionView::TestCase
|
||||
assert_equal "<p>Baz: (arg1,arg2) (String) (line1\nline2)</p>", textilizable("{{baz(arg1, arg2)\nline1\nline2\n}}")
|
||||
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
|
||||
Redmine::WikiFormatting::Macros.macro :foo do |obj, args|
|
||||
args.any? ? "args: #{args.join(',')}" : "no args"
|
||||
|
||||
Reference in New Issue
Block a user