From 34dc06a85f6530e3692c665a63a8d53e560aacad Mon Sep 17 00:00:00 2001 From: Romano Licker Date: Tue, 11 Oct 2011 18:16:43 +0200 Subject: [PATCH 01/57] [#652] fixes wrong redirect after login when url contains umlaute --- app/controllers/application_controller.rb | 2 +- test/integration/account_test.rb | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 57d77f54..e374fe00 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -262,7 +262,7 @@ class ApplicationController < ActionController::Base end def redirect_back_or_default(default) - back_url = CGI.unescape(params[:back_url].to_s) + back_url = URI.escape(CGI.unescape(params[:back_url].to_s)) if !back_url.blank? begin uri = URI.parse(back_url) diff --git a/test/integration/account_test.rb b/test/integration/account_test.rb index cc7565f0..39869d28 100644 --- a/test/integration/account_test.rb +++ b/test/integration/account_test.rb @@ -32,6 +32,15 @@ class AccountTest < ActionController::IntegrationTest assert_template "my/account" end + def test_redirect_after_login + target_url = "/my/account?q=%C3%A4" + + get target_url + post "/login", :username => 'jsmith', :password => 'jsmith', :back_url => @response.redirected_to[:back_url] + + assert_redirected_to target_url + end + def test_autologin user = User.find(1) Setting.autologin = "7" From a8e997dbf6be198255b553cd76cc1989ddcaa6e5 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Tue, 23 Aug 2011 14:37:51 -0700 Subject: [PATCH 02/57] Fully qualify column names --- app/controllers/calendars_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/calendars_controller.rb b/app/controllers/calendars_controller.rb index 6161b6ed..79b9cdd2 100644 --- a/app/controllers/calendars_controller.rb +++ b/app/controllers/calendars_controller.rb @@ -36,9 +36,9 @@ class CalendarsController < ApplicationController if @query.valid? events = [] events += @query.issues(:include => [:tracker, :assigned_to, :priority], - :conditions => ["((start_date BETWEEN ? AND ?) OR (due_date BETWEEN ? AND ?))", @calendar.startdt, @calendar.enddt, @calendar.startdt, @calendar.enddt] + :conditions => ["((#{Issue.table_name}.start_date BETWEEN ? AND ?) OR (#{Issue.table_name}.due_date BETWEEN ? AND ?))", @calendar.startdt, @calendar.enddt, @calendar.startdt, @calendar.enddt] ) - events += @query.versions(:conditions => ["effective_date BETWEEN ? AND ?", @calendar.startdt, @calendar.enddt]) + events += @query.versions(:conditions => ["#{Version.table_name}.effective_date BETWEEN ? AND ?", @calendar.startdt, @calendar.enddt]) @calendar.events = events end From 8ee8ef02fea608305a075d7b3474e5196e834853 Mon Sep 17 00:00:00 2001 From: Holger Just Date: Sun, 16 Oct 2011 20:02:55 +0200 Subject: [PATCH 03/57] Extract the NullFormatter into its own files --- lib/redmine/wiki_formatting.rb | 29 ----------------- .../null_formatter/formatter.rb | 32 +++++++++++++++++++ .../wiki_formatting/null_formatter/helper.rb | 30 +++++++++++++++++ 3 files changed, 62 insertions(+), 29 deletions(-) create mode 100644 lib/redmine/wiki_formatting/null_formatter/formatter.rb create mode 100644 lib/redmine/wiki_formatting/null_formatter/helper.rb diff --git a/lib/redmine/wiki_formatting.rb b/lib/redmine/wiki_formatting.rb index d75b0db7..54d1429d 100644 --- a/lib/redmine/wiki_formatting.rb +++ b/lib/redmine/wiki_formatting.rb @@ -94,34 +94,5 @@ module Redmine end end end - - # Default formatter module - module NullFormatter - class Formatter - include ActionView::Helpers::TagHelper - include ActionView::Helpers::TextHelper - include ActionView::Helpers::UrlHelper - - def initialize(text) - @text = text - end - - def to_html(*args) - simple_format(auto_link(CGI::escapeHTML(@text))) - end - end - - module Helper - def wikitoolbar_for(field_id) - end - - def heads_for_wiki_formatter - end - - def initial_page_content(page) - page.pretty_title.to_s - end - end - end end end diff --git a/lib/redmine/wiki_formatting/null_formatter/formatter.rb b/lib/redmine/wiki_formatting/null_formatter/formatter.rb new file mode 100644 index 00000000..350c8141 --- /dev/null +++ b/lib/redmine/wiki_formatting/null_formatter/formatter.rb @@ -0,0 +1,32 @@ +#-- copyright +# ChiliProject is a project management system. +# +# Copyright (C) 2010-2011 the ChiliProject Team +# +# 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. +# +# See doc/COPYRIGHT.rdoc for more details. +#++ + +module Redmine + module WikiFormatting + module NullFormatter + class Formatter + include ActionView::Helpers::TagHelper + include ActionView::Helpers::TextHelper + include ActionView::Helpers::UrlHelper + + def initialize(text) + @text = text + end + + def to_html(*args) + simple_format(auto_link(CGI::escapeHTML(@text))) + end + end + end + end +end \ No newline at end of file diff --git a/lib/redmine/wiki_formatting/null_formatter/helper.rb b/lib/redmine/wiki_formatting/null_formatter/helper.rb new file mode 100644 index 00000000..6d4f32c2 --- /dev/null +++ b/lib/redmine/wiki_formatting/null_formatter/helper.rb @@ -0,0 +1,30 @@ +#-- copyright +# ChiliProject is a project management system. +# +# Copyright (C) 2010-2011 the ChiliProject Team +# +# 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. +# +# See doc/COPYRIGHT.rdoc for more details. +#++ + +module Redmine + module WikiFormatting + module NullFormatter + module Helper + def wikitoolbar_for(field_id) + end + + def heads_for_wiki_formatter + end + + def initial_page_content(page) + page.pretty_title.to_s + end + end + end + end +end \ No newline at end of file From 61b9939be3bd12f4637cb04faf2fe756a427545d Mon Sep 17 00:00:00 2001 From: Holger Just Date: Sun, 16 Oct 2011 20:03:23 +0200 Subject: [PATCH 04/57] Add basic tests for the Null Formatter --- .../wiki_formatting/null_formatter_test.rb | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 test/unit/lib/redmine/wiki_formatting/null_formatter_test.rb diff --git a/test/unit/lib/redmine/wiki_formatting/null_formatter_test.rb b/test/unit/lib/redmine/wiki_formatting/null_formatter_test.rb new file mode 100644 index 00000000..70c1b783 --- /dev/null +++ b/test/unit/lib/redmine/wiki_formatting/null_formatter_test.rb @@ -0,0 +1,43 @@ +#-- copyright +# ChiliProject is a project management system. +# +# Copyright (C) 2010-2011 the ChiliProject Team +# +# 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. +# +# See doc/COPYRIGHT.rdoc for more details. +#++ + +require File.expand_path('../../../../../test_helper', __FILE__) + +class Redmine::WikiFormatting::NullFormatterTest < HelperTestCase + + def setup + @formatter = Redmine::WikiFormatting::NullFormatter::Formatter + end + + def test_plain_text + assert_html_output("This is some input" => "This is some input") + end + + def test_escaping + assert_html_output( + 'this is a
<%= l(:text_length_between, :min => 1, :max => Project::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_project_identifier_info) %> <% end %>

<%= f.text_field :homepage, :size => 60 %>

diff --git a/config/locales/de.yml b/config/locales/de.yml index 37795e51..264919a4 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -870,7 +870,7 @@ de: text_tip_issue_begin_day: Aufgabe, die an diesem Tag beginnt text_tip_issue_end_day: Aufgabe, die an diesem Tag endet text_tip_issue_begin_end_day: Aufgabe, die an diesem Tag beginnt und endet - text_project_identifier_info: 'Kleinbuchstaben (a-z), Ziffern, Binde- und Unterstriche erlaubt.
Einmal gespeichert, kann die Kennung nicht mehr geändert werden.' + text_project_identifier_info: 'Kleinbuchstaben (a-z), Ziffern, Binde- und Unterstriche erlaubt, muss mit einem Kleinbuchstaben beginnen.
Einmal gespeichert, kann die Kennung nicht mehr geändert werden.' text_caracters_maximum: "Max. %{count} Zeichen." text_caracters_minimum: "Muss mindestens %{count} Zeichen lang sein." text_length_between: "Länge zwischen %{min} und %{max} Zeichen." diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 941636da..dc6f05ad 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -878,7 +878,7 @@ en-GB: text_tip_issue_begin_day: task beginning this day text_tip_issue_end_day: task ending this day text_tip_issue_begin_end_day: task beginning and ending this day - text_project_identifier_info: 'Only lower case letters (a-z), numbers, dashes and underscores are allowed.
Once saved, the identifier cannot be changed.' + text_project_identifier_info: 'Only lower case letters (a-z), numbers, dashes and underscores are allowed, must start with a lower case letter.
Once saved, the identifier cannot be changed.' text_caracters_maximum: "%{count} characters maximum." text_caracters_minimum: "Must be at least %{count} characters long." text_length_between: "Length between %{min} and %{max} characters." diff --git a/config/locales/en.yml b/config/locales/en.yml index 7dc63957..8560fc8f 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -887,7 +887,7 @@ en: text_tip_issue_begin_day: issue beginning this day text_tip_issue_end_day: issue ending this day text_tip_issue_begin_end_day: issue beginning and ending this day - text_project_identifier_info: 'Only lower case letters (a-z), numbers, dashes and underscores are allowed.
Once saved, the identifier cannot be changed.' + text_project_identifier_info: 'Only lower case letters (a-z), numbers, dashes and underscores are allowed, must start with a lower case letter.
Once saved, the identifier cannot be changed.' text_caracters_maximum: "%{count} characters maximum." text_caracters_minimum: "Must be at least %{count} characters long." text_length_between: "Length between %{min} and %{max} characters." diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 5f8d8317..b3a38b9d 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -859,7 +859,7 @@ fr: text_tip_issue_begin_day: tâche commençant ce jour text_tip_issue_end_day: tâche finissant ce jour text_tip_issue_begin_end_day: tâche commençant et finissant ce jour - text_project_identifier_info: 'Seuls les lettres minuscules (a-z), chiffres, tirets et tirets bas sont autorisés.
Un fois sauvegardé, l''identifiant ne pourra plus être modifié.' + text_project_identifier_info: 'Seuls les lettres minuscules (a-z), chiffres, tirets et tirets bas sont autorisés, doit commencer par une minuscule.
Un fois sauvegardé, l''identifiant ne pourra plus être modifié.' text_caracters_maximum: "%{count} caractères maximum." text_caracters_minimum: "%{count} caractères minimum." text_length_between: "Longueur comprise entre %{min} et %{max} caractères." diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 11940f3c..81ecda1e 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -243,6 +243,90 @@ function randomKey(size) { return key; } +// Automatic project identifier generation +var projectIdentifierLocked; +var projectIdentifierDefault; +var projectIdentifierMaxLength; + +function generateProjectIdentifier() { + var identifier = $('project_name').getValue() // project name + var diacriticsMap = [ + {'base':'a', 'letters':/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g}, + {'base':'aa','letters':/[\uA733\uA732]/g}, + {'base':'ae','letters':/[\u00E4\u00E6\u01FD\u01E3\u00C4\u00C6\u01FC\u01E2]/g}, + {'base':'ao','letters':/[\uA735\uA734]/g}, + {'base':'au','letters':/[\uA737\uA736]/g}, + {'base':'av','letters':/[\uA739\uA73B\uA738\uA73A]/g}, + {'base':'ay','letters':/[\uA73D\uA73C]/g}, + {'base':'b', 'letters':/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g}, + {'base':'c', 'letters':/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g}, + {'base':'d', 'letters':/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g}, + {'base':'dz','letters':/[\u01F3\u01C6\u01F1\u01C4\u01F2\u01C5]/g}, + {'base':'e', 'letters':/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g}, + {'base':'f', 'letters':/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g}, + {'base':'g', 'letters':/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g}, + {'base':'h', 'letters':/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g}, + {'base':'hv','letters':/[\u0195]/g}, + {'base':'i', 'letters':/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g}, + {'base':'j', 'letters':/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249\u004A\u24BF\uFF2A\u0134\u0248]/g}, + {'base':'k', 'letters':/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g}, + {'base':'l', 'letters':/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g}, + {'base':'lj','letters':/[\u01C9\u01C7\u01C8]/g}, + {'base':'m', 'letters':/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g}, + {'base':'n', 'letters':/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g}, + {'base':'nj','letters':/[\u01CC\u01CA\u01CB]/g}, + {'base':'o', 'letters':/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g}, + {'base':'oe','letters': /[\u00F6\u0153\u00D6\u0152]/g}, + {'base':'oi','letters':/[\u01A3\u01A2]/g}, + {'base':'ou','letters':/[\u0223\u0222]/g}, + {'base':'oo','letters':/[\uA74F\uA74E]/g}, + {'base':'p','letters':/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g}, + {'base':'q','letters':/[\u0071\u24E0\uFF51\u024B\uA757\uA759\u0051\u24C6\uFF31\uA756\uA758\u024A]/g}, + {'base':'r','letters':/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g}, + {'base':'s','letters':/[\u0073\u24E2\uFF53\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g}, + {'base':'ss','letters':/[\u00DF]/g}, + {'base':'t','letters':/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g}, + {'base':'tz','letters':/[\uA729\uA728]/g}, + {'base':'u','letters':/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g}, + {'base':'ue','letters':/[\u00FC\u00DC]/g}, + {'base':'v','letters':/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g}, + {'base':'vy','letters':/[\uA761\uA760]/g}, + {'base':'w','letters':/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g}, + {'base':'x','letters':/[\u0078\u24E7\uFF58\u1E8B\u1E8D\u0058\u24CD\uFF38\u1E8A\u1E8C]/g}, + {'base':'y','letters':/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g}, + {'base':'z','letters':/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g} + ]; + + for(var i=0; i hyphen + identifier = identifier.replace(/^[-\d]*|-*$/g, ''); // remove hyphens and numbers at beginning and hyphens at end + identifier = identifier.toLowerCase(); // to lower + identifier = identifier.substr(0,projectIdentifierMaxLength); // max characters + return identifier; +} + +function observeProjectName() { + var f = function() { + if(!projectIdentifierLocked) { + $('project_identifier').setValue(generateProjectIdentifier()); + } + }; + Event.observe('project_name', 'keyup', f); +} + +function observeProjectIdentifier() { + var f = function() { + if($('project_identifier').getValue() != '' && $('project_identifier').getValue() != generateProjectIdentifier()) { + projectIdentifierLocked = true; + } else { + projectIdentifierLocked = false; + } + }; + Event.observe('project_identifier', 'keyup', f); +} + function observeParentIssueField(url) { new Ajax.Autocompleter('issue_parent_issue_id', 'parent_issue_candidates', From 21a45b4e52f0fcd80849f3b8ac08e8472eca74bd Mon Sep 17 00:00:00 2001 From: Holger Just Date: Sun, 30 Oct 2011 11:24:11 +0100 Subject: [PATCH 51/57] [#676] Enforce UTF-8 encodings on the params hash Contributed by Toshi MARUYAMA --- app/controllers/application_controller.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 424c05e0..c5da0b44 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -43,6 +43,24 @@ class ApplicationController < ActionController::Base end end + # FIXME: Remove this when all of Rack and Rails have learned how to + # properly use encodings + before_filter :params_filter + def params_filter + self.utf8nize!(params) if RUBY_VERSION >= '1.9' + end + def utf8nize!(obj) + if obj.is_a? String + obj.respond_to?(:force_encoding) ? obj.force_encoding("UTF-8") : obj + elsif obj.is_a? Hash + obj.each {|k, v| obj[k] = self.utf8nize!(v)} + elsif obj.is_a? Array + obj.each {|v| self.utf8nize!(v)} + else + obj + end + end + before_filter :user_setup, :check_if_login_required, :set_localization filter_parameter_logging :password From cb2086f652eb9e3d5850612d62e60874212574ee Mon Sep 17 00:00:00 2001 From: Holger Just Date: Sat, 8 Oct 2011 17:53:05 +0200 Subject: [PATCH 52/57] [#647] Fix XSS in textile image syntax. Image URLs are not properly escaped in the bundled RedCloth3 library. It thus allowed an XSS vector. The patch was adapted from r7570 from Redmine by Etiene Massip. See also http://www.redmine.org/issues/9245. --- lib/redcloth3.rb | 2 +- .../lib/redmine/wiki_formatting/textile_formatter_test.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/redcloth3.rb b/lib/redcloth3.rb index 8148ddee..de04f02f 100644 --- a/lib/redcloth3.rb +++ b/lib/redcloth3.rb @@ -939,7 +939,7 @@ class RedCloth3 < String stln,algn,atts,url,title,href,href_a1,href_a2 = $~[1..8] htmlesc title atts = pba( atts ) - atts = " src=\"#{ url }\"#{ atts }" + atts = " src=\"#{ htmlesc url.dup }\"#{ atts }" atts << " title=\"#{ title }\"" if title atts << " alt=\"#{ title }\"" # size = @getimagesize($url); diff --git a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb index a5ea0936..9ba76474 100644 --- a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb @@ -194,6 +194,14 @@ EXPECTED assert_equal '

[msg1][msg2]

', to_html('[msg1][msg2]') end + def test_textile_should_escape_image_urls + # this is onclick="alert('XSS');" in encoded form + raw = '!/images/comment.png"onclick=alert('XSS');"!' + expected = '

' + + assert_equal expected.gsub(%r{\s+}, ''), to_html(raw).gsub(%r{\s+}, '') + end + private def assert_html_output(to_test, expect_paragraph = true) From 09b1545c371afecc8771e1e68d3ada88e7430204 Mon Sep 17 00:00:00 2001 From: Holger Just Date: Mon, 31 Oct 2011 17:25:19 +0100 Subject: [PATCH 53/57] Update i18n labels --- config/locales/bg.yml | 1 + config/locales/bs.yml | 1 + config/locales/ca.yml | 1 + config/locales/cs.yml | 1 + config/locales/da.yml | 1 + config/locales/el.yml | 1 + config/locales/en-GB.yml | 1 + config/locales/es.yml | 1 + config/locales/eu.yml | 1 + config/locales/fa.yml | 1 + config/locales/fi.yml | 1 + config/locales/gl.yml | 1 + config/locales/he.yml | 1 + config/locales/hr.yml | 1 + config/locales/hu.yml | 1 + config/locales/id.yml | 1 + config/locales/it.yml | 1 + config/locales/ja.yml | 1 + config/locales/ko.yml | 1 + config/locales/lt.yml | 1 + config/locales/lv.yml | 1 + config/locales/mk.yml | 1 + config/locales/mn.yml | 1 + config/locales/nl.yml | 1 + config/locales/no.yml | 1 + config/locales/pl.yml | 1 + config/locales/pt-BR.yml | 1 + config/locales/pt.yml | 1 + config/locales/ro.yml | 1 + config/locales/ru.yml | 1 + config/locales/sk.yml | 1 + config/locales/sl.yml | 1 + config/locales/sr-YU.yml | 1 + config/locales/sr.yml | 1 + config/locales/sv.yml | 1 + config/locales/th.yml | 1 + config/locales/tr.yml | 1 + config/locales/uk.yml | 1 + config/locales/vi.yml | 1 + config/locales/zh-TW.yml | 1 + config/locales/zh.yml | 1 + 41 files changed, 41 insertions(+) diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 6da3e6b5..8d02d9d3 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -982,3 +982,4 @@ bg: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/bs.yml b/config/locales/bs.yml index e94af5d2..0cd4fd42 100644 --- a/config/locales/bs.yml +++ b/config/locales/bs.yml @@ -996,3 +996,4 @@ bs: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 18b18be8..c59ab948 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -985,3 +985,4 @@ ca: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/cs.yml b/config/locales/cs.yml index eb78ad2a..c681fb0f 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1206,3 +1206,4 @@ cs: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/da.yml b/config/locales/da.yml index 098ff07d..0b1502e8 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -998,3 +998,4 @@ da: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/el.yml b/config/locales/el.yml index ba93e4e3..04484edd 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -982,3 +982,4 @@ el: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index dc6f05ad..84772faa 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -986,3 +986,4 @@ en-GB: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/es.yml b/config/locales/es.yml index c534ea06..57792641 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1019,3 +1019,4 @@ es: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 52a9b39c..c853b62c 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -986,3 +986,4 @@ eu: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/fa.yml b/config/locales/fa.yml index d97c39c6..cab17df4 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -985,3 +985,4 @@ fa: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/fi.yml b/config/locales/fi.yml index e441efb9..a4be9a38 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1003,3 +1003,4 @@ fi: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 0134bf4c..061af18b 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -994,3 +994,4 @@ gl: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/he.yml b/config/locales/he.yml index 6347ca20..3e6e099d 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -987,3 +987,4 @@ he: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/hr.yml b/config/locales/hr.yml index 7ff4b075..9d793697 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -989,3 +989,4 @@ hr: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 5c94ffd6..e236ffa1 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1001,3 +1001,4 @@ description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/id.yml b/config/locales/id.yml index b232379b..f3ca947d 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -990,3 +990,4 @@ id: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/it.yml b/config/locales/it.yml index f2665185..4d3d36c2 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -983,3 +983,4 @@ it: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/ja.yml b/config/locales/ja.yml index c46e0eff..a674f606 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1004,3 +1004,4 @@ ja: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/ko.yml b/config/locales/ko.yml index a43951c8..9c57a6d5 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1034,3 +1034,4 @@ ko: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/lt.yml b/config/locales/lt.yml index a5a897f8..e6bd2b53 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -1042,3 +1042,4 @@ lt: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 7100e54d..29eb0f73 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -977,3 +977,4 @@ lv: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/mk.yml b/config/locales/mk.yml index b68bba49..77063c52 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -982,3 +982,4 @@ mk: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/mn.yml b/config/locales/mn.yml index 1d10a102..d5494c02 100644 --- a/config/locales/mn.yml +++ b/config/locales/mn.yml @@ -983,3 +983,4 @@ mn: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 075c2652..3f070a1f 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -964,3 +964,4 @@ nl: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/no.yml b/config/locales/no.yml index 513fb926..5df97464 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -969,3 +969,4 @@ description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 2b2a4c58..d7309ab8 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -999,3 +999,4 @@ pl: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 44af5062..3ec28595 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -1006,3 +1006,4 @@ pt-BR: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 385e1548..708d8703 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -986,3 +986,4 @@ pt: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 69d5af79..693e3a02 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -975,3 +975,4 @@ ro: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/ru.yml b/config/locales/ru.yml index a0bc1ea8..3c2570c9 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1095,3 +1095,4 @@ ru: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 5eab9563..b8860953 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -977,3 +977,4 @@ sk: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 38c68c89..06a8cae1 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -978,3 +978,4 @@ sl: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/sr-YU.yml b/config/locales/sr-YU.yml index 5bf4555a..a22625f9 100644 --- a/config/locales/sr-YU.yml +++ b/config/locales/sr-YU.yml @@ -982,3 +982,4 @@ sr-YU: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/sr.yml b/config/locales/sr.yml index d773548e..de5eb8dd 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -983,3 +983,4 @@ sr: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 87a01828..c5d54652 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1024,3 +1024,4 @@ sv: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/th.yml b/config/locales/th.yml index 08ba3867..45e92683 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -979,3 +979,4 @@ th: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 110f03f7..ab5c585a 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1001,3 +1001,4 @@ tr: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 42d04921..bb1074bd 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -978,3 +978,4 @@ uk: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 8762ec45..c9d39ab5 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1033,3 +1033,4 @@ vi: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index a91f0efc..a5700fa2 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1064,3 +1064,4 @@ description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) diff --git a/config/locales/zh.yml b/config/locales/zh.yml index b828130e..007c772e 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -996,3 +996,4 @@ zh: description_filter: Filter description_choose_project: Projects description_date_from: Enter start date + label_deleted_custom_field: (deleted custom field) From ba93eb24c40d093ecbe1d8733c00e6fe7f0d9798 Mon Sep 17 00:00:00 2001 From: Holger Just Date: Mon, 31 Oct 2011 17:26:14 +0100 Subject: [PATCH 54/57] Fix trailing whitespace --- app/views/queries/_form.rhtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/queries/_form.rhtml b/app/views/queries/_form.rhtml index 39486d90..5db801a2 100644 --- a/app/views/queries/_form.rhtml +++ b/app/views/queries/_form.rhtml @@ -30,7 +30,7 @@
<%= l(:label_sort) %> <% 3.times do |i| %> -<%= i+1 %>: +<%= i+1 %>: <%= label_tag "query_sort_criteria_attribute_" + i.to_s, l(:description_query_sort_criteria_attribute), :class => "hidden-for-sighted" %> <%= select_tag("query[sort_criteria][#{i}][]", options_for_select([[]] + query.available_columns.select(&:sortable?).collect {|column| [column.caption, column.name.to_s]}, @query.sort_criteria_key(i)), :id => "query_sort_criteria_attribute_" + i.to_s)%> <%= label_tag "query_sort_criteria_direction_" + i.to_s, l(:description_query_sort_criteria_direction), :class => "hidden-for-sighted" %> From 29ab88c7f3a3005f1934bb859858a16e9ac4134a Mon Sep 17 00:00:00 2001 From: Holger Just Date: Mon, 31 Oct 2011 17:28:34 +0100 Subject: [PATCH 55/57] Update changelog for 2.4.0 release --- doc/CHANGELOG.rdoc | 211214 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 211214 insertions(+) diff --git a/doc/CHANGELOG.rdoc b/doc/CHANGELOG.rdoc index 0da18786..3069f255 100644 --- a/doc/CHANGELOG.rdoc +++ b/doc/CHANGELOG.rdoc @@ -1,5 +1,211219 @@ = ChiliProject changelog +== 2011-10-31 v2.4.0 + +* Bug #277: News list is missing Avatars +* Bug #458: rmagick specified in the Gemfile doesn't build in Ubuntu 11.04 +* Bug #591: ArgumentError (invalid byte sequence in US-ASCII) +* Bug #640: internal error on journals for deleted custom fields +* Bug #647: XSS: User input for images is not properly sanitized +* Bug #652: wrong redirect after login when url contains umlaute +* Bug #667: Label all input field and control tags +* Bug #668: Duplicate "Modules" section on Copy Project +* Feature #221: Use the git sha for the revision +* Feature #240: Link to global news on projects list +* Feature #615: Generate project identifier automatically with JavaScript + +== 2011-10-04 v2.3.0 + +* Bug #594: Wiki Diff somehow off +* Bug #617: Gemfile: Missing database related platform block for Windows + RubyInstaller +* Bug #619: Redmine.pm allows anonymous read access to repositories even if Anonymous role prohibits it +* Bug #633: Update from 1.x to 2.x impossible under rare but valid circumstances +* Feature #355: Turn on/off the if the start date will autofill by default +* Feature #566: The "Watcher" filter should show all users. +* Feature #644: Add Check/Uncheck all links to project form + +== 2011-08-27 v2.2.0 + +* Bug #256: requires_redmine_plugin should defer loading plugins if not all dependencies are met +* Bug #517: Remove included lib/faster_csv.rb +* Bug #551: Hardcoded French string in wiki/diff.rhtml +* Bug #552: Hardcoded English string in RepositoriesHelper +* Bug #557: Calendar links for previous/next month contains double escaped characters +* Bug #561: PDF export of issue gives TypeError (can't convert nil into String) +* Bug #573: acts_as_searchable definition in WikiPage may be insufficient and cause SQL errors +* Bug #577: Invalid watcher user error when adding an invalid user as watcher +* Bug #586: TabularFormBuilder doesn't work with subforms +* Feature #275: Implement requires_chiliproject and requires_chiliproject_plugin methods +* Task #584: Upgrade to Rails 2.3.14 + +== 2011-08-01 v2.1.1 + +* Bug #547: Multiple XSS vulnerabilities + +== 2011-07-29 v2.1.0 + +* Bug #191: Add Next/Previous links to the top of search results +* Bug #467: uninitialized constant Journal::Journaled +* Bug #498: Wrong filters for int and float custom fields +* Bug #511: Encoding of strings coming out of SQLite +* Bug #512: reposman.rb do not work properly in Gentoo Linux. +* Bug #513: Attached files in "comment" no longer link to file +* Bug #514: Multiple emails for each forum post +* Bug #523: Gzipped history of wiki pages is garbeled during an update of an older version to 2.0 +* Bug #530: Start date default should consider timezone +* Bug #536: CSRF Protection +* Bug #537: Accessing version of newly created WikiContent results in NoMethodError +* Bug #540: Hook helper_issues_show_detail_after_setting gets different parameters in Chili 1.x and 2.0 +* Bug #542: Double initial journal for migrated wiki history +* Bug #543: Journalized touch on journal update causes StaleObjectErrors +* Bug #544: XSS in app/views/issues/show.rhtml +* Feature #499: Due date sort order should sort issues with no due date to the end of the list +* Feature #506: Support for "local" Gemfile - Gemfile.local +* Feature #526: Bulgarian translation +* Feature #539: Remove dead code in IssueHelper +* Task #518: Document how to create a Journal using acts_as_journalized + +== 2011-07-01 v2.0.0 + +* Bug #262: Fix line endings +* Bug #341: Remove English strings from RepositoriesHelper +* Bug #343: Review Gantt and Calender links from 07cf681 +* Bug #345: Entering large numbers for 'Estimated Time' fails with 'Invalid big Decimal Value' +* Bug #346: I18n YAML files not parsable with psych yaml library +* Bug #383: Fix broken tests in unstable caused by conflicting to_utf8 method names +* Bug #389: Context menu doesn't work in Opera +* Bug #390: mysql2 incompatibility in WikiPage model +* Bug #397: FIXME in generalize_journals migration +* Bug #398: Remove helper calls from IssuesController +* Bug #400: Review and fix the Activity event types +* Bug #401: Move JournalsHelpers from aaj to the core +* Bug #403: [AAJ] Attachment has it's files and documents activity provider removed but only documents added +* Bug #404: Move aaj/app/* to core +* Bug #405: Move aaj/test/* to core +* Bug #406: Check for missing Journal code from the AAJ merge +* Bug #407: Add Journal#visible +* Bug #408: Check IssueTest#test_saving_twice_should_not_duplicate_journal_details +* Bug #409: [AAJ] Check that bugfix 784bbccf was merged +* Bug #411: Issue Notes Preview +* Bug #412: Test errors on 1.9.2 after acts_as_journalized merge +* Bug #413: Test errors on 1.8.6 after acts_as_journalized merge +* Bug #414: Remove returning since it causes deprecation warnings +* Bug #415: Wikipages don't store/show the comment correctly +* Bug #419: Issue list context menu not working in IE9 +* Bug #422: cvs test are not working +* Bug #423: Remove explicit render from WikiController#show +* Bug #437: Encoding error on Ruby 1.9 in pdf exports +* Bug #441: Creating a Journal does not update the journaled record's updated_at/on attribute +* Bug #442: Issue atom feed shows "issue creation" journal, didn't before +* Bug #443: IssuesControllerTest.test_show_atom test failure on 1.9.2 +* Bug #444: ChangesetTest and RepositoryGitTest test failures on 1.9.2 +* Bug #445: Track initial attributes in a Journal when created +* Bug #453: Update to Rails 2.3.12 to fix some bugs +* Bug #466: SVN: Apache initialization error +* Bug #467: uninitialized constant Journal::Journaled +* Bug #468: Lost WIKI history timestamps during 2.0.0rc1 upgrade. +* Bug #469: Wong URL for WIKI activity entries in 2.0.0rc2 +* Bug #474: Changesets are displaying the wrong user and commit date in the Activity +* Bug #475: News, docs, changesets and time activities were not migrated to 2.0.0rc2 +* Bug #477: Getting rid of "rake/rdoctask is deprecated." warning +* Bug #479: Generalize Journals migrations does too much +* Bug #480: Issue Journal replies get ignored +* Bug #493: uninitialized constant TimeEntryJournal +* Bug #501: Updating a ticket that was created by email forces a "change" of description +* Bug #503: 2.0.0RC3 - YAML Parser fails in ruby 1.9 +* Feature #112: Provide a library function to detect the database type used +* Feature #123: Review and Merge acts_as_journalized +* Feature #196: Upgrade to Rails 2.3-latest +* Feature #197: Rake task to manage copyright inside of source files +* Feature #216: Remove the rubygems hack from boot.rb +* Feature #217: Remove the hack to require a specific i18n version in boot.rb +* Feature #269: Refactor lib/redmine/menu_manager.rb to increase extensibility +* Feature #279: Optional start date on Versions +* Feature #288: Review latest Redmine commits +* Feature #289: Switch to helper :all +* Feature #290: Add bundler +* Feature #310: Option to skip mail notifications on issue updates +* Feature #350: Setting model should use Rails.cache instead of class variable +* Feature #416: Refactor watcher_tag and watcher_link to use css selectors for the replace action +* Feature #436: Clean up trailing whitespace and tabs +* Feature #462: pt-BR translation update +* Feature #473: pt-BR translation fix +* Task #123: Review and Merge acts_as_journalized +* Task #197: Rake task to manage copyright inside of source files +* Task #288: Review latest Redmine commits +* Task #291: Update documentation to phase out Ruby 1.8.6 +* From Redmine v1.1.2 +** Defect #3132: Bulk editing menu non-functional in Opera browser +** Defect #6090: Most binary files become corrupted when downloading from CVS repository browser when Redmine is running on a Windows server +** Defect #7280: Issues subjects wrap in Gantt +** Defect #7288: Non ASCII filename downloaded from repo is broken on Internet Explorer. +** Defect #7317: Gantt tab gives internal error due to nil avatar icon +** Defect #7497: Aptana Studio .project file added to version 1.1.1-stable +** Defect #7611: Workflow summary shows X icon for workflow with exactly 1 status transition +** Defect #7625: Syntax highlighting unavailable from board new topic or topic edit preview +** Defect #7630: Spent time in commits not recognized +** Defect #7656: MySQL SQL Syntax Error when filtering issues by Assignee's Group +** Defect #7718: Minutes logged in commit message are converted to hours +** Defect #7763: Email notification are sent to watchers even if 'No events' setting is chosen +** Feature #7608: Add "retro" gravatars +** Patch #7598: Extensible MailHandler +** Patch #7795: Internal server error at journals#index with custom fields + +== 2011-06-27 v1.5.0 + +* Bug #490: XSS in app/views/auth_sources/index.html.erb +* Feature #488: Hook for additional formats on Wiki#show page + +== 2011-05-27 v1.4.0 + +* Bug #81: Replace favicon +* Bug #311: Update the watcher list on "watch"-link click +* Bug #322: reposman.rb doesn't work with Rubygems >= 1.6.0 +* Bug #340: Properly format blockquotes in HTML mails +* Bug #357: Wrap long text fields properly in PDF exports +* Bug #360: Set autocomplete=off for some fields in user form +* Bug #373: Issue auto completion returns duplicates +* Bug #374: HTML-escaped URLs in JavaScript +* Bug #379: Help controller headings rendered differently in Ruby 1.9 +* Bug #380: Wiki-Help Page +* Bug #424: Loading issue context menu causes two identical AJAX requests +* Bug #425: Deprecation warning when using ChiliProject with Rake 0.9 +* Feature #202: Adding the theme used on chiliproject.org to the repository +* Feature #304: Add a helper to format user lists +* Feature #361: [Cleanup] Removing code comment, by answering the implied question in wikitoolbar_for helper +* Feature #362: Introduce Help controller to dynamically generate wiki help pages + +== 2011-05-01 v1.3.0 + +* Bug #309: The login screen after lost_password redirects back to lost_password after you login +* Bug #347: Potential Security Vulnerability - Execution After Redirect +* Bug #352: Errorpage should be modified + +== 2011-03-27 v1.2.0 + +* Bug #209: Don't hardcode user viewable labels (like "Path to .git repository") +* Bug #225: Support spaces in scm commands +* Bug #250: Filter assignee group to Team leaders +* Bug #251: Make Chili work with RubyGems 1.6 +* Bug #266: Fix monkey patching of rubytree in lib/redmine/menu_manager.rb +* Bug #267: /issues/changes?format=atom is returning 500 Internal Error +* Bug #270: Reposman.rb does not consider underscore to be valid char for a project identifier +* Bug #273: custom autologin cookie name not read +* Bug #278: Issue Form: Parent autocomplete won't work with issues under 3 charactors +* Bug #280: Issues AutoComplete isn't searching issue ids +* Bug #281: Cross project issues aren't showing their project on the Version page +* Bug #282: Enhance Redmine::SafeAttributes to work for subclasses +* Bug #302: Protect methods in ApplicationController +* Bug #305: Toolbar for textile edit fields is buggy in IE8 +* Feature #199: [PATCH] Adding a hook in the heading on showing an issue +* Feature #219: Add plugin hooks to the mailer layout +* Feature #230: Allow the loadpaths of themes to be specified in configuration.yml +* Feature #245: Merge Redmine.pm git smart-http functionality +* Feature #271: Replace checks for "auth_source_id" with "change_password_allowed?" in UsersController +* Feature #276: Add Log Time link to the sidebar on Project Overview +* Feature #283: Check pre-i18n 0.4.2 depreciation +* Feature #307: Add retro style gravatars +* Task #246: Document git-smart-http integration +* Task #308: Remove Redmine::VERSION::BRANCH + +== 2011-02-27 v1.1.0 + +* Bug #109: Backport fix to display full TOC with present < p r e > tags +* Bug #125: User profile does not keep email preferences +* Bug #133: Add hack for rubygems > 1.5 compatibility +* Bug #171: unit/user_test.rb:138 fails with mysql2 gem +* Bug #178: Multiselect issues on Mac +* Bug #190: Change the default Gantt limit to unlimited +* Bug #64: Forums list shows even if the forum module is not active +* Bug #81: Replace favicon +* Bug #85: Crash when saving a wiki page with no content +* Bug #89: MailHandler is changing the Tracker on issues even when there is no keyword for it +* Bug #96: Wiki: H4 Headings are too small in toc +* Feature #101: Change the Help link to point to the ChiliProject site +* Feature #104: Add email header for the type of message +* Feature #129: Change public strings of Redmine to ChiliProject +* Feature #146: Allow underscores in project identifiers +* Feature #149: Issues - Hide the File upload section +* Feature #150: Skip the "Text Formatting: Help" link when tabbing +* Feature #168: [PATCH] RSS autodiscovery for wiki pages +* Feature #169: [PATCH] hiding form pages from search engines +* Feature #170: [PATCH] Extensible MailHandler + +Note: Previous versions referred to Redmine, which ChiliProject forked from in December 2010. + +== 2011-01-30 v1.1.1 + +* Defect #4899: Redmine fails to list files for darcs repository +* Defect #7245: Wiki fails to find pages with cyrillic characters using postgresql +* Defect #7256: redmine/public/.htaccess must be moved for non-fastcgi installs/upgrades +* Defect #7258: Automatic spent time logging does not work properly with SQLite3 +* Defect #7259: Released 1.1.0 uses "devel" label inside admin information +* Defect #7265: "Loading..." icon does not disappear after add project member +* Defect #7266: Test test_due_date_distance_in_words fail due to undefined locale +* Defect #7274: CSV value separator in dutch locale +* Defect #7277: Enabling gravatas causes usernames to overlap first name field in user list +* Defect #7294: "Notifiy for only project I select" is not available anymore in 1.1.0 +* Defect #7307: HTTP 500 error on query for empty revision +* Defect #7313: Label not translated in french in Settings/Email Notification tab +* Defect #7329: with long strings may hang server +* Defect #7337: My page french translation +* Defect #7348: French Translation of "Connection" +* Defect #7385: Error when viewing an issue which was related to a deleted subtask +* Defect #7386: NoMethodError on pdf export +* Defect #7415: Darcs adapter recognizes new files as modified files above Darcs 2.4 +* Defect #7421: no email sent with 'Notifiy for any event on the selected projects only' +* Feature #5344: Update to latest CodeRay 0.9.x + +== 2011-01-09 v1.1.0 + +* Defect #2038: Italics in wiki headers show-up wrong in the toc +* Defect #3449: Redmine Takes Too Long On Large Mercurial Repository +* Defect #3567: Sorting for changesets might go wrong on Mercurial repos +* Defect #3707: {{toc}} doesn't work with {{include}} +* Defect #5096: Redmine hangs up while browsing Git repository +* Defect #6000: Safe Attributes prevents plugin extension of Issue model... +* Defect #6064: Modules not assigned to projects created via API +* Defect #6110: MailHandler should allow updating Issue Priority and Custom fields +* Defect #6136: JSON API holds less information than XML API +* Defect #6345: xml used by rest API is invalid +* Defect #6348: Gantt chart PDF rendering errors +* Defect #6403: Updating an issue with custom fields fails +* Defect #6467: "Member of role", "Member of group" filter not work correctly +* Defect #6473: New gantt broken after clearing issue filters +* Defect #6541: Email notifications send to everybody +* Defect #6549: Notification settings not migrated properly +* Defect #6591: Acronyms must have a minimum of three characters +* Defect #6674: Delete time log broken after changes to REST +* Defect #6681: Mercurial, Bazaar and Darcs auto close issue text should be commit id instead of revision number +* Defect #6724: Wiki uploads does not work anymore (SVN 4266) +* Defect #6746: Wiki links are broken on Activity page +* Defect #6747: Wiki diff does not work since r4265 +* Defect #6763: New gantt charts: subject displayed twice on issues +* Defect #6826: Clicking "Add" twice creates duplicate member record +* Defect #6844: Unchecking status filter on the issue list has no effect +* Defect #6895: Wrong Polish translation of "blocks" +* Defect #6943: Migration from boolean to varchar fails on PostgreSQL 8.1 +* Defect #7064: Mercurial adapter does not recognize non alphabetic nor numeric in UTF-8 copied files +* Defect #7128: New gantt chart does not render subtasks under parent task +* Defect #7135: paging mechanism returns the same last page forever +* Defect #7188: Activity page not refreshed when changing language +* Defect #7195: Apply CLI-supplied defaults for incoming mail only to new issues not replies +* Defect #7197: Tracker reset to default when replying to an issue email +* Defect #7213: Copy project does not copy all roles and permissions +* Defect #7225: Project settings: Trackers & Custom fields only relevant if module Issue tracking is active +* Feature #630: Allow non-unique names for projects +* Feature #1738: Add a "Visible" flag to project/user custom fields +* Feature #2803: Support for Javascript in Themes +* Feature #2852: Clean Incoming Email of quoted text "----- Reply above this line ------" +* Feature #2995: Improve error message when trying to access an archived project +* Feature #3170: Autocomplete issue relations on subject +* Feature #3503: Administrator Be Able To Modify Email settings Of Users +* Feature #4155: Automatic spent time logging from commit messages +* Feature #5136: Parent select on Wiki rename page +* Feature #5338: Descendants (subtasks) should be available via REST API +* Feature #5494: Wiki TOC should display heading from level 4 +* Feature #5594: Improve MailHandler's keyword handling +* Feature #5622: Allow version to be set via incoming email +* Feature #5712: Reload themes +* Feature #5869: Issue filters by Group and Role +* Feature #6092: Truncate Git revision labels in Activity page/feed and allow configurable length +* Feature #6112: Accept localized keywords when receiving emails +* Feature #6140: REST issues response with issue count limit and offset +* Feature #6260: REST API for Users +* Feature #6276: Gantt Chart rewrite +* Feature #6446: Remove length limits on project identifier and name +* Feature #6628: Improvements in truncate email +* Feature #6779: Project JSON API +* Feature #6823: REST API for time tracker. +* Feature #7072: REST API for news +* Feature #7111: Expose more detail on journal entries +* Feature #7141: REST API: get information about current user +* Patch #4807: Allow to set the done_ratio field with the incoming mail system +* Patch #5441: Initialize TimeEntry attributes with params[:time_entry] +* Patch #6762: Use GET instead of POST to retrieve context_menu +* Patch #7160: French translation ofr "not_a_date" is missing +* Patch #7212: Missing remove_index in AddUniqueIndexOnMembers down migration + + +== 2010-12-23 v1.0.5 + +* #6656: Mercurial adapter loses seconds of commit times +* #6996: Migration trac(sqlite3) -> redmine(postgresql) doesnt escape ' char +* #7013: v-1.0.4 trunk - see {{count}} in page display rather than value +* #7016: redundant 'field_start_date' in ja.yml +* #7018: 'undefined method `reschedule_after' for nil:NilClass' on new issues +* #7024: E-mail notifications about Wiki changes. +* #7033: 'class' attribute of
 tag shouldn't be truncate
+* #7035: CSV value separator in russian
+* #7122: Issue-description Quote-button missing
+* #7144: custom queries making use of deleted custom fields cause a 500 error
+* #7162: Multiply defined label in french translation
+
+== 2010-11-28 v1.0.4
+
+* #5324: Git not working if color.ui is enabled
+* #6447: Issues API doesn't allow full key auth for all actions
+* #6457: Edit User group problem
+* #6575: start date being filled with current date even when blank value is submitted
+* #6740: Max attachment size, incorrect usage of 'KB'
+* #6760: Select box sorted by ID instead of name in Issue Category
+* #6766: Changing target version name can cause an internal error
+* #6784: Redmine not working with i18n gem 0.4.2
+* #6839: Hardcoded absolute links in my/page_layout
+* #6841: Projects API doesn't allow full key auth for all actions
+* #6860: svn: Write error: Broken pipe when browsing repository
+* #6874: API should return XML description when creating a project
+* #6932: submitting wrong parent task input creates a 500 error
+* #6966: Records of Forums are remained, deleting project
+* #6990: Layout problem in workflow overview
+* #5117: mercurial_adapter should ensure the right LANG environment variable
+* #6782: Traditional Chinese language file (to r4352)
+* #6783: Swedish Translation for r4352
+* #6804: Bugfix: spelling fixes
+* #6814: Japanese Translation for r4362
+* #6948: Bulgarian translation
+* #6973: Update es.yml
+
+== 2010-10-31 v1.0.3
+
+* #4065: Redmine.pm doesn't work with LDAPS and a non-standard port
+* #4416: Link from version details page to edit the wiki.
+* #5484: Add new issue as subtask to an existing ticket
+* #5948: Update help/wiki_syntax_detailed.html with more link options
+* #6494: Typo in pt_BR translation for 1.0.2
+* #6508: Japanese translation update
+* #6509: Localization pt-PT (new strings)
+* #6511: Rake task to test email
+* #6525: Traditional Chinese language file (to r4225)
+* #6536: Patch for swedish translation
+* #6548: Rake tasks to add/remove i18n strings
+* #6569: Updated Hebrew translation
+* #6570: Japanese Translation for r4231
+* #6596: pt-BR translation updates
+* #6629: Change field-name of issues start date
+* #6669: Bulgarian translation
+* #6731: Macedonian translation fix
+* #6732: Japanese Translation for r4287
+* #6735: Add user-agent to reposman
+* #6736: Traditional Chinese language file (to r4288)
+* #6739: Swedish Translation for r4288
+* #6765: Traditional Chinese language file (to r4302)
+* Fixed #5324: Git not working if color.ui is enabled
+* Fixed #5652: Bad URL parsing in the wiki when it ends with right-angle-bracket(greater-than mark).
+* Fixed #5803: Precedes/Follows Relationships Broke
+* Fixed #6435: Links to wikipages bound to versions do not respect version-sharing in Settings -> Versions
+* Fixed #6438: Autologin cannot be disabled again once it's enabled
+* Fixed #6513: "Move" and "Copy" are not displayed when deployed in subdirectory
+* Fixed #6521: Tooltip/label for user "search-refinment" field on group/project member list
+* Fixed #6563: i18n-issues on calendar view
+* Fixed #6598: Wrong caption for button_create_and_continue in German language file
+* Fixed #6607: Unclear caption for german button_update
+* Fixed #6612: SortHelper missing from CalendarsController
+* Fixed #6740: Max attachment size, incorrect usage of 'KB'
+* Fixed #6750: ActionView::TemplateError (undefined method `empty?' for nil:NilClass) on line #12 of app/views/context_menus/issues.html.erb:
+
+== 2010-09-26 v1.0.2
+
+* #2285: issue-refinement: pressing enter should result to an "apply"
+* #3411: Allow mass status update trough context menu
+* #5929: https-enabled gravatars when called over https
+* #6189: Japanese Translation for r4011
+* #6197: Traditional Chinese language file (to r4036)
+* #6198: Updated german translation
+* #6208: Macedonian translation
+* #6210: Swedish Translation for r4039
+* #6248: nl translation update for r4050
+* #6263: Catalan translation update
+* #6275: After submitting a related issue, the Issue field should be re-focused
+* #6289: Checkboxes in issues list shouldn't be displayed when printing
+* #6290: Make journals theming easier
+* #6291: User#allowed_to? is not tested
+* #6306: Traditional Chinese language file (to r4061)
+* #6307: Korean translation update for 4066(4061)
+* #6316: pt_BR update
+* #6339: SERBIAN Updated
+* #6358: Updated Polish translation
+* #6363: Japanese Translation for r4080
+* #6365: Traditional Chinese language file (to r4081)
+* #6382: Issue PDF export variable usage
+* #6428: Interim solution for i18n >= 0.4
+* #6441: Japanese Translation for r4162
+* #6451: Traditional Chinese language file (to r4167)
+* #6465: Japanese Translation for r4171
+* #6466: Traditional Chinese language file (to r4171)
+* #6490: pt-BR translation for 1.0.2
+* Fixed #3935: stylesheet_link_tag with plugin doesn't take into account relative_url_root
+* Fixed #4998: Global issue list's context menu has enabled options for parent menus but there are no valid selections
+* Fixed #5170: Done ratio can not revert to 0% if status is used for done ratio
+* Fixed #5608: broken with i18n 0.4.0
+* Fixed #6054: Error 500 on filenames with whitespace in git reposities
+* Fixed #6135: Default logger configuration grows without bound.
+* Fixed #6191: Deletion of a main task deletes all subtasks
+* Fixed #6195: Missing move issues between projects
+* Fixed #6242: can't switch between inline and side-by-side diff
+* Fixed #6249: Create and continue returns 404
+* Fixed #6267: changing the authentication mode from ldap to internal with setting the password
+* Fixed #6270: diff coderay malformed in the "news" page
+* Fixed #6278: missing "cant_link_an_issue_with_a_descendant"from locale files
+* Fixed #6333: Create and continue results in a 404 Error
+* Fixed #6346: Age column on repository view is skewed for git, probably CVS too
+* Fixed #6351: Context menu on roadmap broken
+* Fixed #6388: New Subproject leads to a 404
+* Fixed #6392: Updated/Created links to activity broken
+* Fixed #6413: Error in SQL
+* Fixed #6443: Redirect to project settings after Copying a Project
+* Fixed #6448: Saving a wiki page with no content has a translation missing
+* Fixed #6452: Unhandled exception on creating File
+* Fixed #6471: Typo in label_report in Czech translation
+* Fixed #6479: Changing tracker type will lose watchers
+* Fixed #6499: Files with leading or trailing whitespace are not shown in git.
+
+== 2010-08-22 v1.0.1
+
+* #819: Add a body ID and class to all pages
+* #871: Commit new CSS styles!
+* #3301: Add favicon to base layout
+* #4656: On Issue#show page, clicking on “Add related issue” should focus on the input
+* #4896: Project identifier should be a limited field
+* #5084: Filter all isssues by projects
+* #5477: Replace Test::Unit::TestCase with ActiveSupport::TestCase
+* #5591: 'calendar' action is used with 'issue' controller in issue/sidebar
+* #5735: Traditional Chinese language file (to r3810)
+* #5740: Swedish Translation for r3810
+* #5785: pt-BR translation update
+* #5898: Projects should be displayed as links in users/memberships
+* #5910: Chinese translation to redmine-1.0.0
+* #5912: Translation update for french locale
+* #5962: Hungarian translation update to r3892
+* #5971: Remove falsly applied chrome on revision links
+* #5972: Updated Hebrew translation for 1.0.0
+* #5982: Updated german translation
+* #6008: Move admin_menu to Redmine::MenuManager
+* #6012: RTL layout
+* #6021: Spanish translation 1.0.0-RC
+* #6025: nl translation updated for r3905
+* #6030: Japanese Translation for r3907
+* #6074: sr-CY.yml contains DOS-type newlines (\r\n)
+* #6087: SERBIAN translation updated
+* #6093: Updated italian translation
+* #6142: Swedish Translation for r3940
+* #6153: Move view_calendar and view_gantt to own modules
+* #6169: Add issue status to issue tooltip
+* Fixed #3834: Add a warning when not choosing a member role
+* Fixed #3922: Bad english arround "Assigned to" text in journal entries
+* Fixed #5158: Simplified Chinese language file zh.yml updated to r3608
+* Fixed #5162: translation missing: zh-TW, field_time_entrie
+* Fixed #5297: openid not validated correctly
+* Fixed #5628: Wrong commit range in git log command
+* Fixed #5760: Assigned_to and author filters in "Projects>View all issues" should be based on user's project visibility
+* Fixed #5771: Problem when importing git repository
+* Fixed #5775: ldap authentication in admin menu should have an icon
+* Fixed #5811: deleting statuses doesnt delete workflow entries
+* Fixed #5834: Emails with trailing spaces incorrectly detected as invalid
+* Fixed #5846: ChangeChangesPathLengthLimit does not remove default for MySQL
+* Fixed #5861: Vertical scrollbar always visible in Wiki "code" blocks in Chrome.
+* Fixed #5883: correct label_project_latest Chinese translation
+* Fixed #5892: Changing status from contextual menu opens the ticket instead
+* Fixed #5904: Global gantt PDF and PNG should display project names
+* Fixed #5925: parent task's priority edit should be disabled through shortcut menu in issues list page
+* Fixed #5935: Add Another file to ticket doesn't work in IE Internet Explorer
+* Fixed #5937: Harmonize french locale "zero" translation with other locales
+* Fixed #5945: Forum message permalinks don't take pagination into account
+* Fixed #5978: Debug code still remains
+* Fixed #6009: When using "English (British)", the repository browser (svn) shows files over 1000 bytes as floating point (2.334355)
+* Fixed #6045: Repository file Diff view sometimes shows more than selected file
+* Fixed #6079: German Translation error in TimeEntryActivity
+* Fixed #6100: User's profile should display all visible projects
+* Fixed #6132: Allow Key based authentication in the Boards atom feed
+* Fixed #6163: Bad CSS class for calendar project menu_item
+* Fixed #6172: Browsing to a missing user's page shows the admin sidebar
+
+== 2010-07-18 v1.0.0 (Release candidate)
+
+* #443: Adds context menu to the roadmap issue lists
+* #443: Subtasking
+* #741: Description preview while editing an issue
+* #1131: Add support for alternate (non-LDAP) authentication
+* #1214: REST API for Issues
+* #1223: File upload on wiki edit form
+* #1755: add "blocked by" as a related issues option
+* #2420: Fetching emails from an POP server
+* #2482: Named scopes in Issue and ActsAsWatchable plus some view refactoring (logic extraction).
+* #2924: Make the right click menu more discoverable using a cursor property
+* #2985: Make syntax highlighting pluggable
+* #3201: Workflow Check/Uncheck All Rows/Columns
+* #3359: Update CodeRay 0.9
+* #3706: Allow assigned_to field configuration on Issue creation by email
+* #3936: configurable list of models to include in search
+* #4480: Create a link to the user profile from the administration interface
+* #4482: Cache textile rendering
+* #4572: Make it harder to ruin your database
+* #4573: Move github gems to Gemcutter
+* #4664: Add pagination to forum threads
+* #4732: Make login case-insensitive also for PostgreSQL
+* #4812: Create links to other projects
+* #4819: Replace images with smushed ones for speed
+* #4945: Allow custom fields attached to project to be searchable
+* #5121: Fix issues list layout overflow
+* #5169: Issue list view hook request
+* #5208: Aibility to edit wiki sidebar
+* #5281: Remove empty ul tags in the issue history
+* #5291: Updated basque translations
+* #5328: Automatically add "Repository" menu_item after repository creation
+* #5415: Fewer SQL statements generated for watcher_recipients
+* #5416: Exclude "fields_for" from overridden methods in TabularFormBuilder
+* #5573: Allow issue assignment in email
+* #5595: Allow start date and due dates to be set via incoming email
+* #5752: The projects view (/projects) renders ul's wrong
+* #5781: Allow to use more macros on the welcome page and project list
+* Fixed #1288: Unable to past escaped wiki syntax in an issue description
+* Fixed #1334: Wiki formatting character *_ and _*
+* Fixed #1416: Inline code with less-then/greater-than produces @lt; and @gt; respectively
+* Fixed #2473: Login and mail should not be case sensitive
+* Fixed #2990: Ruby 1.9 - wrong number of arguments (1 for 0) on rake db:migrate
+* Fixed #3089: Text formatting sometimes breaks when combined
+* Fixed #3690: Status change info duplicates on the issue screen
+* Fixed #3691: Redmine allows two files with the same file name to be uploaded to the same issue
+* Fixed #3764: ApplicationHelperTest fails with JRuby
+* Fixed #4265: Unclosed code tags in issue descriptions affects main UI
+* Fixed #4745: Bug in index.xml.builder (issues)
+* Fixed #4852: changing user/roles of project member not possible without javascript
+* Fixed #4857: Week number calculation in date picker is wrong if a week starts with Sunday
+* Fixed #4883: Bottom "contextual" placement in issue with associated changeset
+* Fixed #4918: Revisions r3453 and r3454 broke On-the-fly user creation with LDAP
+* Fixed #4935: Navigation to the Master Timesheet page (time_entries)
+* Fixed #5043: Flash messages are not displayed after the project settings[module/activity] saved
+* Fixed #5081: Broken links on public/help/wiki_syntax_detailed.html
+* Fixed #5104: Description of document not wikified on documents index
+* Fixed #5108: Issue linking fails inside of []s
+* Fixed #5199: diff code coloring using coderay
+* Fixed #5233: Add a hook to the issue report (Summary) view
+* Fixed #5265: timetracking: subtasks time is added to the main task
+* Fixed #5343: acts_as_event Doesn't Accept Outside URLs
+* Fixed #5440: UI Inconsistency : Administration > Enumerations table row headers should be enclosed in 
+* Fixed #5463: 0.9.4 INSTALL and/or UPGRADE, missing session_store.rb
+* Fixed #5524: Update_parent_attributes doesn't work for the old parent issue when reparenting
+* Fixed #5548: SVN Repository: Can not list content of a folder which includes square brackets.
+* Fixed #5589: "with subproject" malfunction
+* Fixed #5676: Search for Numeric Value
+* Fixed #5696: Redmine + PostgreSQL 8.4.4 fails on _dir_list_content.rhtml
+* Fixed #5698: redmine:email:receive_imap fails silently for mails with subject longer than 255 characters
+* Fixed #5700: TimelogController#destroy assumes success
+* Fixed #5751: developer role is mispelled
+* Fixed #5769: Popup Calendar doesn't Advance in Chrome
+* Fixed #5771: Problem when importing git repository
+* Fixed #5823: Error in comments in plugin.rb
+
+
+== 2010-07-07 v0.9.6
+
+* Fixed: Redmine.pm access by unauthorized users
+
+== 2010-06-24 v0.9.5
+
+* Linkify folder names on revision view
+* "fiters" and "options" should be hidden in print view via css
+* Fixed: NoMethodError when no issue params are submitted
+* Fixed: projects.atom with required authentication
+* Fixed: External links not correctly displayed in Wiki TOC
+* Fixed: Member role forms in project settings are not hidden after member added
+* Fixed: pre can't be inside p
+* Fixed: session cookie path does not respect RAILS_RELATIVE_URL_ROOT
+* Fixed: mail handler fails when the from address is empty
+
+
+== 2010-05-01 v0.9.4
+
+* Filters collapsed by default on issues index page for a saved query
+* Fixed: When categories list is too big the popup menu doesn't adjust (ex. in the issue list)
+* Fixed: remove "main-menu" div when the menu is empty
+* Fixed: Code syntax highlighting not working in Document page
+* Fixed: Git blame/annotate fails on moved files
+* Fixed: Failing test in test_show_atom
+* Fixed: Migrate from trac - not displayed Wikis
+* Fixed: Email notifications on file upload sent to empty recipient list
+* Fixed: Migrating from trac is not possible, fails to allocate memory
+* Fixed: Lost password no longer flashes a confirmation message
+* Fixed: Crash while deleting in-use enumeration
+* Fixed: Hard coded English string at the selection of issue watchers
+* Fixed: Bazaar v2.1.0 changed behaviour
+* Fixed: Roadmap display can raise an exception if no trackers are selected
+* Fixed: Gravatar breaks layout of "logged in" page
+* Fixed: Reposman.rb on Windows
+* Fixed: Possible error 500 while moving an issue to another project with SQLite
+* Fixed: backslashes in issue description/note should be escaped when quoted
+* Fixed: Long text in 
 disrupts Associated revisions
+* Fixed: Links to missing wiki pages not red on project overview page
+* Fixed: Cannot delete a project with subprojects that shares versions
+* Fixed: Update of Subversion changesets broken under Solaris
+* Fixed: "Move issues" permission not working for Non member
+* Fixed: Sidebar overlap on Users tab of Group editor
+* Fixed: Error on db:migrate with table prefix set (hardcoded name in principal.rb)
+* Fixed: Report shows sub-projects for non-members
+* Fixed: 500 internal error when browsing any Redmine page in epiphany
+* Fixed: Watchers selection lost when issue creation fails
+* Fixed: When copying projects, redmine should not generate an email to people who created issues
+* Fixed: Issue "#" table cells should have a class attribute to enable fine-grained CSS theme
+* Fixed: Plugin generators should display help if no parameter is given
+
+
+== 2010-02-28 v0.9.3
+
+* Adds filter for system shared versions on the cross project issue list
+* Makes project identifiers searchable
+* Remove invalid utf8 sequences from commit comments and author name
+* Fixed: Wrong link when "http" not included in project "Homepage" link
+* Fixed: Escaping in html email templates
+* Fixed: Pound (#) followed by number with leading zero (0) removes leading zero when rendered in wiki
+* Fixed: Deselecting textile text formatting causes interning empty string errors
+* Fixed: error with postgres when entering a non-numeric id for an issue relation
+* Fixed: div.task incorrectly wrapping on Gantt Chart
+* Fixed: Project copy loses wiki pages hierarchy
+* Fixed: parent project field doesn't include blank value when a member with 'add subproject' permission edits a child project
+* Fixed: Repository.fetch_changesets tries to fetch changesets for archived projects
+* Fixed: Duplicated project name for subproject version on gantt chart
+* Fixed: roadmap shows subprojects issues even if subprojects is unchecked
+* Fixed: IndexError if all the :last menu items are deleted from a menu
+* Fixed: Very high CPU usage for a long time when fetching commits from a large Git repository
+
+
+== 2010-02-07 v0.9.2
+
+* Fixed: Sub-project repository commits not displayed on parent project issues
+* Fixed: Potential security leak on my page calendar
+* Fixed: Project tree structure is broken by deleting the project with the subproject
+* Fixed: Error message shown duplicated when creating a new group
+* Fixed: Firefox cuts off large pages
+* Fixed: Invalid format parameter returns a DoubleRenderError on issues index
+* Fixed: Unnecessary Quote button on locked forum message
+* Fixed: Error raised when trying to view the gantt or calendar with a grouped query
+* Fixed: PDF support for Korean locale
+* Fixed: Deprecation warning in extra/svn/reposman.rb
+
+
+== 2010-01-30 v0.9.1
+
+* Vertical alignment for inline images in formatted text set to 'middle'
+* Fixed: Redmine.pm error "closing dbh with active statement handles at /usr/lib/perl5/Apache/Redmine.pm"
+* Fixed: copyright year in footer set to 2010
+* Fixed: Trac migration script may not output query lines
+* Fixed: Email notifications may affect language of notice messages on the UI
+* Fixed: Can not search for 2 letters word
+* Fixed: Attachments get saved on issue update even if validation fails
+* Fixed: Tab's 'border-bottom' not absent when selected
+* Fixed: Issue summary tables that list by user are not sorted
+* Fixed: Issue pdf export fails if target version is set
+* Fixed: Issue list export to PDF breaks when issues are sorted by a custom field
+* Fixed: SQL error when adding a group
+* Fixes: Min password length during password reset always displays as 4 chars
+
+
+== 2010-01-09 v0.9.0 (Release candidate)
+
+* Unlimited subproject nesting
+* Multiple roles per user per project
+* User groups
+* Inheritence of versions
+* OpenID login
+* "Watched by me" issue filter
+* Project copy
+* Project creation by non admin users
+* Accept emails from anyone on a private project
+* Add email notification on Wiki changes
+* Make issue description non-required field
+* Custom fields for Versions
+* Being able to sort the issue list by custom fields
+* Ability to close versions
+* User display/editing of custom fields attached to their user profile
+* Add "follows" issue relation
+* Copy workflows between trackers and roles
+* Defaults enabled modules list for project creation
+* Weighted version completion percentage on the roadmap
+* Autocreate user account when user submits email that creates new issue
+* CSS class on overdue issues on the issue list
+* Enable tracker update on issue edit form
+* Remove issue watchers
+* Ability to move threads between project forums
+* Changed custom field "Possible values" to a textarea
+* Adds projects association on tracker form
+* Set session store to cookie store by default
+* Set a default wiki page on project creation
+* Roadmap for main project should see Roadmaps for sub projects
+* Ticket grouping on the issue list
+* Hierarchical Project links in the page header
+* Allow My Page blocks to be added to from a plugin
+* Sort issues by multiple columns
+* Filters of saved query are now visible and be adjusted without editing the query
+* Saving "sort order" in custom queries
+* Url to fetch changesets for a repository
+* Managers able to create subprojects
+* Issue Totals on My Page Modules
+* Convert Enumerations to single table inheritance (STI)
+* Allow custom my_page blocks to define drop-down names
+* "View Issues" user permission added
+* Ask user what to do with child pages when deleting a parent wiki page
+* Contextual quick search
+* Allow resending of password by email
+* Change reply subject to be a link to the reply itself
+* Include Logged Time as part of the project's Activity history
+* REST API for authentication
+* Browse through Git branches
+* Setup Object Daddy to replace test fixtures
+* Setup shoulda to make it easier to test
+* Custom fields and overrides on Enumerations
+* Add or remove columns from the issue list
+* Ability to add new version from issues screen
+* Setting to choose which day calendars start
+* Asynchronous email delivery method
+* RESTful URLs for (almost) everything
+* Include issue status in search results and activity pages
+* Add email to admin user search filter
+* Proper content type for plain text mails
+* Default value of project jump box
+* Tree based menus
+* Ability to use issue status to update percent done
+* Second set of issue "Action Links" at the bottom of an issue page
+* Proper exist status code for rdm-mailhandler.rb
+* Remove incoming email body via a delimiter
+* Fixed: Custom querry 'Export to PDF' ignores field selection
+* Fixed: Related e-mail notifications aren't threaded
+* Fixed: No warning when the creation of a categories from the issue form fails
+* Fixed: Actually block issues from closing when relation 'blocked by' isn't closed
+* Fixed: Include both first and last name when sorting by users
+* Fixed: Table cell with multiple line text
+* Fixed: Project overview page shows disabled trackers
+* Fixed: Cross project issue relations and user permissions
+* Fixed: My page shows tickets the user doesn't have access to
+* Fixed: TOC does not parse wiki page reference links with description
+* Fixed: Target version-list on bulk edit form is incorrectly sorted
+* Fixed: Cannot modify/delete project named "Documents"
+* Fixed: Email address in brackets breaks html
+* Fixed: Timelog detail loose issue filter passing to report tab
+* Fixed: Inform about custom field's name maximum length
+* Fixed: Activity page and Atom feed links contain project id instead of identifier
+* Fixed: no Atom key for forums with only 1 forum
+* Fixed: When reading RSS feed in MS Outlook, the inline links are broken.
+* Fixed: Sometimes new posts don't show up in the topic list of a forum.
+* Fixed: The all/active filter selection in the project view does not stick.
+* Fixed: Login box has Different width
+* Fixed: User removed from project - still getting project update emails
+* Fixed: Project with the identifier of 'new' cannot be viewed
+* Fixed: Artefacts in search view (Cyrillic)
+* Fixed: Allow [#id] as subject to reply by email
+* Fixed: Wrong language used when closing an issue via a commit message
+* Fixed: email handler drops emails for new issues with no subject
+* Fixed: Calendar misspelled under Roles/Permissions
+* Fixed: Emails from no-reply redmine's address hell cycle
+* Fixed: child_pages macro fails on wiki page history
+* Fixed: Pre-filled time tracking date ignores timezone
+* Fixed: Links on locked users lead to 404 page
+* Fixed: Page changes in issue-list when using context menu
+* Fixed: diff parser removes lines starting with multiple dashes
+* Fixed: Quoting in forums resets message subject
+* Fixed: Editing issue comment removes quote link
+* Fixed: Redmine.pm ignore browse_repository permission
+* Fixed: text formatting breaks on [msg1][msg2]
+* Fixed: Spent Time Default Value of 0.0
+* Fixed: Wiki pages in search results are referenced by project number, not by project identifier.
+* Fixed: When logging in via an autologin cookie the user's last_login_on should be updated
+* Fixed: 50k users cause problems in project->settings->members screen
+* Fixed: Document timestamp needs to show updated timestamps
+* Fixed: Users getting notifications for issues they are no longer allowed to view
+* Fixed: issue summary counts should link to the issue list without subprojects
+* Fixed: 'Delete' link on LDAP list has no effect
+
+
+== 2009-11-15 v0.8.7
+
+* Fixed: Hide paragraph terminator at the end of headings on html export
+* Fixed: pre tags containing "