diff --git a/Gemfile b/Gemfile index 2bb6fb48..05d2ad18 100644 --- a/Gemfile +++ b/Gemfile @@ -19,6 +19,10 @@ group :test do platforms :mri_19, :mingw_19 do gem 'ruby-debug19', :require => 'ruby-debug' end end +group :ldap do + gem "net-ldap", '~> 0.2.2' +end + group :openid do gem "ruby-openid", '~> 2.1.4', :require => 'openid' end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index c8331622..9457f753 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -16,8 +16,8 @@ class UsersController < ApplicationController layout 'admin' before_filter :require_admin, :except => :show - before_filter :find_user, :only => [:show, :edit, :update, :edit_membership, :destroy_membership] - accept_key_auth :index, :show, :create, :update + before_filter :find_user, :only => [:show, :edit, :update, :destroy, :edit_membership, :destroy_membership] + accept_key_auth :index, :show, :create, :update, :destroy include SortHelper include CustomFieldsHelper @@ -178,6 +178,24 @@ class UsersController < ApplicationController redirect_to :controller => 'users', :action => 'edit', :id => @user end + verify :method => :delete, :only => :destroy, :render => {:nothing => true, :status => :method_not_allowed } + def destroy + # Only allow to delete users with STATUS_REGISTERED for now + # It is assumed that these users are not yet references in any way + # from other objects. + return render_403 unless @user.deletable? + + @user.destroy + respond_to do |format| + format.html { + flash[:notice] = l(:notice_successful_delete) + redirect_back_or_default(:action => 'index') + } + format.api { head :ok } + end + end + + def edit_membership @membership = Member.edit_membership(params[:membership_id], params[:membership], @user) @membership.save if request.post? diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index ac3d7da5..1196e1b6 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -414,7 +414,7 @@ module ApplicationHelper title = [] title << h(@project.name) if @project title += @html_title if @html_title - title << Setting.app_title + title << h(Setting.app_title) title.select {|t| !t.blank? }.join(' - ') else @html_title ||= [] diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 1b117156..949074ee 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -37,13 +37,26 @@ module UsersHelper def change_status_link(user) url = {:controller => 'users', :action => 'update', :id => user, :page => params[:page], :status => params[:status], :tab => nil} + links = [] if user.locked? - link_to l(:button_unlock), url.merge(:user => {:status => User::STATUS_ACTIVE}), :method => :put, :class => 'icon icon-unlock' + links << link_to(l(:button_unlock), url.merge(:user => {:status => User::STATUS_ACTIVE}), :method => :put, :class => 'icon icon-unlock') elsif user.registered? - link_to l(:button_activate), url.merge(:user => {:status => User::STATUS_ACTIVE}), :method => :put, :class => 'icon icon-unlock' + links << link_to(l(:button_activate), url.merge(:user => {:status => User::STATUS_ACTIVE}), :method => :put, :class => 'icon icon-unlock') elsif user != User.current - link_to l(:button_lock), url.merge(:user => {:status => User::STATUS_LOCKED}), :method => :put, :class => 'icon icon-lock' + links << link_to(l(:button_lock), url.merge(:user => {:status => User::STATUS_LOCKED}), :method => :put, :class => 'icon icon-lock') end + + if user.deletable? + links << link_to( + l(:button_delete), {:controller => 'users', :action => 'destroy', :id => user}, + :method => :delete, + :confirm => l(:text_are_you_sure), + :title => l(:button_delete), + :class => 'icon icon-del' + ) + end + + links.join(" ") end def user_settings_tabs diff --git a/app/models/journal.rb b/app/models/journal.rb index 1b876f42..621fadca 100644 --- a/app/models/journal.rb +++ b/app/models/journal.rb @@ -108,7 +108,7 @@ class Journal < ActiveRecord::Base ## => Try the journaled object with the same method and arguments ## => On error, call super def method_missing(method, *args, &block) - return super if attributes[method.to_s] + return super if respond_to?(method) || attributes[method.to_s] journaled.send(method, *args, &block) rescue NoMethodError => e e.name == method ? super : raise(e) diff --git a/app/models/mailer.rb b/app/models/mailer.rb index 2be9de70..8e331011 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -396,8 +396,8 @@ class Mailer < ActionMailer::Base # if he doesn't want to receive notifications about what he does @author ||= User.current if @author.pref[:no_self_notified] - recipients.delete(@author.mail) if recipients - cc.delete(@author.mail) if cc + recipients((recipients.is_a?(Array) ? recipients : [recipients]) - [@author.mail]) if recipients.present? + cc((cc.is_a?(Array) ? cc : [cc]) - [@author.mail]) if cc.present? end notified_users = [recipients, cc].flatten.compact.uniq diff --git a/app/models/user.rb b/app/models/user.rb index c5ecb8e9..49a9bf4f 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -70,6 +70,7 @@ class User < Principal validates_length_of :mail, :maximum => 60, :allow_nil => true validates_confirmation_of :password, :allow_nil => true validates_inclusion_of :mail_notification, :in => MAIL_NOTIFICATION_OPTIONS.collect(&:first), :allow_blank => true + validates_inclusion_of :status, :in => [STATUS_ANONYMOUS, STATUS_ACTIVE, STATUS_REGISTERED, STATUS_LOCKED] named_scope :in_group, lambda {|group| group_id = group.is_a?(Group) ? group.id : group.to_i @@ -207,6 +208,11 @@ class User < Principal update_attribute(:status, STATUS_LOCKED) end + def deletable? + registered? && last_login_on.nil? + end + + # Returns true if +clear_password+ is the correct user's password, otherwise false def check_password?(clear_password) if auth_source_id.present? @@ -526,6 +532,24 @@ class User < Principal if !password.nil? && password.size < Setting.password_min_length.to_i errors.add(:password, :too_short, :count => Setting.password_min_length.to_i) end + + # Status + if !new_record? && status_changed? + case status_was + when nil + # initial setting is always save + true + when STATUS_ANONYMOUS + # never allow a state change of the anonymous user + false + when STATUS_REGISTERED + [STATUS_ACTIVE, STATUS_LOCKED].include? status + when STATUS_ACTIVE + [STATUS_LOCKED].include? status + when STATUS_LOCKED + [STATUS_ACTIVE].include? status + end || errors.add(:status, :inclusion) + end end private diff --git a/app/models/wiki_content.rb b/app/models/wiki_content.rb index 88bf4504..b04ad378 100644 --- a/app/models/wiki_content.rb +++ b/app/models/wiki_content.rb @@ -104,7 +104,12 @@ class WikiContent < ActiveRecord::Base def text @text ||= case changes["compression"] when "gzip" - Zlib::Inflate.inflate(changes["data"]) + data = Zlib::Inflate.inflate(changes["data"]) + if data.respond_to? :force_encoding + data.force_encoding("UTF-8") + else + data + end else # uncompressed data changes["data"] diff --git a/app/views/issues/_edit.rhtml b/app/views/issues/_edit.rhtml index d376b36a..c73b2980 100644 --- a/app/views/issues/_edit.rhtml +++ b/app/views/issues/_edit.rhtml @@ -15,7 +15,7 @@ <%= render :partial => (@edit_allowed ? 'form' : 'form_update'), :locals => {:f => f} %> <% end %> - <% if authorize_for('timelog', 'edit') %> + <% if User.current.allowed_to?(:log_time, @project) %>
<%= l(:button_log_time) %> <% fields_for :time_entry, @time_entry, { :builder => TabularFormBuilder, :lang => current_language} do |time_entry| %>
@@ -26,7 +26,7 @@

<%= time_entry.text_field :comments, :size => 60 %>

<% @time_entry.custom_field_values.each do |value| %> -

<%= custom_field_tag_with_label :time_entry, value %>

+

<%= custom_field_tag_with_label :time_entry, value %>

<% end %> <% end %>
diff --git a/app/views/layouts/base.rhtml b/app/views/layouts/base.rhtml index 3a4e9dee..9b92071d 100644 --- a/app/views/layouts/base.rhtml +++ b/app/views/layouts/base.rhtml @@ -2,7 +2,7 @@ -<%=h html_title %> +<%= html_title %> <%= csrf_meta_tag %> diff --git a/app/views/projects/index.rhtml b/app/views/projects/index.rhtml index e6b18041..6a0e0522 100644 --- a/app/views/projects/index.rhtml +++ b/app/views/projects/index.rhtml @@ -8,6 +8,7 @@ <%= link_to(l(:label_overall_spent_time), { :controller => 'time_entries' }) + ' |' if User.current.allowed_to?(:view_time_entries, nil, :global => true) %> <%= link_to(l(:label_news_view_all), { :controller => 'news' }) + ' |' if User.current.allowed_to?(:view_news, nil, :global => true) %> <%= link_to l(:label_overall_activity), { :controller => 'activities', :action => 'index' }%> + <%= call_hook(:view_projects_show_contextual) %>

<%=l(:label_project_plural)%>

@@ -16,6 +17,8 @@ <%= textilizable Setting.welcome_text %> +<%= call_hook(:view_projects_show_top) %> + <%= render_project_hierarchy(@projects)%> <% if User.current.logged? %> diff --git a/app/views/queries/_filters.rhtml b/app/views/queries/_filters.rhtml index 5cf9825d..f2242fa3 100644 --- a/app/views/queries/_filters.rhtml +++ b/app/views/queries/_filters.rhtml @@ -97,11 +97,11 @@ Event.observe(document,"dom:loaded", apply_filters_observer); <%= link_to_function image_tag('bullet_toggle_plus.png'), "toggle_multi_select('#{field}');", :style => "vertical-align: bottom;" %> <% when :date, :date_past %> - <%= text_field_tag "v[#{field}][]", query.values_for(field), :id => "values_#{field}", :size => 3, :class => "select-small" %> <%= l(:label_day_plural) %> + <%= text_field_tag "v[#{field}][]", query.values_for(field).try(:first), :id => "values_#{field}", :size => 3, :class => "select-small" %> <%= l(:label_day_plural) %> <% when :string, :text %> - <%= text_field_tag "v[#{field}][]", query.values_for(field), :id => "values_#{field}", :size => 30, :class => "select-small" %> + <%= text_field_tag "v[#{field}][]", query.values_for(field).try(:first), :id => "values_#{field}", :size => 30, :class => "select-small" %> <% when :integer %> - <%= text_field_tag "v[#{field}][]", query.values_for(field), :id => "values_#{field}", :size => 3, :class => "select-small" %> + <%= text_field_tag "v[#{field}][]", query.values_for(field).try(:first), :id => "values_#{field}", :size => 3, :class => "select-small" %> <% end %> diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 8d02d9d3..e0d413a6 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -960,26 +960,26 @@ bg: field_effective_date: Дата text_default_encoding: "По подразбиране: UTF-8" text_git_repo_example: a bare and local repository (e.g. /gitrepo, c:\gitrepo) - label_notify_member_plural: Email issue updates + label_notify_member_plural: Изпращане на e-mail при промени в задачите label_path_encoding: Кодиране на пътищата text_mercurial_repo_example: локално хранилище (например /hgrepo, c:\hgrepo) label_diff: diff - setting_issue_startdate_is_adddate: Use current date as start date for new issues - description_search: Searchfield - description_user_mail_notification: Mail notification settings - description_date_range_list: Choose range from list - description_date_to: Enter end date - description_query_sort_criteria_attribute: Sort attribute - description_message_content: Message content - description_wiki_subpages_reassign: Choose new parent page - description_available_columns: Available Columns - description_selected_columns: Selected Columns - description_date_range_interval: Choose range by selecting start and end date - description_project_scope: Search scope - description_issue_category_reassign: Choose issue category - description_query_sort_criteria_direction: Sort direction - description_notes: Notes - description_filter: Filter - description_choose_project: Projects - description_date_from: Enter start date - label_deleted_custom_field: (deleted custom field) + setting_issue_startdate_is_adddate: Използване на текущата дата като начална дата за нови задачи + description_search: Търсене + description_user_mail_notification: Конфигурация известията по пощата + description_date_range_list: Изберете диапазон от списъка + description_date_to: Въведете крайна дата + description_query_sort_criteria_attribute: Атрибут на сортиране + description_message_content: Съдържание на съобщението + description_wiki_subpages_reassign: Изберете нова родителска страница + description_available_columns: Налични колони + description_selected_columns: Избрани колони + description_date_range_interval: Изберете диапазон чрез задаване на начална и крайна дати + description_project_scope: Обхват на търсенето + description_issue_category_reassign: Изберете категория + description_query_sort_criteria_direction: Посока на сортиране + description_notes: Бележки + description_filter: Филтър + description_choose_project: Проекти + description_date_from: Въведете начална дата + label_deleted_custom_field: (изтрито потребителско поле) diff --git a/config/preinitializer.rb b/config/preinitializer.rb index dd380ab2..41b8d59b 100644 --- a/config/preinitializer.rb +++ b/config/preinitializer.rb @@ -19,9 +19,9 @@ rescue LoadError raise "Could not load the bundler gem. Install it with `gem install bundler`." end -if Gem::Version.new(Bundler::VERSION) <= Gem::Version.new("0.9.24") - raise RuntimeError, "Your bundler version is too old for Rails 2.3." + - "Run `gem install bundler` to upgrade." +if Gem::Version.new(Bundler::VERSION) < Gem::Version.new("1.0.6") + raise RuntimeError, "Your bundler version is too old. We require " + + "at least version 1.0.6. Run `gem install bundler` to upgrade." end begin @@ -29,6 +29,6 @@ begin ENV["BUNDLE_GEMFILE"] = File.expand_path("../../Gemfile", __FILE__) Bundler.setup rescue Bundler::GemNotFound - raise RuntimeError, "Bundler couldn't find some gems." + + raise RuntimeError, "Bundler couldn't find some gems. " + "Did you run `bundle install`?" end diff --git a/config/routes.rb b/config/routes.rb index 3dd3169b..89fb761c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -137,8 +137,7 @@ ActionController::Routing::Routes.draw do |map| map.resources :users, :member => { :edit_membership => :post, :destroy_membership => :post - }, - :except => [:destroy] + } # For nice "roadmap" in the url for the index action map.connect 'projects/:project_id/roadmap', :controller => 'versions', :action => 'index' diff --git a/doc/CHANGELOG.rdoc b/doc/CHANGELOG.rdoc index 3069f255..d7b15b31 100644 --- a/doc/CHANGELOG.rdoc +++ b/doc/CHANGELOG.rdoc @@ -1,211204 +1,19 @@ = 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 "