##// END OF EJS Templates
Backported r2740 to r2742 from trunk....
Jean-Philippe Lang -
r2648:e27460a0a78d
parent child
Show More
@@ -1,44 +1,45
1 # redMine - project management software
1 # redMine - project management software
2 # Copyright (C) 2006 Jean-Philippe Lang
2 # Copyright (C) 2006 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require 'rails_generator/secret_key_generator'
19
18 class Token < ActiveRecord::Base
20 class Token < ActiveRecord::Base
19 belongs_to :user
21 belongs_to :user
22 validates_uniqueness_of :value
20
23
21 @@validity_time = 1.day
24 @@validity_time = 1.day
22
25
23 def before_create
26 def before_create
24 self.value = Token.generate_token_value
27 self.value = Token.generate_token_value
25 end
28 end
26
29
27 # Return true if token has expired
30 # Return true if token has expired
28 def expired?
31 def expired?
29 return Time.now > self.created_on + @@validity_time
32 return Time.now > self.created_on + @@validity_time
30 end
33 end
31
34
32 # Delete all expired tokens
35 # Delete all expired tokens
33 def self.destroy_expired
36 def self.destroy_expired
34 Token.delete_all ["action <> 'feeds' AND created_on < ?", Time.now - @@validity_time]
37 Token.delete_all ["action <> 'feeds' AND created_on < ?", Time.now - @@validity_time]
35 end
38 end
36
39
37 private
40 private
38 def self.generate_token_value
41 def self.generate_token_value
39 chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a
42 s = Rails::SecretKeyGenerator.new(object_id).generate_secret
40 token_value = ''
43 s[0, 40]
41 40.times { |i| token_value << chars[rand(chars.size-1)] }
42 token_value
43 end
44 end
44 end
45 end
@@ -1,294 +1,300
1 # redMine - project management software
1 # redMine - project management software
2 # Copyright (C) 2006-2007 Jean-Philippe Lang
2 # Copyright (C) 2006-2007 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require "digest/sha1"
18 require "digest/sha1"
19
19
20 class User < ActiveRecord::Base
20 class User < ActiveRecord::Base
21
21
22 # Account statuses
22 # Account statuses
23 STATUS_ANONYMOUS = 0
23 STATUS_ANONYMOUS = 0
24 STATUS_ACTIVE = 1
24 STATUS_ACTIVE = 1
25 STATUS_REGISTERED = 2
25 STATUS_REGISTERED = 2
26 STATUS_LOCKED = 3
26 STATUS_LOCKED = 3
27
27
28 USER_FORMATS = {
28 USER_FORMATS = {
29 :firstname_lastname => '#{firstname} #{lastname}',
29 :firstname_lastname => '#{firstname} #{lastname}',
30 :firstname => '#{firstname}',
30 :firstname => '#{firstname}',
31 :lastname_firstname => '#{lastname} #{firstname}',
31 :lastname_firstname => '#{lastname} #{firstname}',
32 :lastname_coma_firstname => '#{lastname}, #{firstname}',
32 :lastname_coma_firstname => '#{lastname}, #{firstname}',
33 :username => '#{login}'
33 :username => '#{login}'
34 }
34 }
35
35
36 has_many :memberships, :class_name => 'Member', :include => [ :project, :role ], :conditions => "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}", :order => "#{Project.table_name}.name"
36 has_many :memberships, :class_name => 'Member', :include => [ :project, :role ], :conditions => "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}", :order => "#{Project.table_name}.name"
37 has_many :members, :dependent => :delete_all
37 has_many :members, :dependent => :delete_all
38 has_many :projects, :through => :memberships
38 has_many :projects, :through => :memberships
39 has_many :issue_categories, :foreign_key => 'assigned_to_id', :dependent => :nullify
39 has_many :issue_categories, :foreign_key => 'assigned_to_id', :dependent => :nullify
40 has_many :changesets, :dependent => :nullify
40 has_many :changesets, :dependent => :nullify
41 has_one :preference, :dependent => :destroy, :class_name => 'UserPreference'
41 has_one :preference, :dependent => :destroy, :class_name => 'UserPreference'
42 has_one :rss_token, :dependent => :destroy, :class_name => 'Token', :conditions => "action='feeds'"
42 has_one :rss_token, :dependent => :destroy, :class_name => 'Token', :conditions => "action='feeds'"
43 belongs_to :auth_source
43 belongs_to :auth_source
44
44
45 # Active non-anonymous users scope
45 # Active non-anonymous users scope
46 named_scope :active, :conditions => "#{User.table_name}.status = #{STATUS_ACTIVE}"
46 named_scope :active, :conditions => "#{User.table_name}.status = #{STATUS_ACTIVE}"
47
47
48 acts_as_customizable
48 acts_as_customizable
49
49
50 attr_accessor :password, :password_confirmation
50 attr_accessor :password, :password_confirmation
51 attr_accessor :last_before_login_on
51 attr_accessor :last_before_login_on
52 # Prevents unauthorized assignments
52 # Prevents unauthorized assignments
53 attr_protected :login, :admin, :password, :password_confirmation, :hashed_password
53 attr_protected :login, :admin, :password, :password_confirmation, :hashed_password
54
54
55 validates_presence_of :login, :firstname, :lastname, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
55 validates_presence_of :login, :firstname, :lastname, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
56 validates_uniqueness_of :login, :if => Proc.new { |user| !user.login.blank? }
56 validates_uniqueness_of :login, :if => Proc.new { |user| !user.login.blank? }
57 validates_uniqueness_of :mail, :if => Proc.new { |user| !user.mail.blank? }
57 validates_uniqueness_of :mail, :if => Proc.new { |user| !user.mail.blank? }
58 # Login must contain lettres, numbers, underscores only
58 # Login must contain lettres, numbers, underscores only
59 validates_format_of :login, :with => /^[a-z0-9_\-@\.]*$/i
59 validates_format_of :login, :with => /^[a-z0-9_\-@\.]*$/i
60 validates_length_of :login, :maximum => 30
60 validates_length_of :login, :maximum => 30
61 validates_format_of :firstname, :lastname, :with => /^[\w\s\'\-\.]*$/i
61 validates_format_of :firstname, :lastname, :with => /^[\w\s\'\-\.]*$/i
62 validates_length_of :firstname, :lastname, :maximum => 30
62 validates_length_of :firstname, :lastname, :maximum => 30
63 validates_format_of :mail, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :allow_nil => true
63 validates_format_of :mail, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :allow_nil => true
64 validates_length_of :mail, :maximum => 60, :allow_nil => true
64 validates_length_of :mail, :maximum => 60, :allow_nil => true
65 validates_length_of :password, :minimum => 4, :allow_nil => true
65 validates_length_of :password, :minimum => 4, :allow_nil => true
66 validates_confirmation_of :password, :allow_nil => true
66 validates_confirmation_of :password, :allow_nil => true
67
67
68 def before_create
68 def before_create
69 self.mail_notification = false
69 self.mail_notification = false
70 true
70 true
71 end
71 end
72
72
73 def before_save
73 def before_save
74 # update hashed_password if password was set
74 # update hashed_password if password was set
75 self.hashed_password = User.hash_password(self.password) if self.password
75 self.hashed_password = User.hash_password(self.password) if self.password
76 end
76 end
77
77
78 def reload(*args)
78 def reload(*args)
79 @name = nil
79 @name = nil
80 super
80 super
81 end
81 end
82
82
83 # Returns the user that matches provided login and password, or nil
83 # Returns the user that matches provided login and password, or nil
84 def self.try_to_login(login, password)
84 def self.try_to_login(login, password)
85 # Make sure no one can sign in with an empty password
85 # Make sure no one can sign in with an empty password
86 return nil if password.to_s.empty?
86 return nil if password.to_s.empty?
87 user = find(:first, :conditions => ["login=?", login])
87 user = find(:first, :conditions => ["login=?", login])
88 if user
88 if user
89 # user is already in local database
89 # user is already in local database
90 return nil if !user.active?
90 return nil if !user.active?
91 if user.auth_source
91 if user.auth_source
92 # user has an external authentication method
92 # user has an external authentication method
93 return nil unless user.auth_source.authenticate(login, password)
93 return nil unless user.auth_source.authenticate(login, password)
94 else
94 else
95 # authentication with local password
95 # authentication with local password
96 return nil unless User.hash_password(password) == user.hashed_password
96 return nil unless User.hash_password(password) == user.hashed_password
97 end
97 end
98 else
98 else
99 # user is not yet registered, try to authenticate with available sources
99 # user is not yet registered, try to authenticate with available sources
100 attrs = AuthSource.authenticate(login, password)
100 attrs = AuthSource.authenticate(login, password)
101 if attrs
101 if attrs
102 user = new(*attrs)
102 user = new(*attrs)
103 user.login = login
103 user.login = login
104 user.language = Setting.default_language
104 user.language = Setting.default_language
105 if user.save
105 if user.save
106 user.reload
106 user.reload
107 logger.info("User '#{user.login}' created from the LDAP") if logger
107 logger.info("User '#{user.login}' created from the LDAP") if logger
108 end
108 end
109 end
109 end
110 end
110 end
111 user.update_attribute(:last_login_on, Time.now) if user && !user.new_record?
111 user.update_attribute(:last_login_on, Time.now) if user && !user.new_record?
112 user
112 user
113 rescue => text
113 rescue => text
114 raise text
114 raise text
115 end
115 end
116
116
117 # Return user's full name for display
117 # Return user's full name for display
118 def name(formatter = nil)
118 def name(formatter = nil)
119 if formatter
119 if formatter
120 eval('"' + (USER_FORMATS[formatter] || USER_FORMATS[:firstname_lastname]) + '"')
120 eval('"' + (USER_FORMATS[formatter] || USER_FORMATS[:firstname_lastname]) + '"')
121 else
121 else
122 @name ||= eval('"' + (USER_FORMATS[Setting.user_format] || USER_FORMATS[:firstname_lastname]) + '"')
122 @name ||= eval('"' + (USER_FORMATS[Setting.user_format] || USER_FORMATS[:firstname_lastname]) + '"')
123 end
123 end
124 end
124 end
125
125
126 def active?
126 def active?
127 self.status == STATUS_ACTIVE
127 self.status == STATUS_ACTIVE
128 end
128 end
129
129
130 def registered?
130 def registered?
131 self.status == STATUS_REGISTERED
131 self.status == STATUS_REGISTERED
132 end
132 end
133
133
134 def locked?
134 def locked?
135 self.status == STATUS_LOCKED
135 self.status == STATUS_LOCKED
136 end
136 end
137
137
138 def check_password?(clear_password)
138 def check_password?(clear_password)
139 User.hash_password(clear_password) == self.hashed_password
139 User.hash_password(clear_password) == self.hashed_password
140 end
140 end
141
141
142 def pref
142 def pref
143 self.preference ||= UserPreference.new(:user => self)
143 self.preference ||= UserPreference.new(:user => self)
144 end
144 end
145
145
146 def time_zone
146 def time_zone
147 @time_zone ||= (self.pref.time_zone.blank? ? nil : ActiveSupport::TimeZone[self.pref.time_zone])
147 @time_zone ||= (self.pref.time_zone.blank? ? nil : ActiveSupport::TimeZone[self.pref.time_zone])
148 end
148 end
149
149
150 def wants_comments_in_reverse_order?
150 def wants_comments_in_reverse_order?
151 self.pref[:comments_sorting] == 'desc'
151 self.pref[:comments_sorting] == 'desc'
152 end
152 end
153
153
154 # Return user's RSS key (a 40 chars long string), used to access feeds
154 # Return user's RSS key (a 40 chars long string), used to access feeds
155 def rss_key
155 def rss_key
156 token = self.rss_token || Token.create(:user => self, :action => 'feeds')
156 token = self.rss_token || Token.create(:user => self, :action => 'feeds')
157 token.value
157 token.value
158 end
158 end
159
159
160 # Return an array of project ids for which the user has explicitly turned mail notifications on
160 # Return an array of project ids for which the user has explicitly turned mail notifications on
161 def notified_projects_ids
161 def notified_projects_ids
162 @notified_projects_ids ||= memberships.select {|m| m.mail_notification?}.collect(&:project_id)
162 @notified_projects_ids ||= memberships.select {|m| m.mail_notification?}.collect(&:project_id)
163 end
163 end
164
164
165 def notified_project_ids=(ids)
165 def notified_project_ids=(ids)
166 Member.update_all("mail_notification = #{connection.quoted_false}", ['user_id = ?', id])
166 Member.update_all("mail_notification = #{connection.quoted_false}", ['user_id = ?', id])
167 Member.update_all("mail_notification = #{connection.quoted_true}", ['user_id = ? AND project_id IN (?)', id, ids]) if ids && !ids.empty?
167 Member.update_all("mail_notification = #{connection.quoted_true}", ['user_id = ? AND project_id IN (?)', id, ids]) if ids && !ids.empty?
168 @notified_projects_ids = nil
168 @notified_projects_ids = nil
169 notified_projects_ids
169 notified_projects_ids
170 end
170 end
171
171
172 def self.find_by_rss_key(key)
172 def self.find_by_rss_key(key)
173 token = Token.find_by_value(key)
173 token = Token.find_by_value(key)
174 token && token.user.active? ? token.user : nil
174 token && token.user.active? ? token.user : nil
175 end
175 end
176
176
177 def self.find_by_autologin_key(key)
177 def self.find_by_autologin_key(key)
178 token = Token.find_by_action_and_value('autologin', key)
178 tokens = Token.find_all_by_action_and_value('autologin', key)
179 token && (token.created_on > Setting.autologin.to_i.day.ago) && token.user.active? ? token.user : nil
179 # Make sure there's only 1 token that matches the key
180 if tokens.size == 1
181 token = tokens.first
182 if (token.created_on > Setting.autologin.to_i.day.ago) && token.user && token.user.active?
183 token.user
184 end
185 end
180 end
186 end
181
187
182 # Makes find_by_mail case-insensitive
188 # Makes find_by_mail case-insensitive
183 def self.find_by_mail(mail)
189 def self.find_by_mail(mail)
184 find(:first, :conditions => ["LOWER(mail) = ?", mail.to_s.downcase])
190 find(:first, :conditions => ["LOWER(mail) = ?", mail.to_s.downcase])
185 end
191 end
186
192
187 # Sort users by their display names
193 # Sort users by their display names
188 def <=>(user)
194 def <=>(user)
189 self.to_s.downcase <=> user.to_s.downcase
195 self.to_s.downcase <=> user.to_s.downcase
190 end
196 end
191
197
192 def to_s
198 def to_s
193 name
199 name
194 end
200 end
195
201
196 def logged?
202 def logged?
197 true
203 true
198 end
204 end
199
205
200 def anonymous?
206 def anonymous?
201 !logged?
207 !logged?
202 end
208 end
203
209
204 # Return user's role for project
210 # Return user's role for project
205 def role_for_project(project)
211 def role_for_project(project)
206 # No role on archived projects
212 # No role on archived projects
207 return nil unless project && project.active?
213 return nil unless project && project.active?
208 if logged?
214 if logged?
209 # Find project membership
215 # Find project membership
210 membership = memberships.detect {|m| m.project_id == project.id}
216 membership = memberships.detect {|m| m.project_id == project.id}
211 if membership
217 if membership
212 membership.role
218 membership.role
213 else
219 else
214 @role_non_member ||= Role.non_member
220 @role_non_member ||= Role.non_member
215 end
221 end
216 else
222 else
217 @role_anonymous ||= Role.anonymous
223 @role_anonymous ||= Role.anonymous
218 end
224 end
219 end
225 end
220
226
221 # Return true if the user is a member of project
227 # Return true if the user is a member of project
222 def member_of?(project)
228 def member_of?(project)
223 role_for_project(project).member?
229 role_for_project(project).member?
224 end
230 end
225
231
226 # Return true if the user is allowed to do the specified action on project
232 # Return true if the user is allowed to do the specified action on project
227 # action can be:
233 # action can be:
228 # * a parameter-like Hash (eg. :controller => 'projects', :action => 'edit')
234 # * a parameter-like Hash (eg. :controller => 'projects', :action => 'edit')
229 # * a permission Symbol (eg. :edit_project)
235 # * a permission Symbol (eg. :edit_project)
230 def allowed_to?(action, project, options={})
236 def allowed_to?(action, project, options={})
231 if project
237 if project
232 # No action allowed on archived projects
238 # No action allowed on archived projects
233 return false unless project.active?
239 return false unless project.active?
234 # No action allowed on disabled modules
240 # No action allowed on disabled modules
235 return false unless project.allows_to?(action)
241 return false unless project.allows_to?(action)
236 # Admin users are authorized for anything else
242 # Admin users are authorized for anything else
237 return true if admin?
243 return true if admin?
238
244
239 role = role_for_project(project)
245 role = role_for_project(project)
240 return false unless role
246 return false unless role
241 role.allowed_to?(action) && (project.is_public? || role.member?)
247 role.allowed_to?(action) && (project.is_public? || role.member?)
242
248
243 elsif options[:global]
249 elsif options[:global]
244 # authorize if user has at least one role that has this permission
250 # authorize if user has at least one role that has this permission
245 roles = memberships.collect {|m| m.role}.uniq
251 roles = memberships.collect {|m| m.role}.uniq
246 roles.detect {|r| r.allowed_to?(action)} || (self.logged? ? Role.non_member.allowed_to?(action) : Role.anonymous.allowed_to?(action))
252 roles.detect {|r| r.allowed_to?(action)} || (self.logged? ? Role.non_member.allowed_to?(action) : Role.anonymous.allowed_to?(action))
247 else
253 else
248 false
254 false
249 end
255 end
250 end
256 end
251
257
252 def self.current=(user)
258 def self.current=(user)
253 @current_user = user
259 @current_user = user
254 end
260 end
255
261
256 def self.current
262 def self.current
257 @current_user ||= User.anonymous
263 @current_user ||= User.anonymous
258 end
264 end
259
265
260 def self.anonymous
266 def self.anonymous
261 anonymous_user = AnonymousUser.find(:first)
267 anonymous_user = AnonymousUser.find(:first)
262 if anonymous_user.nil?
268 if anonymous_user.nil?
263 anonymous_user = AnonymousUser.create(:lastname => 'Anonymous', :firstname => '', :mail => '', :login => '', :status => 0)
269 anonymous_user = AnonymousUser.create(:lastname => 'Anonymous', :firstname => '', :mail => '', :login => '', :status => 0)
264 raise 'Unable to create the anonymous user.' if anonymous_user.new_record?
270 raise 'Unable to create the anonymous user.' if anonymous_user.new_record?
265 end
271 end
266 anonymous_user
272 anonymous_user
267 end
273 end
268
274
269 private
275 private
270 # Return password digest
276 # Return password digest
271 def self.hash_password(clear_password)
277 def self.hash_password(clear_password)
272 Digest::SHA1.hexdigest(clear_password || "")
278 Digest::SHA1.hexdigest(clear_password || "")
273 end
279 end
274 end
280 end
275
281
276 class AnonymousUser < User
282 class AnonymousUser < User
277
283
278 def validate_on_create
284 def validate_on_create
279 # There should be only one AnonymousUser in the database
285 # There should be only one AnonymousUser in the database
280 errors.add_to_base 'An anonymous user already exists.' if AnonymousUser.find(:first)
286 errors.add_to_base 'An anonymous user already exists.' if AnonymousUser.find(:first)
281 end
287 end
282
288
283 def available_custom_fields
289 def available_custom_fields
284 []
290 []
285 end
291 end
286
292
287 # Overrides a few properties
293 # Overrides a few properties
288 def logged?; false end
294 def logged?; false end
289 def admin; false end
295 def admin; false end
290 def name; 'Anonymous' end
296 def name; 'Anonymous' end
291 def mail; nil end
297 def mail; nil end
292 def time_zone; nil end
298 def time_zone; nil end
293 def rss_key; nil end
299 def rss_key; nil end
294 end
300 end
@@ -1,911 +1,912
1 == Redmine changelog
1 == Redmine changelog
2
2
3 Redmine - project management software
3 Redmine - project management software
4 Copyright (C) 2006-2009 Jean-Philippe Lang
4 Copyright (C) 2006-2009 Jean-Philippe Lang
5 http://www.redmine.org/
5 http://www.redmine.org/
6
6
7
7
8 == 2009-xx-xx v0.8.4
8 == 2009-xx-xx v0.8.4
9
9
10 * Allow textile mailto links
10 * Allow textile mailto links
11 * Fixed: memory consumption when uploading file
11 * Fixed: memory consumption when uploading file
12 * Fixed: Mercurial integration doesn't work if Redmine is installed in folder path containing space
12 * Fixed: Mercurial integration doesn't work if Redmine is installed in folder path containing space
13 * Fixed: an error is raised when no tab is available on project settings
13 * Fixed: an error is raised when no tab is available on project settings
14 * Fixed: insert image macro corrupts urls with excalamation marks
14 * Fixed: insert image macro corrupts urls with excalamation marks
15 * Fixed: error on cross-project gantt PNG export
15 * Fixed: error on cross-project gantt PNG export
16 * Fixed: self and alternate links in atom feeds do not respect Atom specs
16 * Fixed: self and alternate links in atom feeds do not respect Atom specs
17 * Fixed: accept any svn tunnel scheme in repository URL
17 * Fixed: accept any svn tunnel scheme in repository URL
18 * Fixed: issues/show should accept user's rss key
18 * Fixed: issues/show should accept user's rss key
19 * Fixed: consistency of custom fields display on the issue detail view
19 * Fixed: consistency of custom fields display on the issue detail view
20 * Fixed: wiki comments length validation is missing
20 * Fixed: wiki comments length validation is missing
21 * Fixed: weak autologin token generation algorithm causes duplicate tokens
21
22
22
23
23 == 2009-04-05 v0.8.3
24 == 2009-04-05 v0.8.3
24
25
25 * Separate project field and subject in cross-project issue view
26 * Separate project field and subject in cross-project issue view
26 * Ability to set language for redmine:load_default_data task using REDMINE_LANG environment variable
27 * Ability to set language for redmine:load_default_data task using REDMINE_LANG environment variable
27 * Rescue Redmine::DefaultData::DataAlreadyLoaded in redmine:load_default_data task
28 * Rescue Redmine::DefaultData::DataAlreadyLoaded in redmine:load_default_data task
28 * CSS classes to highlight own and assigned issues
29 * CSS classes to highlight own and assigned issues
29 * Hide "New file" link on wiki pages from printing
30 * Hide "New file" link on wiki pages from printing
30 * Flush buffer when asking for language in redmine:load_default_data task
31 * Flush buffer when asking for language in redmine:load_default_data task
31 * Minimum project identifier length set to 1
32 * Minimum project identifier length set to 1
32 * Include headers so that emails don't trigger vacation auto-responders
33 * Include headers so that emails don't trigger vacation auto-responders
33 * Fixed: Time entries csv export links for all projects are malformed
34 * Fixed: Time entries csv export links for all projects are malformed
34 * Fixed: Files without Version aren't visible in the Activity page
35 * Fixed: Files without Version aren't visible in the Activity page
35 * Fixed: Commit logs are centered in the repo browser
36 * Fixed: Commit logs are centered in the repo browser
36 * Fixed: News summary field content is not searchable
37 * Fixed: News summary field content is not searchable
37 * Fixed: Journal#save has a wrong signature
38 * Fixed: Journal#save has a wrong signature
38 * Fixed: Email footer signature convention
39 * Fixed: Email footer signature convention
39 * Fixed: Timelog report do not show time for non-versioned issues
40 * Fixed: Timelog report do not show time for non-versioned issues
40
41
41
42
42 == 2009-03-07 v0.8.2
43 == 2009-03-07 v0.8.2
43
44
44 * Send an email to the user when an administrator activates a registered user
45 * Send an email to the user when an administrator activates a registered user
45 * Strip keywords from received email body
46 * Strip keywords from received email body
46 * Footer updated to 2009
47 * Footer updated to 2009
47 * Show RSS-link even when no issues is found
48 * Show RSS-link even when no issues is found
48 * One click filter action in activity view
49 * One click filter action in activity view
49 * Clickable/linkable line #'s while browsing the repo or viewing a file
50 * Clickable/linkable line #'s while browsing the repo or viewing a file
50 * Links to versions on files list
51 * Links to versions on files list
51 * Added request and controller objects to the hooks by default
52 * Added request and controller objects to the hooks by default
52 * Fixed: exporting an issue with attachments to PDF raises an error
53 * Fixed: exporting an issue with attachments to PDF raises an error
53 * Fixed: "too few arguments" error may occur on activerecord error translation
54 * Fixed: "too few arguments" error may occur on activerecord error translation
54 * Fixed: "Default columns Displayed on the Issues list" setting is not easy to read
55 * Fixed: "Default columns Displayed on the Issues list" setting is not easy to read
55 * Fixed: visited links to closed tickets are not striked through with IE6
56 * Fixed: visited links to closed tickets are not striked through with IE6
56 * Fixed: MailHandler#plain_text_body returns nil if there was nothing to strip
57 * Fixed: MailHandler#plain_text_body returns nil if there was nothing to strip
57 * Fixed: MailHandler raises an error when processing an email without From header
58 * Fixed: MailHandler raises an error when processing an email without From header
58
59
59
60
60 == 2009-02-15 v0.8.1
61 == 2009-02-15 v0.8.1
61
62
62 * Select watchers on new issue form
63 * Select watchers on new issue form
63 * Issue description is no longer a required field
64 * Issue description is no longer a required field
64 * Files module: ability to add files without version
65 * Files module: ability to add files without version
65 * Jump to the current tab when using the project quick-jump combo
66 * Jump to the current tab when using the project quick-jump combo
66 * Display a warning if some attachments were not saved
67 * Display a warning if some attachments were not saved
67 * Import custom fields values from emails on issue creation
68 * Import custom fields values from emails on issue creation
68 * Show view/annotate/download links on entry and annotate views
69 * Show view/annotate/download links on entry and annotate views
69 * Admin Info Screen: Display if plugin assets directory is writable
70 * Admin Info Screen: Display if plugin assets directory is writable
70 * Adds a 'Create and continue' button on the new issue form
71 * Adds a 'Create and continue' button on the new issue form
71 * IMAP: add options to move received emails
72 * IMAP: add options to move received emails
72 * Do not show Category field when categories are not defined
73 * Do not show Category field when categories are not defined
73 * Lower the project identifier limit to a minimum of two characters
74 * Lower the project identifier limit to a minimum of two characters
74 * Add "closed" html class to closed entries in issue list
75 * Add "closed" html class to closed entries in issue list
75 * Fixed: broken redirect URL on login failure
76 * Fixed: broken redirect URL on login failure
76 * Fixed: Deleted files are shown when using Darcs
77 * Fixed: Deleted files are shown when using Darcs
77 * Fixed: Darcs adapter works on Win32 only
78 * Fixed: Darcs adapter works on Win32 only
78 * Fixed: syntax highlight doesn't appear in new ticket preview
79 * Fixed: syntax highlight doesn't appear in new ticket preview
79 * Fixed: email notification for changes I make still occurs when running Repository.fetch_changesets
80 * Fixed: email notification for changes I make still occurs when running Repository.fetch_changesets
80 * Fixed: no error is raised when entering invalid hours on the issue update form
81 * Fixed: no error is raised when entering invalid hours on the issue update form
81 * Fixed: Details time log report CSV export doesn't honour date format from settings
82 * Fixed: Details time log report CSV export doesn't honour date format from settings
82 * Fixed: invalid css classes on issue details
83 * Fixed: invalid css classes on issue details
83 * Fixed: Trac importer creates duplicate custom values
84 * Fixed: Trac importer creates duplicate custom values
84 * Fixed: inline attached image should not match partial filename
85 * Fixed: inline attached image should not match partial filename
85
86
86
87
87 == 2008-12-30 v0.8.0
88 == 2008-12-30 v0.8.0
88
89
89 * Setting added in order to limit the number of diff lines that should be displayed
90 * Setting added in order to limit the number of diff lines that should be displayed
90 * Makes logged-in username in topbar linking to
91 * Makes logged-in username in topbar linking to
91 * Mail handler: strip tags when receiving a html-only email
92 * Mail handler: strip tags when receiving a html-only email
92 * Mail handler: add watchers before sending notification
93 * Mail handler: add watchers before sending notification
93 * Adds a css class (overdue) to overdue issues on issue lists and detail views
94 * Adds a css class (overdue) to overdue issues on issue lists and detail views
94 * Fixed: project activity truncated after viewing user's activity
95 * Fixed: project activity truncated after viewing user's activity
95 * Fixed: email address entered for password recovery shouldn't be case-sensitive
96 * Fixed: email address entered for password recovery shouldn't be case-sensitive
96 * Fixed: default flag removed when editing a default enumeration
97 * Fixed: default flag removed when editing a default enumeration
97 * Fixed: default category ignored when adding a document
98 * Fixed: default category ignored when adding a document
98 * Fixed: error on repository user mapping when a repository username is blank
99 * Fixed: error on repository user mapping when a repository username is blank
99 * Fixed: Firefox cuts off large diffs
100 * Fixed: Firefox cuts off large diffs
100 * Fixed: CVS browser should not show dead revisions (deleted files)
101 * Fixed: CVS browser should not show dead revisions (deleted files)
101 * Fixed: escape double-quotes in image titles
102 * Fixed: escape double-quotes in image titles
102 * Fixed: escape textarea content when editing a issue note
103 * Fixed: escape textarea content when editing a issue note
103 * Fixed: JS error on context menu with IE
104 * Fixed: JS error on context menu with IE
104 * Fixed: bold syntax around single character in series doesn't work
105 * Fixed: bold syntax around single character in series doesn't work
105 * Fixed several XSS vulnerabilities
106 * Fixed several XSS vulnerabilities
106 * Fixed a SQL injection vulnerability
107 * Fixed a SQL injection vulnerability
107
108
108
109
109 == 2008-12-07 v0.8.0-rc1
110 == 2008-12-07 v0.8.0-rc1
110
111
111 * Wiki page protection
112 * Wiki page protection
112 * Wiki page hierarchy. Parent page can be assigned on the Rename screen
113 * Wiki page hierarchy. Parent page can be assigned on the Rename screen
113 * Adds support for issue creation via email
114 * Adds support for issue creation via email
114 * Adds support for free ticket filtering and custom queries on Gantt chart and calendar
115 * Adds support for free ticket filtering and custom queries on Gantt chart and calendar
115 * Cross-project search
116 * Cross-project search
116 * Ability to search a project and its subprojects
117 * Ability to search a project and its subprojects
117 * Ability to search the projects the user belongs to
118 * Ability to search the projects the user belongs to
118 * Adds custom fields on time entries
119 * Adds custom fields on time entries
119 * Adds boolean and list custom fields for time entries as criteria on time report
120 * Adds boolean and list custom fields for time entries as criteria on time report
120 * Cross-project time reports
121 * Cross-project time reports
121 * Display latest user's activity on account/show view
122 * Display latest user's activity on account/show view
122 * Show last connexion time on user's page
123 * Show last connexion time on user's page
123 * Obfuscates email address on user's account page using javascript
124 * Obfuscates email address on user's account page using javascript
124 * wiki TOC rendered as an unordered list
125 * wiki TOC rendered as an unordered list
125 * Adds the ability to search for a user on the administration users list
126 * Adds the ability to search for a user on the administration users list
126 * Adds the ability to search for a project name or identifier on the administration projects list
127 * Adds the ability to search for a project name or identifier on the administration projects list
127 * Redirect user to the previous page after logging in
128 * Redirect user to the previous page after logging in
128 * Adds a permission 'view wiki edits' so that wiki history can be hidden to certain users
129 * Adds a permission 'view wiki edits' so that wiki history can be hidden to certain users
129 * Adds permissions for viewing the watcher list and adding new watchers on the issue detail view
130 * Adds permissions for viewing the watcher list and adding new watchers on the issue detail view
130 * Adds permissions to let users edit and/or delete their messages
131 * Adds permissions to let users edit and/or delete their messages
131 * Link to activity view when displaying dates
132 * Link to activity view when displaying dates
132 * Hide Redmine version in atom feeds and pdf properties
133 * Hide Redmine version in atom feeds and pdf properties
133 * Maps repository users to Redmine users. Users with same username or email are automatically mapped. Mapping can be manually adjusted in repository settings. Multiple usernames can be mapped to the same Redmine user.
134 * Maps repository users to Redmine users. Users with same username or email are automatically mapped. Mapping can be manually adjusted in repository settings. Multiple usernames can be mapped to the same Redmine user.
134 * Sort users by their display names so that user dropdown lists are sorted alphabetically
135 * Sort users by their display names so that user dropdown lists are sorted alphabetically
135 * Adds estimated hours to issue filters
136 * Adds estimated hours to issue filters
136 * Switch order of current and previous revisions in side-by-side diff
137 * Switch order of current and previous revisions in side-by-side diff
137 * Render the commit changes list as a tree
138 * Render the commit changes list as a tree
138 * Adds watch/unwatch functionality at forum topic level
139 * Adds watch/unwatch functionality at forum topic level
139 * When moving an issue to another project, reassign it to the category with same name if any
140 * When moving an issue to another project, reassign it to the category with same name if any
140 * Adds child_pages macro for wiki pages
141 * Adds child_pages macro for wiki pages
141 * Use GET instead of POST on roadmap (#718), gantt and calendar forms
142 * Use GET instead of POST on roadmap (#718), gantt and calendar forms
142 * Search engine: display total results count and count by result type
143 * Search engine: display total results count and count by result type
143 * Email delivery configuration moved to an unversioned YAML file (config/email.yml, see the sample file)
144 * Email delivery configuration moved to an unversioned YAML file (config/email.yml, see the sample file)
144 * Adds icons on search results
145 * Adds icons on search results
145 * Adds 'Edit' link on account/show for admin users
146 * Adds 'Edit' link on account/show for admin users
146 * Adds Lock/Unlock/Activate link on user edit screen
147 * Adds Lock/Unlock/Activate link on user edit screen
147 * Adds user count in status drop down on admin user list
148 * Adds user count in status drop down on admin user list
148 * Adds multi-levels blockquotes support by using > at the beginning of lines
149 * Adds multi-levels blockquotes support by using > at the beginning of lines
149 * Adds a Reply link to each issue note
150 * Adds a Reply link to each issue note
150 * Adds plain text only option for mail notifications
151 * Adds plain text only option for mail notifications
151 * Gravatar support for issue detail, user grid, and activity stream (disabled by default)
152 * Gravatar support for issue detail, user grid, and activity stream (disabled by default)
152 * Adds 'Delete wiki pages attachments' permission
153 * Adds 'Delete wiki pages attachments' permission
153 * Show the most recent file when displaying an inline image
154 * Show the most recent file when displaying an inline image
154 * Makes permission screens localized
155 * Makes permission screens localized
155 * AuthSource list: display associated users count and disable 'Delete' buton if any
156 * AuthSource list: display associated users count and disable 'Delete' buton if any
156 * Make the 'duplicates of' relation asymmetric
157 * Make the 'duplicates of' relation asymmetric
157 * Adds username to the password reminder email
158 * Adds username to the password reminder email
158 * Adds links to forum messages using message#id syntax
159 * Adds links to forum messages using message#id syntax
159 * Allow same name for custom fields on different object types
160 * Allow same name for custom fields on different object types
160 * One-click bulk edition using the issue list context menu within the same project
161 * One-click bulk edition using the issue list context menu within the same project
161 * Adds support for commit logs reencoding to UTF-8 before insertion in the database. Source encoding of commit logs can be selected in Application settings -> Repositories.
162 * Adds support for commit logs reencoding to UTF-8 before insertion in the database. Source encoding of commit logs can be selected in Application settings -> Repositories.
162 * Adds checkboxes toggle links on permissions report
163 * Adds checkboxes toggle links on permissions report
163 * Adds Trac-Like anchors on wiki headings
164 * Adds Trac-Like anchors on wiki headings
164 * Adds support for wiki links with anchor
165 * Adds support for wiki links with anchor
165 * Adds category to the issue context menu
166 * Adds category to the issue context menu
166 * Adds a workflow overview screen
167 * Adds a workflow overview screen
167 * Appends the filename to the attachment url so that clients that ignore content-disposition http header get the real filename
168 * Appends the filename to the attachment url so that clients that ignore content-disposition http header get the real filename
168 * Dots allowed in custom field name
169 * Dots allowed in custom field name
169 * Adds posts quoting functionality
170 * Adds posts quoting functionality
170 * Adds an option to generate sequential project identifiers
171 * Adds an option to generate sequential project identifiers
171 * Adds mailto link on the user administration list
172 * Adds mailto link on the user administration list
172 * Ability to remove enumerations (activities, priorities, document categories) that are in use. Associated objects can be reassigned to another value
173 * Ability to remove enumerations (activities, priorities, document categories) that are in use. Associated objects can be reassigned to another value
173 * Gantt chart: display issues that don't have a due date if they are assigned to a version with a date
174 * Gantt chart: display issues that don't have a due date if they are assigned to a version with a date
174 * Change projects homepage limit to 255 chars
175 * Change projects homepage limit to 255 chars
175 * Improved on-the-fly account creation. If some attributes are missing (eg. not present in the LDAP) or are invalid, the registration form is displayed so that the user is able to fill or fix these attributes
176 * Improved on-the-fly account creation. If some attributes are missing (eg. not present in the LDAP) or are invalid, the registration form is displayed so that the user is able to fill or fix these attributes
176 * Adds "please select" to activity select box if no activity is set as default
177 * Adds "please select" to activity select box if no activity is set as default
177 * Do not silently ignore timelog validation failure on issue edit
178 * Do not silently ignore timelog validation failure on issue edit
178 * Adds a rake task to send reminder emails
179 * Adds a rake task to send reminder emails
179 * Allow empty cells in wiki tables
180 * Allow empty cells in wiki tables
180 * Makes wiki text formatter pluggable
181 * Makes wiki text formatter pluggable
181 * Adds back textile acronyms support
182 * Adds back textile acronyms support
182 * Remove pre tag attributes
183 * Remove pre tag attributes
183 * Plugin hooks
184 * Plugin hooks
184 * Pluggable admin menu
185 * Pluggable admin menu
185 * Plugins can provide activity content
186 * Plugins can provide activity content
186 * Moves plugin list to its own administration menu item
187 * Moves plugin list to its own administration menu item
187 * Adds url and author_url plugin attributes
188 * Adds url and author_url plugin attributes
188 * Adds Plugin#requires_redmine method so that plugin compatibility can be checked against current Redmine version
189 * Adds Plugin#requires_redmine method so that plugin compatibility can be checked against current Redmine version
189 * Adds atom feed on time entries details
190 * Adds atom feed on time entries details
190 * Adds project name to issues feed title
191 * Adds project name to issues feed title
191 * Adds a css class on menu items in order to apply item specific styles (eg. icons)
192 * Adds a css class on menu items in order to apply item specific styles (eg. icons)
192 * Adds a Redmine plugin generators
193 * Adds a Redmine plugin generators
193 * Adds timelog link to the issue context menu
194 * Adds timelog link to the issue context menu
194 * Adds links to the user page on various views
195 * Adds links to the user page on various views
195 * Turkish translation by Ismail Sezen
196 * Turkish translation by Ismail Sezen
196 * Catalan translation
197 * Catalan translation
197 * Vietnamese translation
198 * Vietnamese translation
198 * Slovak translation
199 * Slovak translation
199 * Better naming of activity feed if only one kind of event is displayed
200 * Better naming of activity feed if only one kind of event is displayed
200 * Enable syntax highlight on issues, messages and news
201 * Enable syntax highlight on issues, messages and news
201 * Add target version to the issue list context menu
202 * Add target version to the issue list context menu
202 * Hide 'Target version' filter if no version is defined
203 * Hide 'Target version' filter if no version is defined
203 * Add filters on cross-project issue list for custom fields marked as 'For all projects'
204 * Add filters on cross-project issue list for custom fields marked as 'For all projects'
204 * Turn ftp urls into links
205 * Turn ftp urls into links
205 * Hiding the View Differences button when a wiki page's history only has one version
206 * Hiding the View Differences button when a wiki page's history only has one version
206 * Messages on a Board can now be sorted by the number of replies
207 * Messages on a Board can now be sorted by the number of replies
207 * Adds a class ('me') to events of the activity view created by current user
208 * Adds a class ('me') to events of the activity view created by current user
208 * Strip pre/code tags content from activity view events
209 * Strip pre/code tags content from activity view events
209 * Display issue notes in the activity view
210 * Display issue notes in the activity view
210 * Adds links to changesets atom feed on repository browser
211 * Adds links to changesets atom feed on repository browser
211 * Track project and tracker changes in issue history
212 * Track project and tracker changes in issue history
212 * Adds anchor to atom feed messages links
213 * Adds anchor to atom feed messages links
213 * Adds a key in lang files to set the decimal separator (point or comma) in csv exports
214 * Adds a key in lang files to set the decimal separator (point or comma) in csv exports
214 * Makes importer work with Trac 0.8.x
215 * Makes importer work with Trac 0.8.x
215 * Upgraded to Prototype 1.6.0.1
216 * Upgraded to Prototype 1.6.0.1
216 * File viewer for attached text files
217 * File viewer for attached text files
217 * Menu mapper: add support for :before, :after and :last options to #push method and add #delete method
218 * Menu mapper: add support for :before, :after and :last options to #push method and add #delete method
218 * Removed inconsistent revision numbers on diff view
219 * Removed inconsistent revision numbers on diff view
219 * CVS: add support for modules names with spaces
220 * CVS: add support for modules names with spaces
220 * Log the user in after registration if account activation is not needed
221 * Log the user in after registration if account activation is not needed
221 * Mercurial adapter improvements
222 * Mercurial adapter improvements
222 * Trac importer: read session_attribute table to find user's email and real name
223 * Trac importer: read session_attribute table to find user's email and real name
223 * Ability to disable unused SCM adapters in application settings
224 * Ability to disable unused SCM adapters in application settings
224 * Adds Filesystem adapter
225 * Adds Filesystem adapter
225 * Clear changesets and changes with raw sql when deleting a repository for performance
226 * Clear changesets and changes with raw sql when deleting a repository for performance
226 * Redmine.pm now uses the 'commit access' permission defined in Redmine
227 * Redmine.pm now uses the 'commit access' permission defined in Redmine
227 * Reposman can create any type of scm (--scm option)
228 * Reposman can create any type of scm (--scm option)
228 * Reposman creates a repository if the 'repository' module is enabled at project level only
229 * Reposman creates a repository if the 'repository' module is enabled at project level only
229 * Display svn properties in the browser, svn >= 1.5.0 only
230 * Display svn properties in the browser, svn >= 1.5.0 only
230 * Reduces memory usage when importing large git repositories
231 * Reduces memory usage when importing large git repositories
231 * Wider SVG graphs in repository stats
232 * Wider SVG graphs in repository stats
232 * SubversionAdapter#entries performance improvement
233 * SubversionAdapter#entries performance improvement
233 * SCM browser: ability to download raw unified diffs
234 * SCM browser: ability to download raw unified diffs
234 * More detailed error message in log when scm command fails
235 * More detailed error message in log when scm command fails
235 * Adds support for file viewing with Darcs 2.0+
236 * Adds support for file viewing with Darcs 2.0+
236 * Check that git changeset is not in the database before creating it
237 * Check that git changeset is not in the database before creating it
237 * Unified diff viewer for attached files with .patch or .diff extension
238 * Unified diff viewer for attached files with .patch or .diff extension
238 * File size display with Bazaar repositories
239 * File size display with Bazaar repositories
239 * Git adapter: use commit time instead of author time
240 * Git adapter: use commit time instead of author time
240 * Prettier url for changesets
241 * Prettier url for changesets
241 * Makes changes link to entries on the revision view
242 * Makes changes link to entries on the revision view
242 * Adds a field on the repository view to browse at specific revision
243 * Adds a field on the repository view to browse at specific revision
243 * Adds new projects atom feed
244 * Adds new projects atom feed
244 * Added rake tasks to generate rcov code coverage reports
245 * Added rake tasks to generate rcov code coverage reports
245 * Add Redcloth's :block_markdown_rule to allow horizontal rules in wiki
246 * Add Redcloth's :block_markdown_rule to allow horizontal rules in wiki
246 * Show the project hierarchy in the drop down list for new membership on user administration screen
247 * Show the project hierarchy in the drop down list for new membership on user administration screen
247 * Split user edit screen into tabs
248 * Split user edit screen into tabs
248 * Renames bundled RedCloth to RedCloth3 to avoid RedCloth 4 to be loaded instead
249 * Renames bundled RedCloth to RedCloth3 to avoid RedCloth 4 to be loaded instead
249 * Fixed: Roadmap crashes when a version has a due date > 2037
250 * Fixed: Roadmap crashes when a version has a due date > 2037
250 * Fixed: invalid effective date (eg. 99999-01-01) causes an error on version edition screen
251 * Fixed: invalid effective date (eg. 99999-01-01) causes an error on version edition screen
251 * Fixed: login filter providing incorrect back_url for Redmine installed in sub-directory
252 * Fixed: login filter providing incorrect back_url for Redmine installed in sub-directory
252 * Fixed: logtime entry duplicated when edited from parent project
253 * Fixed: logtime entry duplicated when edited from parent project
253 * Fixed: wrong digest for text files under Windows
254 * Fixed: wrong digest for text files under Windows
254 * Fixed: associated revisions are displayed in wrong order on issue view
255 * Fixed: associated revisions are displayed in wrong order on issue view
255 * Fixed: Git Adapter date parsing ignores timezone
256 * Fixed: Git Adapter date parsing ignores timezone
256 * Fixed: Printing long roadmap doesn't split across pages
257 * Fixed: Printing long roadmap doesn't split across pages
257 * Fixes custom fields display order at several places
258 * Fixes custom fields display order at several places
258 * Fixed: urls containing @ are parsed as email adress by the wiki formatter
259 * Fixed: urls containing @ are parsed as email adress by the wiki formatter
259 * Fixed date filters accuracy with SQLite
260 * Fixed date filters accuracy with SQLite
260 * Fixed: tokens not escaped in highlight_tokens regexp
261 * Fixed: tokens not escaped in highlight_tokens regexp
261 * Fixed Bazaar shared repository browsing
262 * Fixed Bazaar shared repository browsing
262 * Fixes platform determination under JRuby
263 * Fixes platform determination under JRuby
263 * Fixed: Estimated time in issue's journal should be rounded to two decimals
264 * Fixed: Estimated time in issue's journal should be rounded to two decimals
264 * Fixed: 'search titles only' box ignored after one search is done on titles only
265 * Fixed: 'search titles only' box ignored after one search is done on titles only
265 * Fixed: non-ASCII subversion path can't be displayed
266 * Fixed: non-ASCII subversion path can't be displayed
266 * Fixed: Inline images don't work if file name has upper case letters or if image is in BMP format
267 * Fixed: Inline images don't work if file name has upper case letters or if image is in BMP format
267 * Fixed: document listing shows on "my page" when viewing documents is disabled for the role
268 * Fixed: document listing shows on "my page" when viewing documents is disabled for the role
268 * Fixed: Latest news appear on the homepage for projects with the News module disabled
269 * Fixed: Latest news appear on the homepage for projects with the News module disabled
269 * Fixed: cross-project issue list should not show issues of projects for which the issue tracking module was disabled
270 * Fixed: cross-project issue list should not show issues of projects for which the issue tracking module was disabled
270 * Fixed: the default status is lost when reordering issue statuses
271 * Fixed: the default status is lost when reordering issue statuses
271 * Fixes error with Postgresql and non-UTF8 commit logs
272 * Fixes error with Postgresql and non-UTF8 commit logs
272 * Fixed: textile footnotes no longer work
273 * Fixed: textile footnotes no longer work
273 * Fixed: http links containing parentheses fail to reder correctly
274 * Fixed: http links containing parentheses fail to reder correctly
274 * Fixed: GitAdapter#get_rev should use current branch instead of hardwiring master
275 * Fixed: GitAdapter#get_rev should use current branch instead of hardwiring master
275
276
276
277
277 == 2008-07-06 v0.7.3
278 == 2008-07-06 v0.7.3
278
279
279 * Allow dot in firstnames and lastnames
280 * Allow dot in firstnames and lastnames
280 * Add project name to cross-project Atom feeds
281 * Add project name to cross-project Atom feeds
281 * Encoding set to utf8 in example database.yml
282 * Encoding set to utf8 in example database.yml
282 * HTML titles on forums related views
283 * HTML titles on forums related views
283 * Fixed: various XSS vulnerabilities
284 * Fixed: various XSS vulnerabilities
284 * Fixed: Entourage (and some old client) fails to correctly render notification styles
285 * Fixed: Entourage (and some old client) fails to correctly render notification styles
285 * Fixed: Fixed: timelog redirects inappropriately when :back_url is blank
286 * Fixed: Fixed: timelog redirects inappropriately when :back_url is blank
286 * Fixed: wrong relative paths to images in wiki_syntax.html
287 * Fixed: wrong relative paths to images in wiki_syntax.html
287
288
288
289
289 == 2008-06-15 v0.7.2
290 == 2008-06-15 v0.7.2
290
291
291 * "New Project" link on Projects page
292 * "New Project" link on Projects page
292 * Links to repository directories on the repo browser
293 * Links to repository directories on the repo browser
293 * Move status to front in Activity View
294 * Move status to front in Activity View
294 * Remove edit step from Status context menu
295 * Remove edit step from Status context menu
295 * Fixed: No way to do textile horizontal rule
296 * Fixed: No way to do textile horizontal rule
296 * Fixed: Repository: View differences doesn't work
297 * Fixed: Repository: View differences doesn't work
297 * Fixed: attachement's name maybe invalid.
298 * Fixed: attachement's name maybe invalid.
298 * Fixed: Error when creating a new issue
299 * Fixed: Error when creating a new issue
299 * Fixed: NoMethodError on @available_filters.has_key?
300 * Fixed: NoMethodError on @available_filters.has_key?
300 * Fixed: Check All / Uncheck All in Email Settings
301 * Fixed: Check All / Uncheck All in Email Settings
301 * Fixed: "View differences" of one file at /repositories/revision/ fails
302 * Fixed: "View differences" of one file at /repositories/revision/ fails
302 * Fixed: Column width in "my page"
303 * Fixed: Column width in "my page"
303 * Fixed: private subprojects are listed on Issues view
304 * Fixed: private subprojects are listed on Issues view
304 * Fixed: Textile: bold, italics, underline, etc... not working after parentheses
305 * Fixed: Textile: bold, italics, underline, etc... not working after parentheses
305 * Fixed: Update issue form: comment field from log time end out of screen
306 * Fixed: Update issue form: comment field from log time end out of screen
306 * Fixed: Editing role: "issue can be assigned to this role" out of box
307 * Fixed: Editing role: "issue can be assigned to this role" out of box
307 * Fixed: Unable use angular braces after include word
308 * Fixed: Unable use angular braces after include word
308 * Fixed: Using '*' as keyword for repository referencing keywords doesn't work
309 * Fixed: Using '*' as keyword for repository referencing keywords doesn't work
309 * Fixed: Subversion repository "View differences" on each file rise ERROR
310 * Fixed: Subversion repository "View differences" on each file rise ERROR
310 * Fixed: View differences for individual file of a changeset fails if the repository URL doesn't point to the repository root
311 * Fixed: View differences for individual file of a changeset fails if the repository URL doesn't point to the repository root
311 * Fixed: It is possible to lock out the last admin account
312 * Fixed: It is possible to lock out the last admin account
312 * Fixed: Wikis are viewable for anonymous users on public projects, despite not granting access
313 * Fixed: Wikis are viewable for anonymous users on public projects, despite not granting access
313 * Fixed: Issue number display clipped on 'my issues'
314 * Fixed: Issue number display clipped on 'my issues'
314 * Fixed: Roadmap version list links not carrying state
315 * Fixed: Roadmap version list links not carrying state
315 * Fixed: Log Time fieldset in IssueController#edit doesn't set default Activity as default
316 * Fixed: Log Time fieldset in IssueController#edit doesn't set default Activity as default
316 * Fixed: git's "get_rev" API should use repo's current branch instead of hardwiring "master"
317 * Fixed: git's "get_rev" API should use repo's current branch instead of hardwiring "master"
317 * Fixed: browser's language subcodes ignored
318 * Fixed: browser's language subcodes ignored
318 * Fixed: Error on project selection with numeric (only) identifier.
319 * Fixed: Error on project selection with numeric (only) identifier.
319 * Fixed: Link to PDF doesn't work after creating new issue
320 * Fixed: Link to PDF doesn't work after creating new issue
320 * Fixed: "Replies" should not be shown on forum threads that are locked
321 * Fixed: "Replies" should not be shown on forum threads that are locked
321 * Fixed: SVN errors lead to svn username/password being displayed to end users (security issue)
322 * Fixed: SVN errors lead to svn username/password being displayed to end users (security issue)
322 * Fixed: http links containing hashes don't display correct
323 * Fixed: http links containing hashes don't display correct
323 * Fixed: Allow ampersands in Enumeration names
324 * Fixed: Allow ampersands in Enumeration names
324 * Fixed: Atom link on saved query does not include query_id
325 * Fixed: Atom link on saved query does not include query_id
325 * Fixed: Logtime info lost when there's an error updating an issue
326 * Fixed: Logtime info lost when there's an error updating an issue
326 * Fixed: TOC does not parse colorization markups
327 * Fixed: TOC does not parse colorization markups
327 * Fixed: CVS: add support for modules names with spaces
328 * Fixed: CVS: add support for modules names with spaces
328 * Fixed: Bad rendering on projects/add
329 * Fixed: Bad rendering on projects/add
329 * Fixed: exception when viewing differences on cvs
330 * Fixed: exception when viewing differences on cvs
330 * Fixed: export issue to pdf will messup when use Chinese language
331 * Fixed: export issue to pdf will messup when use Chinese language
331 * Fixed: Redmine::Scm::Adapters::GitAdapter#get_rev ignored GIT_BIN constant
332 * Fixed: Redmine::Scm::Adapters::GitAdapter#get_rev ignored GIT_BIN constant
332 * Fixed: Adding non-ASCII new issue type in the New Issue page have encoding error using IE
333 * Fixed: Adding non-ASCII new issue type in the New Issue page have encoding error using IE
333 * Fixed: Importing from trac : some wiki links are messed
334 * Fixed: Importing from trac : some wiki links are messed
334 * Fixed: Incorrect weekend definition in Hebrew calendar locale
335 * Fixed: Incorrect weekend definition in Hebrew calendar locale
335 * Fixed: Atom feeds don't provide author section for repository revisions
336 * Fixed: Atom feeds don't provide author section for repository revisions
336 * Fixed: In Activity views, changesets titles can be multiline while they should not
337 * Fixed: In Activity views, changesets titles can be multiline while they should not
337 * Fixed: Ignore unreadable subversion directories (read disabled using authz)
338 * Fixed: Ignore unreadable subversion directories (read disabled using authz)
338 * Fixed: lib/SVG/Graph/Graph.rb can't externalize stylesheets
339 * Fixed: lib/SVG/Graph/Graph.rb can't externalize stylesheets
339 * Fixed: Close statement handler in Redmine.pm
340 * Fixed: Close statement handler in Redmine.pm
340
341
341
342
342 == 2008-05-04 v0.7.1
343 == 2008-05-04 v0.7.1
343
344
344 * Thai translation added (Gampol Thitinilnithi)
345 * Thai translation added (Gampol Thitinilnithi)
345 * Translations updates
346 * Translations updates
346 * Escape HTML comment tags
347 * Escape HTML comment tags
347 * Prevent "can't convert nil into String" error when :sort_order param is not present
348 * Prevent "can't convert nil into String" error when :sort_order param is not present
348 * Fixed: Updating tickets add a time log with zero hours
349 * Fixed: Updating tickets add a time log with zero hours
349 * Fixed: private subprojects names are revealed on the project overview
350 * Fixed: private subprojects names are revealed on the project overview
350 * Fixed: Search for target version of "none" fails with postgres 8.3
351 * Fixed: Search for target version of "none" fails with postgres 8.3
351 * Fixed: Home, Logout, Login links shouldn't be absolute links
352 * Fixed: Home, Logout, Login links shouldn't be absolute links
352 * Fixed: 'Latest projects' box on the welcome screen should be hidden if there are no projects
353 * Fixed: 'Latest projects' box on the welcome screen should be hidden if there are no projects
353 * Fixed: error when using upcase language name in coderay
354 * Fixed: error when using upcase language name in coderay
354 * Fixed: error on Trac import when :due attribute is nil
355 * Fixed: error on Trac import when :due attribute is nil
355
356
356
357
357 == 2008-04-28 v0.7.0
358 == 2008-04-28 v0.7.0
358
359
359 * Forces Redmine to use rails 2.0.2 gem when vendor/rails is not present
360 * Forces Redmine to use rails 2.0.2 gem when vendor/rails is not present
360 * Queries can be marked as 'For all projects'. Such queries will be available on all projects and on the global issue list.
361 * Queries can be marked as 'For all projects'. Such queries will be available on all projects and on the global issue list.
361 * Add predefined date ranges to the time report
362 * Add predefined date ranges to the time report
362 * Time report can be done at issue level
363 * Time report can be done at issue level
363 * Various timelog report enhancements
364 * Various timelog report enhancements
364 * Accept the following formats for "hours" field: 1h, 1 h, 1 hour, 2 hours, 30m, 30min, 1h30, 1h30m, 1:30
365 * Accept the following formats for "hours" field: 1h, 1 h, 1 hour, 2 hours, 30m, 30min, 1h30, 1h30m, 1:30
365 * Display the context menu above and/or to the left of the click if needed
366 * Display the context menu above and/or to the left of the click if needed
366 * Make the admin project files list sortable
367 * Make the admin project files list sortable
367 * Mercurial: display working directory files sizes unless browsing a specific revision
368 * Mercurial: display working directory files sizes unless browsing a specific revision
368 * Preserve status filter and page number when using lock/unlock/activate links on the users list
369 * Preserve status filter and page number when using lock/unlock/activate links on the users list
369 * Redmine.pm support for LDAP authentication
370 * Redmine.pm support for LDAP authentication
370 * Better error message and AR errors in log for failed LDAP on-the-fly user creation
371 * Better error message and AR errors in log for failed LDAP on-the-fly user creation
371 * Redirected user to where he is coming from after logging hours
372 * Redirected user to where he is coming from after logging hours
372 * Warn user that subprojects are also deleted when deleting a project
373 * Warn user that subprojects are also deleted when deleting a project
373 * Include subprojects versions on calendar and gantt
374 * Include subprojects versions on calendar and gantt
374 * Notify project members when a message is posted if they want to receive notifications
375 * Notify project members when a message is posted if they want to receive notifications
375 * Fixed: Feed content limit setting has no effect
376 * Fixed: Feed content limit setting has no effect
376 * Fixed: Priorities not ordered when displayed as a filter in issue list
377 * Fixed: Priorities not ordered when displayed as a filter in issue list
377 * Fixed: can not display attached images inline in message replies
378 * Fixed: can not display attached images inline in message replies
378 * Fixed: Boards are not deleted when project is deleted
379 * Fixed: Boards are not deleted when project is deleted
379 * Fixed: trying to preview a new issue raises an exception with postgresql
380 * Fixed: trying to preview a new issue raises an exception with postgresql
380 * Fixed: single file 'View difference' links do not work because of duplicate slashes in url
381 * Fixed: single file 'View difference' links do not work because of duplicate slashes in url
381 * Fixed: inline image not displayed when including a wiki page
382 * Fixed: inline image not displayed when including a wiki page
382 * Fixed: CVS duplicate key violation
383 * Fixed: CVS duplicate key violation
383 * Fixed: ActiveRecord::StaleObjectError exception on closing a set of circular duplicate issues
384 * Fixed: ActiveRecord::StaleObjectError exception on closing a set of circular duplicate issues
384 * Fixed: custom field filters behaviour
385 * Fixed: custom field filters behaviour
385 * Fixed: Postgresql 8.3 compatibility
386 * Fixed: Postgresql 8.3 compatibility
386 * Fixed: Links to repository directories don't work
387 * Fixed: Links to repository directories don't work
387
388
388
389
389 == 2008-03-29 v0.7.0-rc1
390 == 2008-03-29 v0.7.0-rc1
390
391
391 * Overall activity view and feed added, link is available on the project list
392 * Overall activity view and feed added, link is available on the project list
392 * Git VCS support
393 * Git VCS support
393 * Rails 2.0 sessions cookie store compatibility
394 * Rails 2.0 sessions cookie store compatibility
394 * Use project identifiers in urls instead of ids
395 * Use project identifiers in urls instead of ids
395 * Default configuration data can now be loaded from the administration screen
396 * Default configuration data can now be loaded from the administration screen
396 * Administration settings screen split to tabs (email notifications options moved to 'Settings')
397 * Administration settings screen split to tabs (email notifications options moved to 'Settings')
397 * Project description is now unlimited and optional
398 * Project description is now unlimited and optional
398 * Wiki annotate view
399 * Wiki annotate view
399 * Escape HTML tag in textile content
400 * Escape HTML tag in textile content
400 * Add Redmine links to documents, versions, attachments and repository files
401 * Add Redmine links to documents, versions, attachments and repository files
401 * New setting to specify how many objects should be displayed on paginated lists. There are 2 ways to select a set of issues on the issue list:
402 * New setting to specify how many objects should be displayed on paginated lists. There are 2 ways to select a set of issues on the issue list:
402 * by using checkbox and/or the little pencil that will select/unselect all issues
403 * by using checkbox and/or the little pencil that will select/unselect all issues
403 * by clicking on the rows (but not on the links), Ctrl and Shift keys can be used to select multiple issues
404 * by clicking on the rows (but not on the links), Ctrl and Shift keys can be used to select multiple issues
404 * Context menu disabled on links so that the default context menu of the browser is displayed when right-clicking on a link (click anywhere else on the row to display the context menu)
405 * Context menu disabled on links so that the default context menu of the browser is displayed when right-clicking on a link (click anywhere else on the row to display the context menu)
405 * User display format is now configurable in administration settings
406 * User display format is now configurable in administration settings
406 * Issue list now supports bulk edit/move/delete (for a set of issues that belong to the same project)
407 * Issue list now supports bulk edit/move/delete (for a set of issues that belong to the same project)
407 * Merged 'change status', 'edit issue' and 'add note' actions:
408 * Merged 'change status', 'edit issue' and 'add note' actions:
408 * Users with 'edit issues' permission can now update any property including custom fields when adding a note or changing the status
409 * Users with 'edit issues' permission can now update any property including custom fields when adding a note or changing the status
409 * 'Change issue status' permission removed. To change an issue status, a user just needs to have either 'Edit' or 'Add note' permissions and some workflow transitions allowed
410 * 'Change issue status' permission removed. To change an issue status, a user just needs to have either 'Edit' or 'Add note' permissions and some workflow transitions allowed
410 * Details by assignees on issue summary view
411 * Details by assignees on issue summary view
411 * 'New issue' link in the main menu (accesskey 7). The drop-down lists to add an issue on the project overview and the issue list are removed
412 * 'New issue' link in the main menu (accesskey 7). The drop-down lists to add an issue on the project overview and the issue list are removed
412 * Change status select box default to current status
413 * Change status select box default to current status
413 * Preview for issue notes, news and messages
414 * Preview for issue notes, news and messages
414 * Optional description for attachments
415 * Optional description for attachments
415 * 'Fixed version' label changed to 'Target version'
416 * 'Fixed version' label changed to 'Target version'
416 * Let the user choose when deleting issues with reported hours to:
417 * Let the user choose when deleting issues with reported hours to:
417 * delete the hours
418 * delete the hours
418 * assign the hours to the project
419 * assign the hours to the project
419 * reassign the hours to another issue
420 * reassign the hours to another issue
420 * Date range filter and pagination on time entries detail view
421 * Date range filter and pagination on time entries detail view
421 * Propagate time tracking to the parent project
422 * Propagate time tracking to the parent project
422 * Switch added on the project activity view to include subprojects
423 * Switch added on the project activity view to include subprojects
423 * Display total estimated and spent hours on the version detail view
424 * Display total estimated and spent hours on the version detail view
424 * Weekly time tracking block for 'My page'
425 * Weekly time tracking block for 'My page'
425 * Permissions to edit time entries
426 * Permissions to edit time entries
426 * Include subprojects on the issue list, calendar, gantt and timelog by default (can be turned off is administration settings)
427 * Include subprojects on the issue list, calendar, gantt and timelog by default (can be turned off is administration settings)
427 * Roadmap enhancements (separate related issues from wiki contents, leading h1 in version wiki pages is hidden, smaller wiki headings)
428 * Roadmap enhancements (separate related issues from wiki contents, leading h1 in version wiki pages is hidden, smaller wiki headings)
428 * Make versions with same date sorted by name
429 * Make versions with same date sorted by name
429 * Allow issue list to be sorted by target version
430 * Allow issue list to be sorted by target version
430 * Related changesets messages displayed on the issue details view
431 * Related changesets messages displayed on the issue details view
431 * Create a journal and send an email when an issue is closed by commit
432 * Create a journal and send an email when an issue is closed by commit
432 * Add 'Author' to the available columns for the issue list
433 * Add 'Author' to the available columns for the issue list
433 * More appropriate default sort order on sortable columns
434 * More appropriate default sort order on sortable columns
434 * Add issue subject to the time entries view and issue subject, description and tracker to the csv export
435 * Add issue subject to the time entries view and issue subject, description and tracker to the csv export
435 * Permissions to edit issue notes
436 * Permissions to edit issue notes
436 * Display date/time instead of date on files list
437 * Display date/time instead of date on files list
437 * Do not show Roadmap menu item if the project doesn't define any versions
438 * Do not show Roadmap menu item if the project doesn't define any versions
438 * Allow longer version names (60 chars)
439 * Allow longer version names (60 chars)
439 * Ability to copy an existing workflow when creating a new role
440 * Ability to copy an existing workflow when creating a new role
440 * Display custom fields in two columns on the issue form
441 * Display custom fields in two columns on the issue form
441 * Added 'estimated time' in the csv export of the issue list
442 * Added 'estimated time' in the csv export of the issue list
442 * Display the last 30 days on the activity view rather than the current month (number of days can be configured in the application settings)
443 * Display the last 30 days on the activity view rather than the current month (number of days can be configured in the application settings)
443 * Setting for whether new projects should be public by default
444 * Setting for whether new projects should be public by default
444 * User preference to choose how comments/replies are displayed: in chronological or reverse chronological order
445 * User preference to choose how comments/replies are displayed: in chronological or reverse chronological order
445 * Added default value for custom fields
446 * Added default value for custom fields
446 * Added tabindex property on wiki toolbar buttons (to easily move from field to field using the tab key)
447 * Added tabindex property on wiki toolbar buttons (to easily move from field to field using the tab key)
447 * Redirect to issue page after creating a new issue
448 * Redirect to issue page after creating a new issue
448 * Wiki toolbar improvements (mainly for Firefox)
449 * Wiki toolbar improvements (mainly for Firefox)
449 * Display wiki syntax quick ref link on all wiki textareas
450 * Display wiki syntax quick ref link on all wiki textareas
450 * Display links to Atom feeds
451 * Display links to Atom feeds
451 * Breadcrumb nav for the forums
452 * Breadcrumb nav for the forums
452 * Show replies when choosing to display messages in the activity
453 * Show replies when choosing to display messages in the activity
453 * Added 'include' macro to include another wiki page
454 * Added 'include' macro to include another wiki page
454 * RedmineWikiFormatting page available as a static HTML file locally
455 * RedmineWikiFormatting page available as a static HTML file locally
455 * Wrap diff content
456 * Wrap diff content
456 * Strip out email address from authors in repository screens
457 * Strip out email address from authors in repository screens
457 * Highlight the current item of the main menu
458 * Highlight the current item of the main menu
458 * Added simple syntax highlighters for php and java languages
459 * Added simple syntax highlighters for php and java languages
459 * Do not show empty diffs
460 * Do not show empty diffs
460 * Show explicit error message when the scm command failed (eg. when svn binary is not available)
461 * Show explicit error message when the scm command failed (eg. when svn binary is not available)
461 * Lithuanian translation added (Sergej Jegorov)
462 * Lithuanian translation added (Sergej Jegorov)
462 * Ukrainan translation added (Natalia Konovka & Mykhaylo Sorochan)
463 * Ukrainan translation added (Natalia Konovka & Mykhaylo Sorochan)
463 * Danish translation added (Mads Vestergaard)
464 * Danish translation added (Mads Vestergaard)
464 * Added i18n support to the jstoolbar and various settings screen
465 * Added i18n support to the jstoolbar and various settings screen
465 * RedCloth's glyphs no longer user
466 * RedCloth's glyphs no longer user
466 * New icons for the wiki toolbar (from http://www.famfamfam.com/lab/icons/silk/)
467 * New icons for the wiki toolbar (from http://www.famfamfam.com/lab/icons/silk/)
467 * The following menus can now be extended by plugins: top_menu, account_menu, application_menu
468 * The following menus can now be extended by plugins: top_menu, account_menu, application_menu
468 * Added a simple rake task to fetch changesets from the repositories: rake redmine:fetch_changesets
469 * Added a simple rake task to fetch changesets from the repositories: rake redmine:fetch_changesets
469 * Remove hardcoded "Redmine" strings in account related emails and use application title instead
470 * Remove hardcoded "Redmine" strings in account related emails and use application title instead
470 * Mantis importer preserve bug ids
471 * Mantis importer preserve bug ids
471 * Trac importer: Trac guide wiki pages skipped
472 * Trac importer: Trac guide wiki pages skipped
472 * Trac importer: wiki attachments migration added
473 * Trac importer: wiki attachments migration added
473 * Trac importer: support database schema for Trac migration
474 * Trac importer: support database schema for Trac migration
474 * Trac importer: support CamelCase links
475 * Trac importer: support CamelCase links
475 * Removes the Redmine version from the footer (can be viewed on admin -> info)
476 * Removes the Redmine version from the footer (can be viewed on admin -> info)
476 * Rescue and display an error message when trying to delete a role that is in use
477 * Rescue and display an error message when trying to delete a role that is in use
477 * Add various 'X-Redmine' headers to email notifications: X-Redmine-Host, X-Redmine-Site, X-Redmine-Project, X-Redmine-Issue-Id, -Author, -Assignee, X-Redmine-Topic-Id
478 * Add various 'X-Redmine' headers to email notifications: X-Redmine-Host, X-Redmine-Site, X-Redmine-Project, X-Redmine-Issue-Id, -Author, -Assignee, X-Redmine-Topic-Id
478 * Add "--encoding utf8" option to the Mercurial "hg log" command in order to get utf8 encoded commit logs
479 * Add "--encoding utf8" option to the Mercurial "hg log" command in order to get utf8 encoded commit logs
479 * Fixed: Gantt and calendar not properly refreshed (fragment caching removed)
480 * Fixed: Gantt and calendar not properly refreshed (fragment caching removed)
480 * Fixed: Textile image with style attribute cause internal server error
481 * Fixed: Textile image with style attribute cause internal server error
481 * Fixed: wiki TOC not rendered properly when used in an issue or document description
482 * Fixed: wiki TOC not rendered properly when used in an issue or document description
482 * Fixed: 'has already been taken' error message on username and email fields if left empty
483 * Fixed: 'has already been taken' error message on username and email fields if left empty
483 * Fixed: non-ascii attachement filename with IE
484 * Fixed: non-ascii attachement filename with IE
484 * Fixed: wrong url for wiki syntax pop-up when Redmine urls are prefixed
485 * Fixed: wrong url for wiki syntax pop-up when Redmine urls are prefixed
485 * Fixed: search for all words doesn't work
486 * Fixed: search for all words doesn't work
486 * Fixed: Do not show sticky and locked checkboxes when replying to a message
487 * Fixed: Do not show sticky and locked checkboxes when replying to a message
487 * Fixed: Mantis importer: do not duplicate Mantis username in firstname and lastname if realname is blank
488 * Fixed: Mantis importer: do not duplicate Mantis username in firstname and lastname if realname is blank
488 * Fixed: Date custom fields not displayed as specified in application settings
489 * Fixed: Date custom fields not displayed as specified in application settings
489 * Fixed: titles not escaped in the activity view
490 * Fixed: titles not escaped in the activity view
490 * Fixed: issue queries can not use custom fields marked as 'for all projects' in a project context
491 * Fixed: issue queries can not use custom fields marked as 'for all projects' in a project context
491 * Fixed: on calendar, gantt and in the tracker filter on the issue list, only active trackers of the project (and its sub projects) should be available
492 * Fixed: on calendar, gantt and in the tracker filter on the issue list, only active trackers of the project (and its sub projects) should be available
492 * Fixed: locked users should not receive email notifications
493 * Fixed: locked users should not receive email notifications
493 * Fixed: custom field selection is not saved when unchecking them all on project settings
494 * Fixed: custom field selection is not saved when unchecking them all on project settings
494 * Fixed: can not lock a topic when creating it
495 * Fixed: can not lock a topic when creating it
495 * Fixed: Incorrect filtering for unset values when using 'is not' filter
496 * Fixed: Incorrect filtering for unset values when using 'is not' filter
496 * Fixed: PostgreSQL issues_seq_id not updated when using Trac importer
497 * Fixed: PostgreSQL issues_seq_id not updated when using Trac importer
497 * Fixed: ajax pagination does not scroll up
498 * Fixed: ajax pagination does not scroll up
498 * Fixed: error when uploading a file with no content-type specified by the browser
499 * Fixed: error when uploading a file with no content-type specified by the browser
499 * Fixed: wiki and changeset links not displayed when previewing issue description or notes
500 * Fixed: wiki and changeset links not displayed when previewing issue description or notes
500 * Fixed: 'LdapError: no bind result' error when authenticating
501 * Fixed: 'LdapError: no bind result' error when authenticating
501 * Fixed: 'LdapError: invalid binding information' when no username/password are set on the LDAP account
502 * Fixed: 'LdapError: invalid binding information' when no username/password are set on the LDAP account
502 * Fixed: CVS repository doesn't work if port is used in the url
503 * Fixed: CVS repository doesn't work if port is used in the url
503 * Fixed: Email notifications: host name is missing in generated links
504 * Fixed: Email notifications: host name is missing in generated links
504 * Fixed: Email notifications: referenced changesets, wiki pages, attachments... are not turned into links
505 * Fixed: Email notifications: referenced changesets, wiki pages, attachments... are not turned into links
505 * Fixed: Do not clear issue relations when moving an issue to another project if cross-project issue relations are allowed
506 * Fixed: Do not clear issue relations when moving an issue to another project if cross-project issue relations are allowed
506 * Fixed: "undefined method 'textilizable'" error on email notification when running Repository#fetch_changesets from the console
507 * Fixed: "undefined method 'textilizable'" error on email notification when running Repository#fetch_changesets from the console
507 * Fixed: Do not send an email with no recipient, cc or bcc
508 * Fixed: Do not send an email with no recipient, cc or bcc
508 * Fixed: fetch_changesets fails on commit comments that close 2 duplicates issues.
509 * Fixed: fetch_changesets fails on commit comments that close 2 duplicates issues.
509 * Fixed: Mercurial browsing under unix-like os and for directory depth > 2
510 * Fixed: Mercurial browsing under unix-like os and for directory depth > 2
510 * Fixed: Wiki links with pipe can not be used in wiki tables
511 * Fixed: Wiki links with pipe can not be used in wiki tables
511 * Fixed: migrate_from_trac doesn't import timestamps of wiki and tickets
512 * Fixed: migrate_from_trac doesn't import timestamps of wiki and tickets
512 * Fixed: when bulk editing, setting "Assigned to" to "nobody" causes an sql error with Postgresql
513 * Fixed: when bulk editing, setting "Assigned to" to "nobody" causes an sql error with Postgresql
513
514
514
515
515 == 2008-03-12 v0.6.4
516 == 2008-03-12 v0.6.4
516
517
517 * Fixed: private projects name are displayed on account/show even if the current user doesn't have access to these private projects
518 * Fixed: private projects name are displayed on account/show even if the current user doesn't have access to these private projects
518 * Fixed: potential LDAP authentication security flaw
519 * Fixed: potential LDAP authentication security flaw
519 * Fixed: context submenus on the issue list don't show up with IE6.
520 * Fixed: context submenus on the issue list don't show up with IE6.
520 * Fixed: Themes are not applied with Rails 2.0
521 * Fixed: Themes are not applied with Rails 2.0
521 * Fixed: crash when fetching Mercurial changesets if changeset[:files] is nil
522 * Fixed: crash when fetching Mercurial changesets if changeset[:files] is nil
522 * Fixed: Mercurial repository browsing
523 * Fixed: Mercurial repository browsing
523 * Fixed: undefined local variable or method 'log' in CvsAdapter when a cvs command fails
524 * Fixed: undefined local variable or method 'log' in CvsAdapter when a cvs command fails
524 * Fixed: not null constraints not removed with Postgresql
525 * Fixed: not null constraints not removed with Postgresql
525 * Doctype set to transitional
526 * Doctype set to transitional
526
527
527
528
528 == 2007-12-18 v0.6.3
529 == 2007-12-18 v0.6.3
529
530
530 * Fixed: upload doesn't work in 'Files' section
531 * Fixed: upload doesn't work in 'Files' section
531
532
532
533
533 == 2007-12-16 v0.6.2
534 == 2007-12-16 v0.6.2
534
535
535 * Search engine: issue custom fields can now be searched
536 * Search engine: issue custom fields can now be searched
536 * News comments are now textilized
537 * News comments are now textilized
537 * Updated Japanese translation (Satoru Kurashiki)
538 * Updated Japanese translation (Satoru Kurashiki)
538 * Updated Chinese translation (Shortie Lo)
539 * Updated Chinese translation (Shortie Lo)
539 * Fixed Rails 2.0 compatibility bugs:
540 * Fixed Rails 2.0 compatibility bugs:
540 * Unable to create a wiki
541 * Unable to create a wiki
541 * Gantt and calendar error
542 * Gantt and calendar error
542 * Trac importer error (readonly? is defined by ActiveRecord)
543 * Trac importer error (readonly? is defined by ActiveRecord)
543 * Fixed: 'assigned to me' filter broken
544 * Fixed: 'assigned to me' filter broken
544 * Fixed: crash when validation fails on issue edition with no custom fields
545 * Fixed: crash when validation fails on issue edition with no custom fields
545 * Fixed: reposman "can't find group" error
546 * Fixed: reposman "can't find group" error
546 * Fixed: 'LDAP account password is too long' error when leaving the field empty on creation
547 * Fixed: 'LDAP account password is too long' error when leaving the field empty on creation
547 * Fixed: empty lines when displaying repository files with Windows style eol
548 * Fixed: empty lines when displaying repository files with Windows style eol
548 * Fixed: missing body closing tag in repository annotate and entry views
549 * Fixed: missing body closing tag in repository annotate and entry views
549
550
550
551
551 == 2007-12-10 v0.6.1
552 == 2007-12-10 v0.6.1
552
553
553 * Rails 2.0 compatibility
554 * Rails 2.0 compatibility
554 * Custom fields can now be displayed as columns on the issue list
555 * Custom fields can now be displayed as columns on the issue list
555 * Added version details view (accessible from the roadmap)
556 * Added version details view (accessible from the roadmap)
556 * Roadmap: more accurate completion percentage calculation (done ratio of open issues is now taken into account)
557 * Roadmap: more accurate completion percentage calculation (done ratio of open issues is now taken into account)
557 * Added per-project tracker selection. Trackers can be selected on project settings
558 * Added per-project tracker selection. Trackers can be selected on project settings
558 * Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums
559 * Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums
559 * Forums: messages can now be edited/deleted (explicit permissions need to be given)
560 * Forums: messages can now be edited/deleted (explicit permissions need to be given)
560 * Forums: topics can be locked so that no reply can be added
561 * Forums: topics can be locked so that no reply can be added
561 * Forums: topics can be marked as sticky so that they always appear at the top of the list
562 * Forums: topics can be marked as sticky so that they always appear at the top of the list
562 * Forums: attachments can now be added to replies
563 * Forums: attachments can now be added to replies
563 * Added time zone support
564 * Added time zone support
564 * Added a setting to choose the account activation strategy (available in application settings)
565 * Added a setting to choose the account activation strategy (available in application settings)
565 * Added 'Classic' theme (inspired from the v0.51 design)
566 * Added 'Classic' theme (inspired from the v0.51 design)
566 * Added an alternate theme which provides issue list colorization based on issues priority
567 * Added an alternate theme which provides issue list colorization based on issues priority
567 * Added Bazaar SCM adapter
568 * Added Bazaar SCM adapter
568 * Added Annotate/Blame view in the repository browser (except for Darcs SCM)
569 * Added Annotate/Blame view in the repository browser (except for Darcs SCM)
569 * Diff style (inline or side by side) automatically saved as a user preference
570 * Diff style (inline or side by side) automatically saved as a user preference
570 * Added issues status changes on the activity view (by Cyril Mougel)
571 * Added issues status changes on the activity view (by Cyril Mougel)
571 * Added forums topics on the activity view (disabled by default)
572 * Added forums topics on the activity view (disabled by default)
572 * Added an option on 'My account' for users who don't want to be notified of changes that they make
573 * Added an option on 'My account' for users who don't want to be notified of changes that they make
573 * Trac importer now supports mysql and postgresql databases
574 * Trac importer now supports mysql and postgresql databases
574 * Trac importer improvements (by Mat Trudel)
575 * Trac importer improvements (by Mat Trudel)
575 * 'fixed version' field can now be displayed on the issue list
576 * 'fixed version' field can now be displayed on the issue list
576 * Added a couple of new formats for the 'date format' setting
577 * Added a couple of new formats for the 'date format' setting
577 * Added Traditional Chinese translation (by Shortie Lo)
578 * Added Traditional Chinese translation (by Shortie Lo)
578 * Added Russian translation (iGor kMeta)
579 * Added Russian translation (iGor kMeta)
579 * Project name format limitation removed (name can now contain any character)
580 * Project name format limitation removed (name can now contain any character)
580 * Project identifier maximum length changed from 12 to 20
581 * Project identifier maximum length changed from 12 to 20
581 * Changed the maximum length of LDAP account to 255 characters
582 * Changed the maximum length of LDAP account to 255 characters
582 * Removed the 12 characters limit on passwords
583 * Removed the 12 characters limit on passwords
583 * Added wiki macros support
584 * Added wiki macros support
584 * Performance improvement on workflow setup screen
585 * Performance improvement on workflow setup screen
585 * More detailed html title on several views
586 * More detailed html title on several views
586 * Custom fields can now be reordered
587 * Custom fields can now be reordered
587 * Search engine: search can be restricted to an exact phrase by using quotation marks
588 * Search engine: search can be restricted to an exact phrase by using quotation marks
588 * Added custom fields marked as 'For all projects' to the csv export of the cross project issue list
589 * Added custom fields marked as 'For all projects' to the csv export of the cross project issue list
589 * Email notifications are now sent as Blind carbon copy by default
590 * Email notifications are now sent as Blind carbon copy by default
590 * Fixed: all members (including non active) should be deleted when deleting a project
591 * Fixed: all members (including non active) should be deleted when deleting a project
591 * Fixed: Error on wiki syntax link (accessible from wiki/edit)
592 * Fixed: Error on wiki syntax link (accessible from wiki/edit)
592 * Fixed: 'quick jump to a revision' form on the revisions list
593 * Fixed: 'quick jump to a revision' form on the revisions list
593 * Fixed: error on admin/info if there's more than 1 plugin installed
594 * Fixed: error on admin/info if there's more than 1 plugin installed
594 * Fixed: svn or ldap password can be found in clear text in the html source in editing mode
595 * Fixed: svn or ldap password can be found in clear text in the html source in editing mode
595 * Fixed: 'Assigned to' drop down list is not sorted
596 * Fixed: 'Assigned to' drop down list is not sorted
596 * Fixed: 'View all issues' link doesn't work on issues/show
597 * Fixed: 'View all issues' link doesn't work on issues/show
597 * Fixed: error on account/register when validation fails
598 * Fixed: error on account/register when validation fails
598 * Fixed: Error when displaying the issue list if a float custom field is marked as 'used as filter'
599 * Fixed: Error when displaying the issue list if a float custom field is marked as 'used as filter'
599 * Fixed: Mercurial adapter breaks on missing :files entry in changeset hash (James Britt)
600 * Fixed: Mercurial adapter breaks on missing :files entry in changeset hash (James Britt)
600 * Fixed: Wrong feed URLs on the home page
601 * Fixed: Wrong feed URLs on the home page
601 * Fixed: Update of time entry fails when the issue has been moved to an other project
602 * Fixed: Update of time entry fails when the issue has been moved to an other project
602 * Fixed: Error when moving an issue without changing its tracker (Postgresql)
603 * Fixed: Error when moving an issue without changing its tracker (Postgresql)
603 * Fixed: Changes not recorded when using :pserver string (CVS adapter)
604 * Fixed: Changes not recorded when using :pserver string (CVS adapter)
604 * Fixed: admin should be able to move issues to any project
605 * Fixed: admin should be able to move issues to any project
605 * Fixed: adding an attachment is not possible when changing the status of an issue
606 * Fixed: adding an attachment is not possible when changing the status of an issue
606 * Fixed: No mime-types in documents/files downloading
607 * Fixed: No mime-types in documents/files downloading
607 * Fixed: error when sorting the messages if there's only one board for the project
608 * Fixed: error when sorting the messages if there's only one board for the project
608 * Fixed: 'me' doesn't appear in the drop down filters on a project issue list.
609 * Fixed: 'me' doesn't appear in the drop down filters on a project issue list.
609
610
610 == 2007-11-04 v0.6.0
611 == 2007-11-04 v0.6.0
611
612
612 * Permission model refactoring.
613 * Permission model refactoring.
613 * Permissions: there are now 2 builtin roles that can be used to specify permissions given to other users than members of projects
614 * Permissions: there are now 2 builtin roles that can be used to specify permissions given to other users than members of projects
614 * Permissions: some permissions (eg. browse the repository) can be removed for certain roles
615 * Permissions: some permissions (eg. browse the repository) can be removed for certain roles
615 * Permissions: modules (eg. issue tracking, news, documents...) can be enabled/disabled at project level
616 * Permissions: modules (eg. issue tracking, news, documents...) can be enabled/disabled at project level
616 * Added Mantis and Trac importers
617 * Added Mantis and Trac importers
617 * New application layout
618 * New application layout
618 * Added "Bulk edit" functionality on the issue list
619 * Added "Bulk edit" functionality on the issue list
619 * More flexible mail notifications settings at user level
620 * More flexible mail notifications settings at user level
620 * Added AJAX based context menu on the project issue list that provide shortcuts for editing, re-assigning, changing the status or the priority, moving or deleting an issue
621 * Added AJAX based context menu on the project issue list that provide shortcuts for editing, re-assigning, changing the status or the priority, moving or deleting an issue
621 * Added the hability to copy an issue. It can be done from the "issue/show" view or from the context menu on the issue list
622 * Added the hability to copy an issue. It can be done from the "issue/show" view or from the context menu on the issue list
622 * Added the ability to customize issue list columns (at application level or for each saved query)
623 * Added the ability to customize issue list columns (at application level or for each saved query)
623 * Overdue versions (date reached and open issues > 0) are now always displayed on the roadmap
624 * Overdue versions (date reached and open issues > 0) are now always displayed on the roadmap
624 * Added the ability to rename wiki pages (specific permission required)
625 * Added the ability to rename wiki pages (specific permission required)
625 * Search engines now supports pagination. Results are sorted in reverse chronological order
626 * Search engines now supports pagination. Results are sorted in reverse chronological order
626 * Added "Estimated hours" attribute on issues
627 * Added "Estimated hours" attribute on issues
627 * A category with assigned issue can now be deleted. 2 options are proposed: remove assignments or reassign issues to another category
628 * A category with assigned issue can now be deleted. 2 options are proposed: remove assignments or reassign issues to another category
628 * Forum notifications are now also sent to the authors of the thread, even if they donοΏ½t watch the board
629 * Forum notifications are now also sent to the authors of the thread, even if they donοΏ½t watch the board
629 * Added an application setting to specify the application protocol (http or https) used to generate urls in emails
630 * Added an application setting to specify the application protocol (http or https) used to generate urls in emails
630 * Gantt chart: now starts at the current month by default
631 * Gantt chart: now starts at the current month by default
631 * Gantt chart: month count and zoom factor are automatically saved as user preferences
632 * Gantt chart: month count and zoom factor are automatically saved as user preferences
632 * Wiki links can now refer to other project wikis
633 * Wiki links can now refer to other project wikis
633 * Added wiki index by date
634 * Added wiki index by date
634 * Added preview on add/edit issue form
635 * Added preview on add/edit issue form
635 * Emails footer can now be customized from the admin interface (Admin -> Email notifications)
636 * Emails footer can now be customized from the admin interface (Admin -> Email notifications)
636 * Default encodings for repository files can now be set in application settings (used to convert files content and diff to UTF-8 so that theyοΏ½re properly displayed)
637 * Default encodings for repository files can now be set in application settings (used to convert files content and diff to UTF-8 so that theyοΏ½re properly displayed)
637 * Calendar: first day of week can now be set in lang files
638 * Calendar: first day of week can now be set in lang files
638 * Automatic closing of duplicate issues
639 * Automatic closing of duplicate issues
639 * Added a cross-project issue list
640 * Added a cross-project issue list
640 * AJAXified the SCM browser (tree view)
641 * AJAXified the SCM browser (tree view)
641 * Pretty URL for the repository browser (Cyril Mougel)
642 * Pretty URL for the repository browser (Cyril Mougel)
642 * Search engine: added a checkbox to search titles only
643 * Search engine: added a checkbox to search titles only
643 * Added "% done" in the filter list
644 * Added "% done" in the filter list
644 * Enumerations: values can now be reordered and a default value can be specified (eg. default issue priority)
645 * Enumerations: values can now be reordered and a default value can be specified (eg. default issue priority)
645 * Added some accesskeys
646 * Added some accesskeys
646 * Added "Float" as a custom field format
647 * Added "Float" as a custom field format
647 * Added basic Theme support
648 * Added basic Theme support
648 * Added the ability to set the οΏ½done ratioοΏ½ of issues fixed by commit (Nikolay Solakov)
649 * Added the ability to set the οΏ½done ratioοΏ½ of issues fixed by commit (Nikolay Solakov)
649 * Added custom fields in issue related mail notifications
650 * Added custom fields in issue related mail notifications
650 * Email notifications are now sent in plain text and html
651 * Email notifications are now sent in plain text and html
651 * Gantt chart can now be exported to a graphic file (png). This functionality is only available if RMagick is installed.
652 * Gantt chart can now be exported to a graphic file (png). This functionality is only available if RMagick is installed.
652 * Added syntax highlightment for repository files and wiki
653 * Added syntax highlightment for repository files and wiki
653 * Improved automatic Redmine links
654 * Improved automatic Redmine links
654 * Added automatic table of content support on wiki pages
655 * Added automatic table of content support on wiki pages
655 * Added radio buttons on the documents list to sort documents by category, date, title or author
656 * Added radio buttons on the documents list to sort documents by category, date, title or author
656 * Added basic plugin support, with a sample plugin
657 * Added basic plugin support, with a sample plugin
657 * Added a link to add a new category when creating or editing an issue
658 * Added a link to add a new category when creating or editing an issue
658 * Added a "Assignable" boolean on the Role model. If unchecked, issues can not be assigned to users having this role.
659 * Added a "Assignable" boolean on the Role model. If unchecked, issues can not be assigned to users having this role.
659 * Added an option to be able to relate issues in different projects
660 * Added an option to be able to relate issues in different projects
660 * Added the ability to move issues (to another project) without changing their trackers.
661 * Added the ability to move issues (to another project) without changing their trackers.
661 * Atom feeds added on project activity, news and changesets
662 * Atom feeds added on project activity, news and changesets
662 * Added the ability to reset its own RSS access key
663 * Added the ability to reset its own RSS access key
663 * Main project list now displays root projects with their subprojects
664 * Main project list now displays root projects with their subprojects
664 * Added anchor links to issue notes
665 * Added anchor links to issue notes
665 * Added reposman Ruby version. This script can now register created repositories in Redmine (Nicolas Chuche)
666 * Added reposman Ruby version. This script can now register created repositories in Redmine (Nicolas Chuche)
666 * Issue notes are now included in search
667 * Issue notes are now included in search
667 * Added email sending test functionality
668 * Added email sending test functionality
668 * Added LDAPS support for LDAP authentication
669 * Added LDAPS support for LDAP authentication
669 * Removed hard-coded URLs in mail templates
670 * Removed hard-coded URLs in mail templates
670 * Subprojects are now grouped by projects in the navigation drop-down menu
671 * Subprojects are now grouped by projects in the navigation drop-down menu
671 * Added a new value for date filters: this week
672 * Added a new value for date filters: this week
672 * Added cache for application settings
673 * Added cache for application settings
673 * Added Polish translation (Tomasz Gawryl)
674 * Added Polish translation (Tomasz Gawryl)
674 * Added Czech translation (Jan Kadlecek)
675 * Added Czech translation (Jan Kadlecek)
675 * Added Romanian translation (Csongor Bartus)
676 * Added Romanian translation (Csongor Bartus)
676 * Added Hebrew translation (Bob Builder)
677 * Added Hebrew translation (Bob Builder)
677 * Added Serbian translation (Dragan Matic)
678 * Added Serbian translation (Dragan Matic)
678 * Added Korean translation (Choi Jong Yoon)
679 * Added Korean translation (Choi Jong Yoon)
679 * Fixed: the link to delete issue relations is displayed even if the user is not authorized to delete relations
680 * Fixed: the link to delete issue relations is displayed even if the user is not authorized to delete relations
680 * Performance improvement on calendar and gantt
681 * Performance improvement on calendar and gantt
681 * Fixed: wiki preview doesnοΏ½t work on long entries
682 * Fixed: wiki preview doesnοΏ½t work on long entries
682 * Fixed: queries with multiple custom fields return no result
683 * Fixed: queries with multiple custom fields return no result
683 * Fixed: Can not authenticate user against LDAP if its DN contains non-ascii characters
684 * Fixed: Can not authenticate user against LDAP if its DN contains non-ascii characters
684 * Fixed: URL with ~ broken in wiki formatting
685 * Fixed: URL with ~ broken in wiki formatting
685 * Fixed: some quotation marks are rendered as strange characters in pdf
686 * Fixed: some quotation marks are rendered as strange characters in pdf
686
687
687
688
688 == 2007-07-15 v0.5.1
689 == 2007-07-15 v0.5.1
689
690
690 * per project forums added
691 * per project forums added
691 * added the ability to archive projects
692 * added the ability to archive projects
692 * added οΏ½WatchοΏ½ functionality on issues. It allows users to receive notifications about issue changes
693 * added οΏ½WatchοΏ½ functionality on issues. It allows users to receive notifications about issue changes
693 * custom fields for issues can now be used as filters on issue list
694 * custom fields for issues can now be used as filters on issue list
694 * added per user custom queries
695 * added per user custom queries
695 * commit messages are now scanned for referenced or fixed issue IDs (keywords defined in Admin -> Settings)
696 * commit messages are now scanned for referenced or fixed issue IDs (keywords defined in Admin -> Settings)
696 * projects list now shows the list of public projects and private projects for which the user is a member
697 * projects list now shows the list of public projects and private projects for which the user is a member
697 * versions can now be created with no date
698 * versions can now be created with no date
698 * added issue count details for versions on Reports view
699 * added issue count details for versions on Reports view
699 * added time report, by member/activity/tracker/version and year/month/week for the selected period
700 * added time report, by member/activity/tracker/version and year/month/week for the selected period
700 * each category can now be associated to a user, so that new issues in that category are automatically assigned to that user
701 * each category can now be associated to a user, so that new issues in that category are automatically assigned to that user
701 * added autologin feature (disabled by default)
702 * added autologin feature (disabled by default)
702 * optimistic locking added for wiki edits
703 * optimistic locking added for wiki edits
703 * added wiki diff
704 * added wiki diff
704 * added the ability to destroy wiki pages (requires permission)
705 * added the ability to destroy wiki pages (requires permission)
705 * a wiki page can now be attached to each version, and displayed on the roadmap
706 * a wiki page can now be attached to each version, and displayed on the roadmap
706 * attachments can now be added to wiki pages (original patch by Pavol Murin) and displayed online
707 * attachments can now be added to wiki pages (original patch by Pavol Murin) and displayed online
707 * added an option to see all versions in the roadmap view (including completed ones)
708 * added an option to see all versions in the roadmap view (including completed ones)
708 * added basic issue relations
709 * added basic issue relations
709 * added the ability to log time when changing an issue status
710 * added the ability to log time when changing an issue status
710 * account information can now be sent to the user when creating an account
711 * account information can now be sent to the user when creating an account
711 * author and assignee of an issue always receive notifications (even if they turned of mail notifications)
712 * author and assignee of an issue always receive notifications (even if they turned of mail notifications)
712 * added a quick search form in page header
713 * added a quick search form in page header
713 * added 'me' value for 'assigned to' and 'author' query filters
714 * added 'me' value for 'assigned to' and 'author' query filters
714 * added a link on revision screen to see the entire diff for the revision
715 * added a link on revision screen to see the entire diff for the revision
715 * added last commit message for each entry in repository browser
716 * added last commit message for each entry in repository browser
716 * added the ability to view a file diff with free to/from revision selection.
717 * added the ability to view a file diff with free to/from revision selection.
717 * text files can now be viewed online when browsing the repository
718 * text files can now be viewed online when browsing the repository
718 * added basic support for other SCM: CVS (Ralph Vater), Mercurial and Darcs
719 * added basic support for other SCM: CVS (Ralph Vater), Mercurial and Darcs
719 * added fragment caching for svn diffs
720 * added fragment caching for svn diffs
720 * added fragment caching for calendar and gantt views
721 * added fragment caching for calendar and gantt views
721 * login field automatically focused on login form
722 * login field automatically focused on login form
722 * subproject name displayed on issue list, calendar and gantt
723 * subproject name displayed on issue list, calendar and gantt
723 * added an option to choose the date format: language based or ISO 8601
724 * added an option to choose the date format: language based or ISO 8601
724 * added a simple mail handler. It lets users add notes to an existing issue by replying to the initial notification email.
725 * added a simple mail handler. It lets users add notes to an existing issue by replying to the initial notification email.
725 * a 403 error page is now displayed (instead of a blank page) when trying to access a protected page
726 * a 403 error page is now displayed (instead of a blank page) when trying to access a protected page
726 * added portuguese translation (Joao Carlos Clementoni)
727 * added portuguese translation (Joao Carlos Clementoni)
727 * added partial online help japanese translation (Ken Date)
728 * added partial online help japanese translation (Ken Date)
728 * added bulgarian translation (Nikolay Solakov)
729 * added bulgarian translation (Nikolay Solakov)
729 * added dutch translation (Linda van den Brink)
730 * added dutch translation (Linda van den Brink)
730 * added swedish translation (Thomas Habets)
731 * added swedish translation (Thomas Habets)
731 * italian translation update (Alessio Spadaro)
732 * italian translation update (Alessio Spadaro)
732 * japanese translation update (Satoru Kurashiki)
733 * japanese translation update (Satoru Kurashiki)
733 * fixed: error on history atom feed when thereοΏ½s no notes on an issue change
734 * fixed: error on history atom feed when thereοΏ½s no notes on an issue change
734 * fixed: error in journalizing an issue with longtext custom fields (Postgresql)
735 * fixed: error in journalizing an issue with longtext custom fields (Postgresql)
735 * fixed: creation of Oracle schema
736 * fixed: creation of Oracle schema
736 * fixed: last day of the month not included in project activity
737 * fixed: last day of the month not included in project activity
737 * fixed: files with an apostrophe in their names can't be accessed in SVN repository
738 * fixed: files with an apostrophe in their names can't be accessed in SVN repository
738 * fixed: performance issue on RepositoriesController#revisions when a changeset has a great number of changes (eg. 100,000)
739 * fixed: performance issue on RepositoriesController#revisions when a changeset has a great number of changes (eg. 100,000)
739 * fixed: open/closed issue counts are always 0 on reports view (postgresql)
740 * fixed: open/closed issue counts are always 0 on reports view (postgresql)
740 * fixed: date query filters (wrong results and sql error with postgresql)
741 * fixed: date query filters (wrong results and sql error with postgresql)
741 * fixed: confidentiality issue on account/show (private project names displayed to anyone)
742 * fixed: confidentiality issue on account/show (private project names displayed to anyone)
742 * fixed: Long text custom fields displayed without line breaks
743 * fixed: Long text custom fields displayed without line breaks
743 * fixed: Error when editing the wokflow after deleting a status
744 * fixed: Error when editing the wokflow after deleting a status
744 * fixed: SVN commit dates are now stored as local time
745 * fixed: SVN commit dates are now stored as local time
745
746
746
747
747 == 2007-04-11 v0.5.0
748 == 2007-04-11 v0.5.0
748
749
749 * added per project Wiki
750 * added per project Wiki
750 * added rss/atom feeds at project level (custom queries can be used as feeds)
751 * added rss/atom feeds at project level (custom queries can be used as feeds)
751 * added search engine (search in issues, news, commits, wiki pages, documents)
752 * added search engine (search in issues, news, commits, wiki pages, documents)
752 * simple time tracking functionality added
753 * simple time tracking functionality added
753 * added version due dates on calendar and gantt
754 * added version due dates on calendar and gantt
754 * added subprojects issue count on project Reports page
755 * added subprojects issue count on project Reports page
755 * added the ability to copy an existing workflow when creating a new tracker
756 * added the ability to copy an existing workflow when creating a new tracker
756 * added the ability to include subprojects on calendar and gantt
757 * added the ability to include subprojects on calendar and gantt
757 * added the ability to select trackers to display on calendar and gantt (Jeffrey Jones)
758 * added the ability to select trackers to display on calendar and gantt (Jeffrey Jones)
758 * added side by side svn diff view (Cyril Mougel)
759 * added side by side svn diff view (Cyril Mougel)
759 * added back subproject filter on issue list
760 * added back subproject filter on issue list
760 * added permissions report in admin area
761 * added permissions report in admin area
761 * added a status filter on users list
762 * added a status filter on users list
762 * support for password-protected SVN repositories
763 * support for password-protected SVN repositories
763 * SVN commits are now stored in the database
764 * SVN commits are now stored in the database
764 * added simple svn statistics SVG graphs
765 * added simple svn statistics SVG graphs
765 * progress bars for roadmap versions (Nick Read)
766 * progress bars for roadmap versions (Nick Read)
766 * issue history now shows file uploads and deletions
767 * issue history now shows file uploads and deletions
767 * #id patterns are turned into links to issues in descriptions and commit messages
768 * #id patterns are turned into links to issues in descriptions and commit messages
768 * japanese translation added (Satoru Kurashiki)
769 * japanese translation added (Satoru Kurashiki)
769 * chinese simplified translation added (Andy Wu)
770 * chinese simplified translation added (Andy Wu)
770 * italian translation added (Alessio Spadaro)
771 * italian translation added (Alessio Spadaro)
771 * added scripts to manage SVN repositories creation and user access control using ssh+svn (Nicolas Chuche)
772 * added scripts to manage SVN repositories creation and user access control using ssh+svn (Nicolas Chuche)
772 * better calendar rendering time
773 * better calendar rendering time
773 * fixed migration scripts to work with mysql 5 running in strict mode
774 * fixed migration scripts to work with mysql 5 running in strict mode
774 * fixed: error when clicking "add" with no block selected on my/page_layout
775 * fixed: error when clicking "add" with no block selected on my/page_layout
775 * fixed: hard coded links in navigation bar
776 * fixed: hard coded links in navigation bar
776 * fixed: table_name pre/suffix support
777 * fixed: table_name pre/suffix support
777
778
778
779
779 == 2007-02-18 v0.4.2
780 == 2007-02-18 v0.4.2
780
781
781 * Rails 1.2 is now required
782 * Rails 1.2 is now required
782 * settings are now stored in the database and editable through the application in: Admin -> Settings (config_custom.rb is no longer used)
783 * settings are now stored in the database and editable through the application in: Admin -> Settings (config_custom.rb is no longer used)
783 * added project roadmap view
784 * added project roadmap view
784 * mail notifications added when a document, a file or an attachment is added
785 * mail notifications added when a document, a file or an attachment is added
785 * tooltips added on Gantt chart and calender to view the details of the issues
786 * tooltips added on Gantt chart and calender to view the details of the issues
786 * ability to set the sort order for roles, trackers, issue statuses
787 * ability to set the sort order for roles, trackers, issue statuses
787 * added missing fields to csv export: priority, start date, due date, done ratio
788 * added missing fields to csv export: priority, start date, due date, done ratio
788 * added total number of issues per tracker on project overview
789 * added total number of issues per tracker on project overview
789 * all icons replaced (new icons are based on GPL icon set: "KDE Crystal Diamond 2.5" -by paolino- and "kNeu! Alpha v0.1" -by Pablo Fabregat-)
790 * all icons replaced (new icons are based on GPL icon set: "KDE Crystal Diamond 2.5" -by paolino- and "kNeu! Alpha v0.1" -by Pablo Fabregat-)
790 * added back "fixed version" field on issue screen and in filters
791 * added back "fixed version" field on issue screen and in filters
791 * project settings screen split in 4 tabs
792 * project settings screen split in 4 tabs
792 * custom fields screen split in 3 tabs (one for each kind of custom field)
793 * custom fields screen split in 3 tabs (one for each kind of custom field)
793 * multiple issues pdf export now rendered as a table
794 * multiple issues pdf export now rendered as a table
794 * added a button on users/list to manually activate an account
795 * added a button on users/list to manually activate an account
795 * added a setting option to disable "password lost" functionality
796 * added a setting option to disable "password lost" functionality
796 * added a setting option to set max number of issues in csv/pdf exports
797 * added a setting option to set max number of issues in csv/pdf exports
797 * fixed: subprojects count is always 0 on projects list
798 * fixed: subprojects count is always 0 on projects list
798 * fixed: locked users are proposed when adding a member to a project
799 * fixed: locked users are proposed when adding a member to a project
799 * fixed: setting an issue status as default status leads to an sql error with SQLite
800 * fixed: setting an issue status as default status leads to an sql error with SQLite
800 * fixed: unable to delete an issue status even if it's not used yet
801 * fixed: unable to delete an issue status even if it's not used yet
801 * fixed: filters ignored when exporting a predefined query to csv/pdf
802 * fixed: filters ignored when exporting a predefined query to csv/pdf
802 * fixed: crash when french "issue_edit" email notification is sent
803 * fixed: crash when french "issue_edit" email notification is sent
803 * fixed: hide mail preference not saved (my/account)
804 * fixed: hide mail preference not saved (my/account)
804 * fixed: crash when a new user try to edit its "my page" layout
805 * fixed: crash when a new user try to edit its "my page" layout
805
806
806
807
807 == 2007-01-03 v0.4.1
808 == 2007-01-03 v0.4.1
808
809
809 * fixed: emails have no recipient when one of the project members has notifications disabled
810 * fixed: emails have no recipient when one of the project members has notifications disabled
810
811
811
812
812 == 2007-01-02 v0.4.0
813 == 2007-01-02 v0.4.0
813
814
814 * simple SVN browser added (just needs svn binaries in PATH)
815 * simple SVN browser added (just needs svn binaries in PATH)
815 * comments can now be added on news
816 * comments can now be added on news
816 * "my page" is now customizable
817 * "my page" is now customizable
817 * more powerfull and savable filters for issues lists
818 * more powerfull and savable filters for issues lists
818 * improved issues change history
819 * improved issues change history
819 * new functionality: move an issue to another project or tracker
820 * new functionality: move an issue to another project or tracker
820 * new functionality: add a note to an issue
821 * new functionality: add a note to an issue
821 * new report: project activity
822 * new report: project activity
822 * "start date" and "% done" fields added on issues
823 * "start date" and "% done" fields added on issues
823 * project calendar added
824 * project calendar added
824 * gantt chart added (exportable to pdf)
825 * gantt chart added (exportable to pdf)
825 * single/multiple issues pdf export added
826 * single/multiple issues pdf export added
826 * issues reports improvements
827 * issues reports improvements
827 * multiple file upload for issues, documents and files
828 * multiple file upload for issues, documents and files
828 * option to set maximum size of uploaded files
829 * option to set maximum size of uploaded files
829 * textile formating of issue and news descritions (RedCloth required)
830 * textile formating of issue and news descritions (RedCloth required)
830 * integration of DotClear jstoolbar for textile formatting
831 * integration of DotClear jstoolbar for textile formatting
831 * calendar date picker for date fields (LGPL DHTML Calendar http://sourceforge.net/projects/jscalendar)
832 * calendar date picker for date fields (LGPL DHTML Calendar http://sourceforge.net/projects/jscalendar)
832 * new filter in issues list: Author
833 * new filter in issues list: Author
833 * ajaxified paginators
834 * ajaxified paginators
834 * news rss feed added
835 * news rss feed added
835 * option to set number of results per page on issues list
836 * option to set number of results per page on issues list
836 * localized csv separator (comma/semicolon)
837 * localized csv separator (comma/semicolon)
837 * csv output encoded to ISO-8859-1
838 * csv output encoded to ISO-8859-1
838 * user custom field displayed on account/show
839 * user custom field displayed on account/show
839 * default configuration improved (default roles, trackers, status, permissions and workflows)
840 * default configuration improved (default roles, trackers, status, permissions and workflows)
840 * language for default configuration data can now be chosen when running 'load_default_data' task
841 * language for default configuration data can now be chosen when running 'load_default_data' task
841 * javascript added on custom field form to show/hide fields according to the format of custom field
842 * javascript added on custom field form to show/hide fields according to the format of custom field
842 * fixed: custom fields not in csv exports
843 * fixed: custom fields not in csv exports
843 * fixed: project settings now displayed according to user's permissions
844 * fixed: project settings now displayed according to user's permissions
844 * fixed: application error when no version is selected on projects/add_file
845 * fixed: application error when no version is selected on projects/add_file
845 * fixed: public actions not authorized for members of non public projects
846 * fixed: public actions not authorized for members of non public projects
846 * fixed: non public projects were shown on welcome screen even if current user is not a member
847 * fixed: non public projects were shown on welcome screen even if current user is not a member
847
848
848
849
849 == 2006-10-08 v0.3.0
850 == 2006-10-08 v0.3.0
850
851
851 * user authentication against multiple LDAP (optional)
852 * user authentication against multiple LDAP (optional)
852 * token based "lost password" functionality
853 * token based "lost password" functionality
853 * user self-registration functionality (optional)
854 * user self-registration functionality (optional)
854 * custom fields now available for issues, users and projects
855 * custom fields now available for issues, users and projects
855 * new custom field format "text" (displayed as a textarea field)
856 * new custom field format "text" (displayed as a textarea field)
856 * project & administration drop down menus in navigation bar for quicker access
857 * project & administration drop down menus in navigation bar for quicker access
857 * text formatting is preserved for long text fields (issues, projects and news descriptions)
858 * text formatting is preserved for long text fields (issues, projects and news descriptions)
858 * urls and emails are turned into clickable links in long text fields
859 * urls and emails are turned into clickable links in long text fields
859 * "due date" field added on issues
860 * "due date" field added on issues
860 * tracker selection filter added on change log
861 * tracker selection filter added on change log
861 * Localization plugin replaced with GLoc 1.1.0 (iconv required)
862 * Localization plugin replaced with GLoc 1.1.0 (iconv required)
862 * error messages internationalization
863 * error messages internationalization
863 * german translation added (thanks to Karim Trott)
864 * german translation added (thanks to Karim Trott)
864 * data locking for issues to prevent update conflicts (using ActiveRecord builtin optimistic locking)
865 * data locking for issues to prevent update conflicts (using ActiveRecord builtin optimistic locking)
865 * new filter in issues list: "Fixed version"
866 * new filter in issues list: "Fixed version"
866 * active filters are displayed with colored background on issues list
867 * active filters are displayed with colored background on issues list
867 * custom configuration is now defined in config/config_custom.rb
868 * custom configuration is now defined in config/config_custom.rb
868 * user object no more stored in session (only user_id)
869 * user object no more stored in session (only user_id)
869 * news summary field is no longer required
870 * news summary field is no longer required
870 * tables and forms redesign
871 * tables and forms redesign
871 * Fixed: boolean custom field not working
872 * Fixed: boolean custom field not working
872 * Fixed: error messages for custom fields are not displayed
873 * Fixed: error messages for custom fields are not displayed
873 * Fixed: invalid custom fields should have a red border
874 * Fixed: invalid custom fields should have a red border
874 * Fixed: custom fields values are not validated on issue update
875 * Fixed: custom fields values are not validated on issue update
875 * Fixed: unable to choose an empty value for 'List' custom fields
876 * Fixed: unable to choose an empty value for 'List' custom fields
876 * Fixed: no issue categories sorting
877 * Fixed: no issue categories sorting
877 * Fixed: incorrect versions sorting
878 * Fixed: incorrect versions sorting
878
879
879
880
880 == 2006-07-12 - v0.2.2
881 == 2006-07-12 - v0.2.2
881
882
882 * Fixed: bug in "issues list"
883 * Fixed: bug in "issues list"
883
884
884
885
885 == 2006-07-09 - v0.2.1
886 == 2006-07-09 - v0.2.1
886
887
887 * new databases supported: Oracle, PostgreSQL, SQL Server
888 * new databases supported: Oracle, PostgreSQL, SQL Server
888 * projects/subprojects hierarchy (1 level of subprojects only)
889 * projects/subprojects hierarchy (1 level of subprojects only)
889 * environment information display in admin/info
890 * environment information display in admin/info
890 * more filter options in issues list (rev6)
891 * more filter options in issues list (rev6)
891 * default language based on browser settings (Accept-Language HTTP header)
892 * default language based on browser settings (Accept-Language HTTP header)
892 * issues list exportable to CSV (rev6)
893 * issues list exportable to CSV (rev6)
893 * simple_format and auto_link on long text fields
894 * simple_format and auto_link on long text fields
894 * more data validations
895 * more data validations
895 * Fixed: error when all mail notifications are unchecked in admin/mail_options
896 * Fixed: error when all mail notifications are unchecked in admin/mail_options
896 * Fixed: all project news are displayed on project summary
897 * Fixed: all project news are displayed on project summary
897 * Fixed: Can't change user password in users/edit
898 * Fixed: Can't change user password in users/edit
898 * Fixed: Error on tables creation with PostgreSQL (rev5)
899 * Fixed: Error on tables creation with PostgreSQL (rev5)
899 * Fixed: SQL error in "issue reports" view with PostgreSQL (rev5)
900 * Fixed: SQL error in "issue reports" view with PostgreSQL (rev5)
900
901
901
902
902 == 2006-06-25 - v0.1.0
903 == 2006-06-25 - v0.1.0
903
904
904 * multiple users/multiple projects
905 * multiple users/multiple projects
905 * role based access control
906 * role based access control
906 * issue tracking system
907 * issue tracking system
907 * fully customizable workflow
908 * fully customizable workflow
908 * documents/files repository
909 * documents/files repository
909 * email notifications on issue creation and update
910 * email notifications on issue creation and update
910 * multilanguage support (except for error messages):english, french, spanish
911 * multilanguage support (except for error messages):english, french, spanish
911 * online manual in french (unfinished)
912 * online manual in french (unfinished)
General Comments 0
You need to be logged in to leave comments. Login now