##// END OF EJS Templates
Merged r2515, r2516, r2527, r2534, r2555 from trunk....
Jean-Philippe Lang -
r2488:629c106a461e
parent child
Show More
@@ -1,11 +1,11
1 <div class="autoscroll">
1 <div class="autoscroll">
2 <table class="filecontent CodeRay">
2 <table class="filecontent CodeRay">
3 <tbody>
3 <tbody>
4 <% line_num = 1 %>
4 <% line_num = 1 %>
5 <% syntax_highlight(filename, to_utf8(content)).each_line do |line| %>
5 <% syntax_highlight(filename, to_utf8(content)).each_line do |line| %>
6 <tr><th class="line-num" id="L<%= line_num %>"><%= line_num %></th><td class="line-code"><pre><%= line %></pre></td></tr>
6 <tr><th class="line-num" id="L<%= line_num %>"><a href="#L<%= line_num %>"><%= line_num %></a></th><td class="line-code"><pre><%= line %></pre></td></tr>
7 <% line_num += 1 %>
7 <% line_num += 1 %>
8 <% end %>
8 <% end %>
9 </tbody>
9 </tbody>
10 </table>
10 </table>
11 </div>
11 </div>
@@ -1,60 +1,62
1 <h2><%= @author.nil? ? l(:label_activity) : l(:label_user_activity, link_to_user(@author)) %></h2>
1 <h2><%= @author.nil? ? l(:label_activity) : l(:label_user_activity, link_to_user(@author)) %></h2>
2 <p class="subtitle"><%= "#{l(:label_date_from)} #{format_date(@date_to - @days)} #{l(:label_date_to).downcase} #{format_date(@date_to-1)}" %></p>
2 <p class="subtitle"><%= "#{l(:label_date_from)} #{format_date(@date_to - @days)} #{l(:label_date_to).downcase} #{format_date(@date_to-1)}" %></p>
3
3
4 <div id="activity">
4 <div id="activity">
5 <% @events_by_day.keys.sort.reverse.each do |day| %>
5 <% @events_by_day.keys.sort.reverse.each do |day| %>
6 <h3><%= format_activity_day(day) %></h3>
6 <h3><%= format_activity_day(day) %></h3>
7 <dl>
7 <dl>
8 <% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| -%>
8 <% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| -%>
9 <dt class="<%= e.event_type %> <%= User.current.logged? && e.respond_to?(:event_author) && User.current == e.event_author ? 'me' : nil %>">
9 <dt class="<%= e.event_type %> <%= User.current.logged? && e.respond_to?(:event_author) && User.current == e.event_author ? 'me' : nil %>">
10 <%= avatar(e.event_author, :size => "24") if e.respond_to?(:event_author) %>
10 <%= avatar(e.event_author, :size => "24") if e.respond_to?(:event_author) %>
11 <span class="time"><%= format_time(e.event_datetime, false) %></span>
11 <span class="time"><%= format_time(e.event_datetime, false) %></span>
12 <%= content_tag('span', h(e.project), :class => 'project') if @project.nil? || @project != e.project %>
12 <%= content_tag('span', h(e.project), :class => 'project') if @project.nil? || @project != e.project %>
13 <%= link_to format_activity_title(e.event_title), e.event_url %></dt>
13 <%= link_to format_activity_title(e.event_title), e.event_url %></dt>
14 <dd><span class="description"><%= format_activity_description(e.event_description) %></span>
14 <dd><span class="description"><%= format_activity_description(e.event_description) %></span>
15 <span class="author"><%= e.event_author if e.respond_to?(:event_author) %></span></dd>
15 <span class="author"><%= e.event_author if e.respond_to?(:event_author) %></span></dd>
16 <% end -%>
16 <% end -%>
17 </dl>
17 </dl>
18 <% end -%>
18 <% end -%>
19 </div>
19 </div>
20
20
21 <%= content_tag('p', l(:label_no_data), :class => 'nodata') if @events_by_day.empty? %>
21 <%= content_tag('p', l(:label_no_data), :class => 'nodata') if @events_by_day.empty? %>
22
22
23 <div style="float:left;">
23 <div style="float:left;">
24 <%= link_to_remote(('&#171; ' + l(:label_previous)),
24 <%= link_to_remote(('&#171; ' + l(:label_previous)),
25 {:update => "content", :url => params.merge(:from => @date_to - @days - 1), :complete => 'window.scrollTo(0,0)'},
25 {:update => "content", :url => params.merge(:from => @date_to - @days - 1), :complete => 'window.scrollTo(0,0)'},
26 {:href => url_for(params.merge(:from => @date_to - @days - 1)),
26 {:href => url_for(params.merge(:from => @date_to - @days - 1)),
27 :title => "#{l(:label_date_from)} #{format_date(@date_to - 2*@days)} #{l(:label_date_to).downcase} #{format_date(@date_to - @days - 1)}"}) %>
27 :title => "#{l(:label_date_from)} #{format_date(@date_to - 2*@days)} #{l(:label_date_to).downcase} #{format_date(@date_to - @days - 1)}"}) %>
28 </div>
28 </div>
29 <div style="float:right;">
29 <div style="float:right;">
30 <%= link_to_remote((l(:label_next) + ' &#187;'),
30 <%= link_to_remote((l(:label_next) + ' &#187;'),
31 {:update => "content", :url => params.merge(:from => @date_to + @days - 1), :complete => 'window.scrollTo(0,0)'},
31 {:update => "content", :url => params.merge(:from => @date_to + @days - 1), :complete => 'window.scrollTo(0,0)'},
32 {:href => url_for(params.merge(:from => @date_to + @days - 1)),
32 {:href => url_for(params.merge(:from => @date_to + @days - 1)),
33 :title => "#{l(:label_date_from)} #{format_date(@date_to)} #{l(:label_date_to).downcase} #{format_date(@date_to + @days - 1)}"}) unless @date_to >= Date.today %>
33 :title => "#{l(:label_date_from)} #{format_date(@date_to)} #{l(:label_date_to).downcase} #{format_date(@date_to + @days - 1)}"}) unless @date_to >= Date.today %>
34 </div>
34 </div>
35 &nbsp;
35 &nbsp;
36 <p class="other-formats">
36 <p class="other-formats">
37 <%= l(:label_export_to) %>
37 <%= l(:label_export_to) %>
38 <%= link_to 'Atom', params.merge(:format => :atom, :from => nil, :key => User.current.rss_key), :class => 'feed' %>
38 <%= link_to 'Atom', params.merge(:format => :atom, :from => nil, :key => User.current.rss_key), :class => 'feed' %>
39 </p>
39 </p>
40
40
41 <% content_for :header_tags do %>
41 <% content_for :header_tags do %>
42 <%= auto_discovery_link_tag(:atom, params.merge(:format => 'atom', :from => nil, :key => User.current.rss_key)) %>
42 <%= auto_discovery_link_tag(:atom, params.merge(:format => 'atom', :from => nil, :key => User.current.rss_key)) %>
43 <% end %>
43 <% end %>
44
44
45 <% content_for :sidebar do %>
45 <% content_for :sidebar do %>
46 <% form_tag({}, :method => :get) do %>
46 <% form_tag({}, :method => :get) do %>
47 <h3><%= l(:label_activity) %></h3>
47 <h3><%= l(:label_activity) %></h3>
48 <p><% @activity.event_types.each do |t| %>
48 <p><% @activity.event_types.each do |t| %>
49 <label><%= check_box_tag "show_#{t}", 1, @activity.scope.include?(t) %> <%= l("label_#{t.singularize}_plural")%></label><br />
49 <%= check_box_tag "show_#{t}", 1, @activity.scope.include?(t) %>
50 <%= link_to(l("label_#{t.singularize}_plural"), {"show_#{t}" => 1, :user_id => params[:user_id]})%>
51 <br />
50 <% end %></p>
52 <% end %></p>
51 <% if @project && @project.active_children.any? %>
53 <% if @project && @project.active_children.any? %>
52 <p><label><%= check_box_tag 'with_subprojects', 1, @with_subprojects %> <%=l(:label_subproject_plural)%></label></p>
54 <p><label><%= check_box_tag 'with_subprojects', 1, @with_subprojects %> <%=l(:label_subproject_plural)%></label></p>
53 <%= hidden_field_tag 'with_subprojects', 0 %>
55 <%= hidden_field_tag 'with_subprojects', 0 %>
54 <% end %>
56 <% end %>
55 <%= hidden_field_tag('user_id', params[:user_id]) unless params[:user_id].blank? %>
57 <%= hidden_field_tag('user_id', params[:user_id]) unless params[:user_id].blank? %>
56 <p><%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %></p>
58 <p><%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %></p>
57 <% end %>
59 <% end %>
58 <% end %>
60 <% end %>
59
61
60 <% html_title(l(:label_activity), @author) -%>
62 <% html_title(l(:label_activity), @author) -%>
@@ -1,42 +1,46
1 <div class="contextual">
1 <div class="contextual">
2 <%= link_to_if_authorized l(:label_attachment_new), {:controller => 'projects', :action => 'add_file', :id => @project}, :class => 'icon icon-add' %>
2 <%= link_to_if_authorized l(:label_attachment_new), {:controller => 'projects', :action => 'add_file', :id => @project}, :class => 'icon icon-add' %>
3 </div>
3 </div>
4
4
5 <h2><%=l(:label_attachment_plural)%></h2>
5 <h2><%=l(:label_attachment_plural)%></h2>
6
6
7 <% delete_allowed = User.current.allowed_to?(:manage_files, @project) %>
7 <% delete_allowed = User.current.allowed_to?(:manage_files, @project) %>
8
8
9 <table class="list">
9 <table class="list files">
10 <thead><tr>
10 <thead><tr>
11 <%= sort_header_tag('filename', :caption => l(:field_filename)) %>
11 <%= sort_header_tag('filename', :caption => l(:field_filename)) %>
12 <%= sort_header_tag('created_on', :caption => l(:label_date), :default_order => 'desc') %>
12 <%= sort_header_tag('created_on', :caption => l(:label_date), :default_order => 'desc') %>
13 <%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc') %>
13 <%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc') %>
14 <%= sort_header_tag('downloads', :caption => l(:label_downloads_abbr), :default_order => 'desc') %>
14 <%= sort_header_tag('downloads', :caption => l(:label_downloads_abbr), :default_order => 'desc') %>
15 <th>MD5</th>
15 <th>MD5</th>
16 <th></th>
16 <th></th>
17 </tr></thead>
17 </tr></thead>
18 <tbody>
18 <tbody>
19 <% @containers.each do |container| %>
19 <% @containers.each do |container| %>
20 <% next if container.attachments.empty? -%>
20 <% next if container.attachments.empty? -%>
21 <% if container.is_a?(Version) -%>
21 <% if container.is_a?(Version) -%>
22 <tr><th colspan="6" align="left"><span class="icon icon-package"><b><%=h container %></b></span></th></tr>
22 <tr>
23 <th colspan="6" align="left">
24 <%= link_to(h(container), {:controller => 'versions', :action => 'show', :id => container}, :class => "icon icon-package") %>
25 </th>
26 </tr>
23 <% end -%>
27 <% end -%>
24 <% container.attachments.each do |file| %>
28 <% container.attachments.each do |file| %>
25 <tr class="<%= cycle("odd", "even") %>">
29 <tr class="file <%= cycle("odd", "even") %>">
26 <td><%= link_to_attachment file, :download => true, :title => file.description %></td>
30 <td class="filename"><%= link_to_attachment file, :download => true, :title => file.description %></td>
27 <td align="center"><%= format_time(file.created_on) %></td>
31 <td class="created_on"><%= format_time(file.created_on) %></td>
28 <td align="center"><%= number_to_human_size(file.filesize) %></td>
32 <td class="filesize"><%= number_to_human_size(file.filesize) %></td>
29 <td align="center"><%= file.downloads %></td>
33 <td class="downloads"><%= file.downloads %></td>
30 <td align="center"><small><%= file.digest %></small></td>
34 <td class="digest"><%= file.digest %></td>
31 <td align="center">
35 <td align="center">
32 <%= link_to(image_tag('delete.png'), {:controller => 'attachments', :action => 'destroy', :id => file},
36 <%= link_to(image_tag('delete.png'), {:controller => 'attachments', :action => 'destroy', :id => file},
33 :confirm => l(:text_are_you_sure), :method => :post) if delete_allowed %>
37 :confirm => l(:text_are_you_sure), :method => :post) if delete_allowed %>
34 </td>
38 </td>
35 </tr>
39 </tr>
36 <% end
40 <% end
37 reset_cycle %>
41 reset_cycle %>
38 <% end %>
42 <% end %>
39 </tbody>
43 </tbody>
40 </table>
44 </table>
41
45
42 <% html_title(l(:label_attachment_plural)) -%>
46 <% html_title(l(:label_attachment_plural)) -%>
@@ -1,30 +1,30
1 <h2><%= render :partial => 'navigation', :locals => { :path => @path, :kind => 'file', :revision => @rev } %></h2>
1 <h2><%= render :partial => 'navigation', :locals => { :path => @path, :kind => 'file', :revision => @rev } %></h2>
2
2
3 <p><%= render :partial => 'link_to_functions' %></p>
3 <p><%= render :partial => 'link_to_functions' %></p>
4
4
5 <% colors = Hash.new {|k,v| k[v] = (k.size % 12) } %>
5 <% colors = Hash.new {|k,v| k[v] = (k.size % 12) } %>
6
6
7 <div class="autoscroll">
7 <div class="autoscroll">
8 <table class="filecontent annotate CodeRay">
8 <table class="filecontent annotate CodeRay">
9 <tbody>
9 <tbody>
10 <% line_num = 1 %>
10 <% line_num = 1 %>
11 <% syntax_highlight(@path, to_utf8(@annotate.content)).each_line do |line| %>
11 <% syntax_highlight(@path, to_utf8(@annotate.content)).each_line do |line| %>
12 <% revision = @annotate.revisions[line_num-1] %>
12 <% revision = @annotate.revisions[line_num-1] %>
13 <tr class="bloc-<%= revision.nil? ? 0 : colors[revision.identifier || revision.revision] %>">
13 <tr class="bloc-<%= revision.nil? ? 0 : colors[revision.identifier || revision.revision] %>">
14 <th class="line-num"><%= line_num %></th>
14 <th class="line-num" id="L<%= line_num %>"><a href="#L<%= line_num %>"><%= line_num %></a></th>
15 <td class="revision">
15 <td class="revision">
16 <%= (revision.identifier ? link_to(format_revision(revision.identifier), :action => 'revision', :id => @project, :rev => revision.identifier) : format_revision(revision.revision)) if revision %></td>
16 <%= (revision.identifier ? link_to(format_revision(revision.identifier), :action => 'revision', :id => @project, :rev => revision.identifier) : format_revision(revision.revision)) if revision %></td>
17 <td class="author"><%= h(revision.author.to_s.split('<').first) if revision %></td>
17 <td class="author"><%= h(revision.author.to_s.split('<').first) if revision %></td>
18 <td class="line-code"><pre><%= line %></pre></td>
18 <td class="line-code"><pre><%= line %></pre></td>
19 </tr>
19 </tr>
20 <% line_num += 1 %>
20 <% line_num += 1 %>
21 <% end %>
21 <% end %>
22 </tbody>
22 </tbody>
23 </table>
23 </table>
24 </div>
24 </div>
25
25
26 <% html_title(l(:button_annotate)) -%>
26 <% html_title(l(:button_annotate)) -%>
27
27
28 <% content_for :header_tags do %>
28 <% content_for :header_tags do %>
29 <%= stylesheet_link_tag 'scm' %>
29 <%= stylesheet_link_tag 'scm' %>
30 <% end %>
30 <% end %>
@@ -1,870 +1,874
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.2
8 == 2009-xx-xx v0.8.2
9
9
10 * Send an email to the user when an administrator activates a registered user
10 * Send an email to the user when an administrator activates a registered user
11 * Strip keywords from received email body
11 * Strip keywords from received email body
12 * Footer updated to 2009
12 * Footer updated to 2009
13 * Show RSS-link even when no issues is found
13 * Show RSS-link even when no issues is found
14 * One click filter action in activity view
15 * Clickable/linkable line #'s while browsing the repo or viewing a file
16 * Links to versions on files list
14 * Fixed: exporting an issue with attachments to PDF raises an error
17 * Fixed: exporting an issue with attachments to PDF raises an error
15 * Fixed: "too few arguments" error may occur on activerecord error translation
18 * Fixed: "too few arguments" error may occur on activerecord error translation
16 * Fixed: "Default columns Displayed on the Issues list" setting is not easy to read
19 * Fixed: "Default columns Displayed on the Issues list" setting is not easy to read
20 * Fixed: visited links to closed tickets are not striked through with IE6
17
21
18
22
19 == 2009-02-15 v0.8.1
23 == 2009-02-15 v0.8.1
20
24
21 * Select watchers on new issue form
25 * Select watchers on new issue form
22 * Issue description is no longer a required field
26 * Issue description is no longer a required field
23 * Files module: ability to add files without version
27 * Files module: ability to add files without version
24 * Jump to the current tab when using the project quick-jump combo
28 * Jump to the current tab when using the project quick-jump combo
25 * Display a warning if some attachments were not saved
29 * Display a warning if some attachments were not saved
26 * Import custom fields values from emails on issue creation
30 * Import custom fields values from emails on issue creation
27 * Show view/annotate/download links on entry and annotate views
31 * Show view/annotate/download links on entry and annotate views
28 * Admin Info Screen: Display if plugin assets directory is writable
32 * Admin Info Screen: Display if plugin assets directory is writable
29 * Adds a 'Create and continue' button on the new issue form
33 * Adds a 'Create and continue' button on the new issue form
30 * IMAP: add options to move received emails
34 * IMAP: add options to move received emails
31 * Do not show Category field when categories are not defined
35 * Do not show Category field when categories are not defined
32 * Lower the project identifier limit to a minimum of two characters
36 * Lower the project identifier limit to a minimum of two characters
33 * Add "closed" html class to closed entries in issue list
37 * Add "closed" html class to closed entries in issue list
34 * Fixed: broken redirect URL on login failure
38 * Fixed: broken redirect URL on login failure
35 * Fixed: Deleted files are shown when using Darcs
39 * Fixed: Deleted files are shown when using Darcs
36 * Fixed: Darcs adapter works on Win32 only
40 * Fixed: Darcs adapter works on Win32 only
37 * Fixed: syntax highlight doesn't appear in new ticket preview
41 * Fixed: syntax highlight doesn't appear in new ticket preview
38 * Fixed: email notification for changes I make still occurs when running Repository.fetch_changesets
42 * Fixed: email notification for changes I make still occurs when running Repository.fetch_changesets
39 * Fixed: no error is raised when entering invalid hours on the issue update form
43 * Fixed: no error is raised when entering invalid hours on the issue update form
40 * Fixed: Details time log report CSV export doesn't honour date format from settings
44 * Fixed: Details time log report CSV export doesn't honour date format from settings
41 * Fixed: invalid css classes on issue details
45 * Fixed: invalid css classes on issue details
42 * Fixed: Trac importer creates duplicate custom values
46 * Fixed: Trac importer creates duplicate custom values
43 * Fixed: inline attached image should not match partial filename
47 * Fixed: inline attached image should not match partial filename
44
48
45
49
46 == 2008-12-30 v0.8.0
50 == 2008-12-30 v0.8.0
47
51
48 * Setting added in order to limit the number of diff lines that should be displayed
52 * Setting added in order to limit the number of diff lines that should be displayed
49 * Makes logged-in username in topbar linking to
53 * Makes logged-in username in topbar linking to
50 * Mail handler: strip tags when receiving a html-only email
54 * Mail handler: strip tags when receiving a html-only email
51 * Mail handler: add watchers before sending notification
55 * Mail handler: add watchers before sending notification
52 * Adds a css class (overdue) to overdue issues on issue lists and detail views
56 * Adds a css class (overdue) to overdue issues on issue lists and detail views
53 * Fixed: project activity truncated after viewing user's activity
57 * Fixed: project activity truncated after viewing user's activity
54 * Fixed: email address entered for password recovery shouldn't be case-sensitive
58 * Fixed: email address entered for password recovery shouldn't be case-sensitive
55 * Fixed: default flag removed when editing a default enumeration
59 * Fixed: default flag removed when editing a default enumeration
56 * Fixed: default category ignored when adding a document
60 * Fixed: default category ignored when adding a document
57 * Fixed: error on repository user mapping when a repository username is blank
61 * Fixed: error on repository user mapping when a repository username is blank
58 * Fixed: Firefox cuts off large diffs
62 * Fixed: Firefox cuts off large diffs
59 * Fixed: CVS browser should not show dead revisions (deleted files)
63 * Fixed: CVS browser should not show dead revisions (deleted files)
60 * Fixed: escape double-quotes in image titles
64 * Fixed: escape double-quotes in image titles
61 * Fixed: escape textarea content when editing a issue note
65 * Fixed: escape textarea content when editing a issue note
62 * Fixed: JS error on context menu with IE
66 * Fixed: JS error on context menu with IE
63 * Fixed: bold syntax around single character in series doesn't work
67 * Fixed: bold syntax around single character in series doesn't work
64 * Fixed several XSS vulnerabilities
68 * Fixed several XSS vulnerabilities
65 * Fixed a SQL injection vulnerability
69 * Fixed a SQL injection vulnerability
66
70
67
71
68 == 2008-12-07 v0.8.0-rc1
72 == 2008-12-07 v0.8.0-rc1
69
73
70 * Wiki page protection
74 * Wiki page protection
71 * Wiki page hierarchy. Parent page can be assigned on the Rename screen
75 * Wiki page hierarchy. Parent page can be assigned on the Rename screen
72 * Adds support for issue creation via email
76 * Adds support for issue creation via email
73 * Adds support for free ticket filtering and custom queries on Gantt chart and calendar
77 * Adds support for free ticket filtering and custom queries on Gantt chart and calendar
74 * Cross-project search
78 * Cross-project search
75 * Ability to search a project and its subprojects
79 * Ability to search a project and its subprojects
76 * Ability to search the projects the user belongs to
80 * Ability to search the projects the user belongs to
77 * Adds custom fields on time entries
81 * Adds custom fields on time entries
78 * Adds boolean and list custom fields for time entries as criteria on time report
82 * Adds boolean and list custom fields for time entries as criteria on time report
79 * Cross-project time reports
83 * Cross-project time reports
80 * Display latest user's activity on account/show view
84 * Display latest user's activity on account/show view
81 * Show last connexion time on user's page
85 * Show last connexion time on user's page
82 * Obfuscates email address on user's account page using javascript
86 * Obfuscates email address on user's account page using javascript
83 * wiki TOC rendered as an unordered list
87 * wiki TOC rendered as an unordered list
84 * Adds the ability to search for a user on the administration users list
88 * Adds the ability to search for a user on the administration users list
85 * Adds the ability to search for a project name or identifier on the administration projects list
89 * Adds the ability to search for a project name or identifier on the administration projects list
86 * Redirect user to the previous page after logging in
90 * Redirect user to the previous page after logging in
87 * Adds a permission 'view wiki edits' so that wiki history can be hidden to certain users
91 * Adds a permission 'view wiki edits' so that wiki history can be hidden to certain users
88 * Adds permissions for viewing the watcher list and adding new watchers on the issue detail view
92 * Adds permissions for viewing the watcher list and adding new watchers on the issue detail view
89 * Adds permissions to let users edit and/or delete their messages
93 * Adds permissions to let users edit and/or delete their messages
90 * Link to activity view when displaying dates
94 * Link to activity view when displaying dates
91 * Hide Redmine version in atom feeds and pdf properties
95 * Hide Redmine version in atom feeds and pdf properties
92 * 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.
96 * 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.
93 * Sort users by their display names so that user dropdown lists are sorted alphabetically
97 * Sort users by their display names so that user dropdown lists are sorted alphabetically
94 * Adds estimated hours to issue filters
98 * Adds estimated hours to issue filters
95 * Switch order of current and previous revisions in side-by-side diff
99 * Switch order of current and previous revisions in side-by-side diff
96 * Render the commit changes list as a tree
100 * Render the commit changes list as a tree
97 * Adds watch/unwatch functionality at forum topic level
101 * Adds watch/unwatch functionality at forum topic level
98 * When moving an issue to another project, reassign it to the category with same name if any
102 * When moving an issue to another project, reassign it to the category with same name if any
99 * Adds child_pages macro for wiki pages
103 * Adds child_pages macro for wiki pages
100 * Use GET instead of POST on roadmap (#718), gantt and calendar forms
104 * Use GET instead of POST on roadmap (#718), gantt and calendar forms
101 * Search engine: display total results count and count by result type
105 * Search engine: display total results count and count by result type
102 * Email delivery configuration moved to an unversioned YAML file (config/email.yml, see the sample file)
106 * Email delivery configuration moved to an unversioned YAML file (config/email.yml, see the sample file)
103 * Adds icons on search results
107 * Adds icons on search results
104 * Adds 'Edit' link on account/show for admin users
108 * Adds 'Edit' link on account/show for admin users
105 * Adds Lock/Unlock/Activate link on user edit screen
109 * Adds Lock/Unlock/Activate link on user edit screen
106 * Adds user count in status drop down on admin user list
110 * Adds user count in status drop down on admin user list
107 * Adds multi-levels blockquotes support by using > at the beginning of lines
111 * Adds multi-levels blockquotes support by using > at the beginning of lines
108 * Adds a Reply link to each issue note
112 * Adds a Reply link to each issue note
109 * Adds plain text only option for mail notifications
113 * Adds plain text only option for mail notifications
110 * Gravatar support for issue detail, user grid, and activity stream (disabled by default)
114 * Gravatar support for issue detail, user grid, and activity stream (disabled by default)
111 * Adds 'Delete wiki pages attachments' permission
115 * Adds 'Delete wiki pages attachments' permission
112 * Show the most recent file when displaying an inline image
116 * Show the most recent file when displaying an inline image
113 * Makes permission screens localized
117 * Makes permission screens localized
114 * AuthSource list: display associated users count and disable 'Delete' buton if any
118 * AuthSource list: display associated users count and disable 'Delete' buton if any
115 * Make the 'duplicates of' relation asymmetric
119 * Make the 'duplicates of' relation asymmetric
116 * Adds username to the password reminder email
120 * Adds username to the password reminder email
117 * Adds links to forum messages using message#id syntax
121 * Adds links to forum messages using message#id syntax
118 * Allow same name for custom fields on different object types
122 * Allow same name for custom fields on different object types
119 * One-click bulk edition using the issue list context menu within the same project
123 * One-click bulk edition using the issue list context menu within the same project
120 * 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.
124 * 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.
121 * Adds checkboxes toggle links on permissions report
125 * Adds checkboxes toggle links on permissions report
122 * Adds Trac-Like anchors on wiki headings
126 * Adds Trac-Like anchors on wiki headings
123 * Adds support for wiki links with anchor
127 * Adds support for wiki links with anchor
124 * Adds category to the issue context menu
128 * Adds category to the issue context menu
125 * Adds a workflow overview screen
129 * Adds a workflow overview screen
126 * Appends the filename to the attachment url so that clients that ignore content-disposition http header get the real filename
130 * Appends the filename to the attachment url so that clients that ignore content-disposition http header get the real filename
127 * Dots allowed in custom field name
131 * Dots allowed in custom field name
128 * Adds posts quoting functionality
132 * Adds posts quoting functionality
129 * Adds an option to generate sequential project identifiers
133 * Adds an option to generate sequential project identifiers
130 * Adds mailto link on the user administration list
134 * Adds mailto link on the user administration list
131 * Ability to remove enumerations (activities, priorities, document categories) that are in use. Associated objects can be reassigned to another value
135 * Ability to remove enumerations (activities, priorities, document categories) that are in use. Associated objects can be reassigned to another value
132 * Gantt chart: display issues that don't have a due date if they are assigned to a version with a date
136 * Gantt chart: display issues that don't have a due date if they are assigned to a version with a date
133 * Change projects homepage limit to 255 chars
137 * Change projects homepage limit to 255 chars
134 * 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
138 * 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
135 * Adds "please select" to activity select box if no activity is set as default
139 * Adds "please select" to activity select box if no activity is set as default
136 * Do not silently ignore timelog validation failure on issue edit
140 * Do not silently ignore timelog validation failure on issue edit
137 * Adds a rake task to send reminder emails
141 * Adds a rake task to send reminder emails
138 * Allow empty cells in wiki tables
142 * Allow empty cells in wiki tables
139 * Makes wiki text formatter pluggable
143 * Makes wiki text formatter pluggable
140 * Adds back textile acronyms support
144 * Adds back textile acronyms support
141 * Remove pre tag attributes
145 * Remove pre tag attributes
142 * Plugin hooks
146 * Plugin hooks
143 * Pluggable admin menu
147 * Pluggable admin menu
144 * Plugins can provide activity content
148 * Plugins can provide activity content
145 * Moves plugin list to its own administration menu item
149 * Moves plugin list to its own administration menu item
146 * Adds url and author_url plugin attributes
150 * Adds url and author_url plugin attributes
147 * Adds Plugin#requires_redmine method so that plugin compatibility can be checked against current Redmine version
151 * Adds Plugin#requires_redmine method so that plugin compatibility can be checked against current Redmine version
148 * Adds atom feed on time entries details
152 * Adds atom feed on time entries details
149 * Adds project name to issues feed title
153 * Adds project name to issues feed title
150 * Adds a css class on menu items in order to apply item specific styles (eg. icons)
154 * Adds a css class on menu items in order to apply item specific styles (eg. icons)
151 * Adds a Redmine plugin generators
155 * Adds a Redmine plugin generators
152 * Adds timelog link to the issue context menu
156 * Adds timelog link to the issue context menu
153 * Adds links to the user page on various views
157 * Adds links to the user page on various views
154 * Turkish translation by Ismail Sezen
158 * Turkish translation by Ismail Sezen
155 * Catalan translation
159 * Catalan translation
156 * Vietnamese translation
160 * Vietnamese translation
157 * Slovak translation
161 * Slovak translation
158 * Better naming of activity feed if only one kind of event is displayed
162 * Better naming of activity feed if only one kind of event is displayed
159 * Enable syntax highlight on issues, messages and news
163 * Enable syntax highlight on issues, messages and news
160 * Add target version to the issue list context menu
164 * Add target version to the issue list context menu
161 * Hide 'Target version' filter if no version is defined
165 * Hide 'Target version' filter if no version is defined
162 * Add filters on cross-project issue list for custom fields marked as 'For all projects'
166 * Add filters on cross-project issue list for custom fields marked as 'For all projects'
163 * Turn ftp urls into links
167 * Turn ftp urls into links
164 * Hiding the View Differences button when a wiki page's history only has one version
168 * Hiding the View Differences button when a wiki page's history only has one version
165 * Messages on a Board can now be sorted by the number of replies
169 * Messages on a Board can now be sorted by the number of replies
166 * Adds a class ('me') to events of the activity view created by current user
170 * Adds a class ('me') to events of the activity view created by current user
167 * Strip pre/code tags content from activity view events
171 * Strip pre/code tags content from activity view events
168 * Display issue notes in the activity view
172 * Display issue notes in the activity view
169 * Adds links to changesets atom feed on repository browser
173 * Adds links to changesets atom feed on repository browser
170 * Track project and tracker changes in issue history
174 * Track project and tracker changes in issue history
171 * Adds anchor to atom feed messages links
175 * Adds anchor to atom feed messages links
172 * Adds a key in lang files to set the decimal separator (point or comma) in csv exports
176 * Adds a key in lang files to set the decimal separator (point or comma) in csv exports
173 * Makes importer work with Trac 0.8.x
177 * Makes importer work with Trac 0.8.x
174 * Upgraded to Prototype 1.6.0.1
178 * Upgraded to Prototype 1.6.0.1
175 * File viewer for attached text files
179 * File viewer for attached text files
176 * Menu mapper: add support for :before, :after and :last options to #push method and add #delete method
180 * Menu mapper: add support for :before, :after and :last options to #push method and add #delete method
177 * Removed inconsistent revision numbers on diff view
181 * Removed inconsistent revision numbers on diff view
178 * CVS: add support for modules names with spaces
182 * CVS: add support for modules names with spaces
179 * Log the user in after registration if account activation is not needed
183 * Log the user in after registration if account activation is not needed
180 * Mercurial adapter improvements
184 * Mercurial adapter improvements
181 * Trac importer: read session_attribute table to find user's email and real name
185 * Trac importer: read session_attribute table to find user's email and real name
182 * Ability to disable unused SCM adapters in application settings
186 * Ability to disable unused SCM adapters in application settings
183 * Adds Filesystem adapter
187 * Adds Filesystem adapter
184 * Clear changesets and changes with raw sql when deleting a repository for performance
188 * Clear changesets and changes with raw sql when deleting a repository for performance
185 * Redmine.pm now uses the 'commit access' permission defined in Redmine
189 * Redmine.pm now uses the 'commit access' permission defined in Redmine
186 * Reposman can create any type of scm (--scm option)
190 * Reposman can create any type of scm (--scm option)
187 * Reposman creates a repository if the 'repository' module is enabled at project level only
191 * Reposman creates a repository if the 'repository' module is enabled at project level only
188 * Display svn properties in the browser, svn >= 1.5.0 only
192 * Display svn properties in the browser, svn >= 1.5.0 only
189 * Reduces memory usage when importing large git repositories
193 * Reduces memory usage when importing large git repositories
190 * Wider SVG graphs in repository stats
194 * Wider SVG graphs in repository stats
191 * SubversionAdapter#entries performance improvement
195 * SubversionAdapter#entries performance improvement
192 * SCM browser: ability to download raw unified diffs
196 * SCM browser: ability to download raw unified diffs
193 * More detailed error message in log when scm command fails
197 * More detailed error message in log when scm command fails
194 * Adds support for file viewing with Darcs 2.0+
198 * Adds support for file viewing with Darcs 2.0+
195 * Check that git changeset is not in the database before creating it
199 * Check that git changeset is not in the database before creating it
196 * Unified diff viewer for attached files with .patch or .diff extension
200 * Unified diff viewer for attached files with .patch or .diff extension
197 * File size display with Bazaar repositories
201 * File size display with Bazaar repositories
198 * Git adapter: use commit time instead of author time
202 * Git adapter: use commit time instead of author time
199 * Prettier url for changesets
203 * Prettier url for changesets
200 * Makes changes link to entries on the revision view
204 * Makes changes link to entries on the revision view
201 * Adds a field on the repository view to browse at specific revision
205 * Adds a field on the repository view to browse at specific revision
202 * Adds new projects atom feed
206 * Adds new projects atom feed
203 * Added rake tasks to generate rcov code coverage reports
207 * Added rake tasks to generate rcov code coverage reports
204 * Add Redcloth's :block_markdown_rule to allow horizontal rules in wiki
208 * Add Redcloth's :block_markdown_rule to allow horizontal rules in wiki
205 * Show the project hierarchy in the drop down list for new membership on user administration screen
209 * Show the project hierarchy in the drop down list for new membership on user administration screen
206 * Split user edit screen into tabs
210 * Split user edit screen into tabs
207 * Renames bundled RedCloth to RedCloth3 to avoid RedCloth 4 to be loaded instead
211 * Renames bundled RedCloth to RedCloth3 to avoid RedCloth 4 to be loaded instead
208 * Fixed: Roadmap crashes when a version has a due date > 2037
212 * Fixed: Roadmap crashes when a version has a due date > 2037
209 * Fixed: invalid effective date (eg. 99999-01-01) causes an error on version edition screen
213 * Fixed: invalid effective date (eg. 99999-01-01) causes an error on version edition screen
210 * Fixed: login filter providing incorrect back_url for Redmine installed in sub-directory
214 * Fixed: login filter providing incorrect back_url for Redmine installed in sub-directory
211 * Fixed: logtime entry duplicated when edited from parent project
215 * Fixed: logtime entry duplicated when edited from parent project
212 * Fixed: wrong digest for text files under Windows
216 * Fixed: wrong digest for text files under Windows
213 * Fixed: associated revisions are displayed in wrong order on issue view
217 * Fixed: associated revisions are displayed in wrong order on issue view
214 * Fixed: Git Adapter date parsing ignores timezone
218 * Fixed: Git Adapter date parsing ignores timezone
215 * Fixed: Printing long roadmap doesn't split across pages
219 * Fixed: Printing long roadmap doesn't split across pages
216 * Fixes custom fields display order at several places
220 * Fixes custom fields display order at several places
217 * Fixed: urls containing @ are parsed as email adress by the wiki formatter
221 * Fixed: urls containing @ are parsed as email adress by the wiki formatter
218 * Fixed date filters accuracy with SQLite
222 * Fixed date filters accuracy with SQLite
219 * Fixed: tokens not escaped in highlight_tokens regexp
223 * Fixed: tokens not escaped in highlight_tokens regexp
220 * Fixed Bazaar shared repository browsing
224 * Fixed Bazaar shared repository browsing
221 * Fixes platform determination under JRuby
225 * Fixes platform determination under JRuby
222 * Fixed: Estimated time in issue's journal should be rounded to two decimals
226 * Fixed: Estimated time in issue's journal should be rounded to two decimals
223 * Fixed: 'search titles only' box ignored after one search is done on titles only
227 * Fixed: 'search titles only' box ignored after one search is done on titles only
224 * Fixed: non-ASCII subversion path can't be displayed
228 * Fixed: non-ASCII subversion path can't be displayed
225 * Fixed: Inline images don't work if file name has upper case letters or if image is in BMP format
229 * Fixed: Inline images don't work if file name has upper case letters or if image is in BMP format
226 * Fixed: document listing shows on "my page" when viewing documents is disabled for the role
230 * Fixed: document listing shows on "my page" when viewing documents is disabled for the role
227 * Fixed: Latest news appear on the homepage for projects with the News module disabled
231 * Fixed: Latest news appear on the homepage for projects with the News module disabled
228 * Fixed: cross-project issue list should not show issues of projects for which the issue tracking module was disabled
232 * Fixed: cross-project issue list should not show issues of projects for which the issue tracking module was disabled
229 * Fixed: the default status is lost when reordering issue statuses
233 * Fixed: the default status is lost when reordering issue statuses
230 * Fixes error with Postgresql and non-UTF8 commit logs
234 * Fixes error with Postgresql and non-UTF8 commit logs
231 * Fixed: textile footnotes no longer work
235 * Fixed: textile footnotes no longer work
232 * Fixed: http links containing parentheses fail to reder correctly
236 * Fixed: http links containing parentheses fail to reder correctly
233 * Fixed: GitAdapter#get_rev should use current branch instead of hardwiring master
237 * Fixed: GitAdapter#get_rev should use current branch instead of hardwiring master
234
238
235
239
236 == 2008-07-06 v0.7.3
240 == 2008-07-06 v0.7.3
237
241
238 * Allow dot in firstnames and lastnames
242 * Allow dot in firstnames and lastnames
239 * Add project name to cross-project Atom feeds
243 * Add project name to cross-project Atom feeds
240 * Encoding set to utf8 in example database.yml
244 * Encoding set to utf8 in example database.yml
241 * HTML titles on forums related views
245 * HTML titles on forums related views
242 * Fixed: various XSS vulnerabilities
246 * Fixed: various XSS vulnerabilities
243 * Fixed: Entourage (and some old client) fails to correctly render notification styles
247 * Fixed: Entourage (and some old client) fails to correctly render notification styles
244 * Fixed: Fixed: timelog redirects inappropriately when :back_url is blank
248 * Fixed: Fixed: timelog redirects inappropriately when :back_url is blank
245 * Fixed: wrong relative paths to images in wiki_syntax.html
249 * Fixed: wrong relative paths to images in wiki_syntax.html
246
250
247
251
248 == 2008-06-15 v0.7.2
252 == 2008-06-15 v0.7.2
249
253
250 * "New Project" link on Projects page
254 * "New Project" link on Projects page
251 * Links to repository directories on the repo browser
255 * Links to repository directories on the repo browser
252 * Move status to front in Activity View
256 * Move status to front in Activity View
253 * Remove edit step from Status context menu
257 * Remove edit step from Status context menu
254 * Fixed: No way to do textile horizontal rule
258 * Fixed: No way to do textile horizontal rule
255 * Fixed: Repository: View differences doesn't work
259 * Fixed: Repository: View differences doesn't work
256 * Fixed: attachement's name maybe invalid.
260 * Fixed: attachement's name maybe invalid.
257 * Fixed: Error when creating a new issue
261 * Fixed: Error when creating a new issue
258 * Fixed: NoMethodError on @available_filters.has_key?
262 * Fixed: NoMethodError on @available_filters.has_key?
259 * Fixed: Check All / Uncheck All in Email Settings
263 * Fixed: Check All / Uncheck All in Email Settings
260 * Fixed: "View differences" of one file at /repositories/revision/ fails
264 * Fixed: "View differences" of one file at /repositories/revision/ fails
261 * Fixed: Column width in "my page"
265 * Fixed: Column width in "my page"
262 * Fixed: private subprojects are listed on Issues view
266 * Fixed: private subprojects are listed on Issues view
263 * Fixed: Textile: bold, italics, underline, etc... not working after parentheses
267 * Fixed: Textile: bold, italics, underline, etc... not working after parentheses
264 * Fixed: Update issue form: comment field from log time end out of screen
268 * Fixed: Update issue form: comment field from log time end out of screen
265 * Fixed: Editing role: "issue can be assigned to this role" out of box
269 * Fixed: Editing role: "issue can be assigned to this role" out of box
266 * Fixed: Unable use angular braces after include word
270 * Fixed: Unable use angular braces after include word
267 * Fixed: Using '*' as keyword for repository referencing keywords doesn't work
271 * Fixed: Using '*' as keyword for repository referencing keywords doesn't work
268 * Fixed: Subversion repository "View differences" on each file rise ERROR
272 * Fixed: Subversion repository "View differences" on each file rise ERROR
269 * Fixed: View differences for individual file of a changeset fails if the repository URL doesn't point to the repository root
273 * Fixed: View differences for individual file of a changeset fails if the repository URL doesn't point to the repository root
270 * Fixed: It is possible to lock out the last admin account
274 * Fixed: It is possible to lock out the last admin account
271 * Fixed: Wikis are viewable for anonymous users on public projects, despite not granting access
275 * Fixed: Wikis are viewable for anonymous users on public projects, despite not granting access
272 * Fixed: Issue number display clipped on 'my issues'
276 * Fixed: Issue number display clipped on 'my issues'
273 * Fixed: Roadmap version list links not carrying state
277 * Fixed: Roadmap version list links not carrying state
274 * Fixed: Log Time fieldset in IssueController#edit doesn't set default Activity as default
278 * Fixed: Log Time fieldset in IssueController#edit doesn't set default Activity as default
275 * Fixed: git's "get_rev" API should use repo's current branch instead of hardwiring "master"
279 * Fixed: git's "get_rev" API should use repo's current branch instead of hardwiring "master"
276 * Fixed: browser's language subcodes ignored
280 * Fixed: browser's language subcodes ignored
277 * Fixed: Error on project selection with numeric (only) identifier.
281 * Fixed: Error on project selection with numeric (only) identifier.
278 * Fixed: Link to PDF doesn't work after creating new issue
282 * Fixed: Link to PDF doesn't work after creating new issue
279 * Fixed: "Replies" should not be shown on forum threads that are locked
283 * Fixed: "Replies" should not be shown on forum threads that are locked
280 * Fixed: SVN errors lead to svn username/password being displayed to end users (security issue)
284 * Fixed: SVN errors lead to svn username/password being displayed to end users (security issue)
281 * Fixed: http links containing hashes don't display correct
285 * Fixed: http links containing hashes don't display correct
282 * Fixed: Allow ampersands in Enumeration names
286 * Fixed: Allow ampersands in Enumeration names
283 * Fixed: Atom link on saved query does not include query_id
287 * Fixed: Atom link on saved query does not include query_id
284 * Fixed: Logtime info lost when there's an error updating an issue
288 * Fixed: Logtime info lost when there's an error updating an issue
285 * Fixed: TOC does not parse colorization markups
289 * Fixed: TOC does not parse colorization markups
286 * Fixed: CVS: add support for modules names with spaces
290 * Fixed: CVS: add support for modules names with spaces
287 * Fixed: Bad rendering on projects/add
291 * Fixed: Bad rendering on projects/add
288 * Fixed: exception when viewing differences on cvs
292 * Fixed: exception when viewing differences on cvs
289 * Fixed: export issue to pdf will messup when use Chinese language
293 * Fixed: export issue to pdf will messup when use Chinese language
290 * Fixed: Redmine::Scm::Adapters::GitAdapter#get_rev ignored GIT_BIN constant
294 * Fixed: Redmine::Scm::Adapters::GitAdapter#get_rev ignored GIT_BIN constant
291 * Fixed: Adding non-ASCII new issue type in the New Issue page have encoding error using IE
295 * Fixed: Adding non-ASCII new issue type in the New Issue page have encoding error using IE
292 * Fixed: Importing from trac : some wiki links are messed
296 * Fixed: Importing from trac : some wiki links are messed
293 * Fixed: Incorrect weekend definition in Hebrew calendar locale
297 * Fixed: Incorrect weekend definition in Hebrew calendar locale
294 * Fixed: Atom feeds don't provide author section for repository revisions
298 * Fixed: Atom feeds don't provide author section for repository revisions
295 * Fixed: In Activity views, changesets titles can be multiline while they should not
299 * Fixed: In Activity views, changesets titles can be multiline while they should not
296 * Fixed: Ignore unreadable subversion directories (read disabled using authz)
300 * Fixed: Ignore unreadable subversion directories (read disabled using authz)
297 * Fixed: lib/SVG/Graph/Graph.rb can't externalize stylesheets
301 * Fixed: lib/SVG/Graph/Graph.rb can't externalize stylesheets
298 * Fixed: Close statement handler in Redmine.pm
302 * Fixed: Close statement handler in Redmine.pm
299
303
300
304
301 == 2008-05-04 v0.7.1
305 == 2008-05-04 v0.7.1
302
306
303 * Thai translation added (Gampol Thitinilnithi)
307 * Thai translation added (Gampol Thitinilnithi)
304 * Translations updates
308 * Translations updates
305 * Escape HTML comment tags
309 * Escape HTML comment tags
306 * Prevent "can't convert nil into String" error when :sort_order param is not present
310 * Prevent "can't convert nil into String" error when :sort_order param is not present
307 * Fixed: Updating tickets add a time log with zero hours
311 * Fixed: Updating tickets add a time log with zero hours
308 * Fixed: private subprojects names are revealed on the project overview
312 * Fixed: private subprojects names are revealed on the project overview
309 * Fixed: Search for target version of "none" fails with postgres 8.3
313 * Fixed: Search for target version of "none" fails with postgres 8.3
310 * Fixed: Home, Logout, Login links shouldn't be absolute links
314 * Fixed: Home, Logout, Login links shouldn't be absolute links
311 * Fixed: 'Latest projects' box on the welcome screen should be hidden if there are no projects
315 * Fixed: 'Latest projects' box on the welcome screen should be hidden if there are no projects
312 * Fixed: error when using upcase language name in coderay
316 * Fixed: error when using upcase language name in coderay
313 * Fixed: error on Trac import when :due attribute is nil
317 * Fixed: error on Trac import when :due attribute is nil
314
318
315
319
316 == 2008-04-28 v0.7.0
320 == 2008-04-28 v0.7.0
317
321
318 * Forces Redmine to use rails 2.0.2 gem when vendor/rails is not present
322 * Forces Redmine to use rails 2.0.2 gem when vendor/rails is not present
319 * Queries can be marked as 'For all projects'. Such queries will be available on all projects and on the global issue list.
323 * Queries can be marked as 'For all projects'. Such queries will be available on all projects and on the global issue list.
320 * Add predefined date ranges to the time report
324 * Add predefined date ranges to the time report
321 * Time report can be done at issue level
325 * Time report can be done at issue level
322 * Various timelog report enhancements
326 * Various timelog report enhancements
323 * Accept the following formats for "hours" field: 1h, 1 h, 1 hour, 2 hours, 30m, 30min, 1h30, 1h30m, 1:30
327 * Accept the following formats for "hours" field: 1h, 1 h, 1 hour, 2 hours, 30m, 30min, 1h30, 1h30m, 1:30
324 * Display the context menu above and/or to the left of the click if needed
328 * Display the context menu above and/or to the left of the click if needed
325 * Make the admin project files list sortable
329 * Make the admin project files list sortable
326 * Mercurial: display working directory files sizes unless browsing a specific revision
330 * Mercurial: display working directory files sizes unless browsing a specific revision
327 * Preserve status filter and page number when using lock/unlock/activate links on the users list
331 * Preserve status filter and page number when using lock/unlock/activate links on the users list
328 * Redmine.pm support for LDAP authentication
332 * Redmine.pm support for LDAP authentication
329 * Better error message and AR errors in log for failed LDAP on-the-fly user creation
333 * Better error message and AR errors in log for failed LDAP on-the-fly user creation
330 * Redirected user to where he is coming from after logging hours
334 * Redirected user to where he is coming from after logging hours
331 * Warn user that subprojects are also deleted when deleting a project
335 * Warn user that subprojects are also deleted when deleting a project
332 * Include subprojects versions on calendar and gantt
336 * Include subprojects versions on calendar and gantt
333 * Notify project members when a message is posted if they want to receive notifications
337 * Notify project members when a message is posted if they want to receive notifications
334 * Fixed: Feed content limit setting has no effect
338 * Fixed: Feed content limit setting has no effect
335 * Fixed: Priorities not ordered when displayed as a filter in issue list
339 * Fixed: Priorities not ordered when displayed as a filter in issue list
336 * Fixed: can not display attached images inline in message replies
340 * Fixed: can not display attached images inline in message replies
337 * Fixed: Boards are not deleted when project is deleted
341 * Fixed: Boards are not deleted when project is deleted
338 * Fixed: trying to preview a new issue raises an exception with postgresql
342 * Fixed: trying to preview a new issue raises an exception with postgresql
339 * Fixed: single file 'View difference' links do not work because of duplicate slashes in url
343 * Fixed: single file 'View difference' links do not work because of duplicate slashes in url
340 * Fixed: inline image not displayed when including a wiki page
344 * Fixed: inline image not displayed when including a wiki page
341 * Fixed: CVS duplicate key violation
345 * Fixed: CVS duplicate key violation
342 * Fixed: ActiveRecord::StaleObjectError exception on closing a set of circular duplicate issues
346 * Fixed: ActiveRecord::StaleObjectError exception on closing a set of circular duplicate issues
343 * Fixed: custom field filters behaviour
347 * Fixed: custom field filters behaviour
344 * Fixed: Postgresql 8.3 compatibility
348 * Fixed: Postgresql 8.3 compatibility
345 * Fixed: Links to repository directories don't work
349 * Fixed: Links to repository directories don't work
346
350
347
351
348 == 2008-03-29 v0.7.0-rc1
352 == 2008-03-29 v0.7.0-rc1
349
353
350 * Overall activity view and feed added, link is available on the project list
354 * Overall activity view and feed added, link is available on the project list
351 * Git VCS support
355 * Git VCS support
352 * Rails 2.0 sessions cookie store compatibility
356 * Rails 2.0 sessions cookie store compatibility
353 * Use project identifiers in urls instead of ids
357 * Use project identifiers in urls instead of ids
354 * Default configuration data can now be loaded from the administration screen
358 * Default configuration data can now be loaded from the administration screen
355 * Administration settings screen split to tabs (email notifications options moved to 'Settings')
359 * Administration settings screen split to tabs (email notifications options moved to 'Settings')
356 * Project description is now unlimited and optional
360 * Project description is now unlimited and optional
357 * Wiki annotate view
361 * Wiki annotate view
358 * Escape HTML tag in textile content
362 * Escape HTML tag in textile content
359 * Add Redmine links to documents, versions, attachments and repository files
363 * Add Redmine links to documents, versions, attachments and repository files
360 * 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:
364 * 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:
361 * by using checkbox and/or the little pencil that will select/unselect all issues
365 * by using checkbox and/or the little pencil that will select/unselect all issues
362 * by clicking on the rows (but not on the links), Ctrl and Shift keys can be used to select multiple issues
366 * by clicking on the rows (but not on the links), Ctrl and Shift keys can be used to select multiple issues
363 * 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)
367 * 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)
364 * User display format is now configurable in administration settings
368 * User display format is now configurable in administration settings
365 * Issue list now supports bulk edit/move/delete (for a set of issues that belong to the same project)
369 * Issue list now supports bulk edit/move/delete (for a set of issues that belong to the same project)
366 * Merged 'change status', 'edit issue' and 'add note' actions:
370 * Merged 'change status', 'edit issue' and 'add note' actions:
367 * Users with 'edit issues' permission can now update any property including custom fields when adding a note or changing the status
371 * Users with 'edit issues' permission can now update any property including custom fields when adding a note or changing the status
368 * '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
372 * '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
369 * Details by assignees on issue summary view
373 * Details by assignees on issue summary view
370 * '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
374 * '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
371 * Change status select box default to current status
375 * Change status select box default to current status
372 * Preview for issue notes, news and messages
376 * Preview for issue notes, news and messages
373 * Optional description for attachments
377 * Optional description for attachments
374 * 'Fixed version' label changed to 'Target version'
378 * 'Fixed version' label changed to 'Target version'
375 * Let the user choose when deleting issues with reported hours to:
379 * Let the user choose when deleting issues with reported hours to:
376 * delete the hours
380 * delete the hours
377 * assign the hours to the project
381 * assign the hours to the project
378 * reassign the hours to another issue
382 * reassign the hours to another issue
379 * Date range filter and pagination on time entries detail view
383 * Date range filter and pagination on time entries detail view
380 * Propagate time tracking to the parent project
384 * Propagate time tracking to the parent project
381 * Switch added on the project activity view to include subprojects
385 * Switch added on the project activity view to include subprojects
382 * Display total estimated and spent hours on the version detail view
386 * Display total estimated and spent hours on the version detail view
383 * Weekly time tracking block for 'My page'
387 * Weekly time tracking block for 'My page'
384 * Permissions to edit time entries
388 * Permissions to edit time entries
385 * Include subprojects on the issue list, calendar, gantt and timelog by default (can be turned off is administration settings)
389 * Include subprojects on the issue list, calendar, gantt and timelog by default (can be turned off is administration settings)
386 * Roadmap enhancements (separate related issues from wiki contents, leading h1 in version wiki pages is hidden, smaller wiki headings)
390 * Roadmap enhancements (separate related issues from wiki contents, leading h1 in version wiki pages is hidden, smaller wiki headings)
387 * Make versions with same date sorted by name
391 * Make versions with same date sorted by name
388 * Allow issue list to be sorted by target version
392 * Allow issue list to be sorted by target version
389 * Related changesets messages displayed on the issue details view
393 * Related changesets messages displayed on the issue details view
390 * Create a journal and send an email when an issue is closed by commit
394 * Create a journal and send an email when an issue is closed by commit
391 * Add 'Author' to the available columns for the issue list
395 * Add 'Author' to the available columns for the issue list
392 * More appropriate default sort order on sortable columns
396 * More appropriate default sort order on sortable columns
393 * Add issue subject to the time entries view and issue subject, description and tracker to the csv export
397 * Add issue subject to the time entries view and issue subject, description and tracker to the csv export
394 * Permissions to edit issue notes
398 * Permissions to edit issue notes
395 * Display date/time instead of date on files list
399 * Display date/time instead of date on files list
396 * Do not show Roadmap menu item if the project doesn't define any versions
400 * Do not show Roadmap menu item if the project doesn't define any versions
397 * Allow longer version names (60 chars)
401 * Allow longer version names (60 chars)
398 * Ability to copy an existing workflow when creating a new role
402 * Ability to copy an existing workflow when creating a new role
399 * Display custom fields in two columns on the issue form
403 * Display custom fields in two columns on the issue form
400 * Added 'estimated time' in the csv export of the issue list
404 * Added 'estimated time' in the csv export of the issue list
401 * Display the last 30 days on the activity view rather than the current month (number of days can be configured in the application settings)
405 * Display the last 30 days on the activity view rather than the current month (number of days can be configured in the application settings)
402 * Setting for whether new projects should be public by default
406 * Setting for whether new projects should be public by default
403 * User preference to choose how comments/replies are displayed: in chronological or reverse chronological order
407 * User preference to choose how comments/replies are displayed: in chronological or reverse chronological order
404 * Added default value for custom fields
408 * Added default value for custom fields
405 * Added tabindex property on wiki toolbar buttons (to easily move from field to field using the tab key)
409 * Added tabindex property on wiki toolbar buttons (to easily move from field to field using the tab key)
406 * Redirect to issue page after creating a new issue
410 * Redirect to issue page after creating a new issue
407 * Wiki toolbar improvements (mainly for Firefox)
411 * Wiki toolbar improvements (mainly for Firefox)
408 * Display wiki syntax quick ref link on all wiki textareas
412 * Display wiki syntax quick ref link on all wiki textareas
409 * Display links to Atom feeds
413 * Display links to Atom feeds
410 * Breadcrumb nav for the forums
414 * Breadcrumb nav for the forums
411 * Show replies when choosing to display messages in the activity
415 * Show replies when choosing to display messages in the activity
412 * Added 'include' macro to include another wiki page
416 * Added 'include' macro to include another wiki page
413 * RedmineWikiFormatting page available as a static HTML file locally
417 * RedmineWikiFormatting page available as a static HTML file locally
414 * Wrap diff content
418 * Wrap diff content
415 * Strip out email address from authors in repository screens
419 * Strip out email address from authors in repository screens
416 * Highlight the current item of the main menu
420 * Highlight the current item of the main menu
417 * Added simple syntax highlighters for php and java languages
421 * Added simple syntax highlighters for php and java languages
418 * Do not show empty diffs
422 * Do not show empty diffs
419 * Show explicit error message when the scm command failed (eg. when svn binary is not available)
423 * Show explicit error message when the scm command failed (eg. when svn binary is not available)
420 * Lithuanian translation added (Sergej Jegorov)
424 * Lithuanian translation added (Sergej Jegorov)
421 * Ukrainan translation added (Natalia Konovka & Mykhaylo Sorochan)
425 * Ukrainan translation added (Natalia Konovka & Mykhaylo Sorochan)
422 * Danish translation added (Mads Vestergaard)
426 * Danish translation added (Mads Vestergaard)
423 * Added i18n support to the jstoolbar and various settings screen
427 * Added i18n support to the jstoolbar and various settings screen
424 * RedCloth's glyphs no longer user
428 * RedCloth's glyphs no longer user
425 * New icons for the wiki toolbar (from http://www.famfamfam.com/lab/icons/silk/)
429 * New icons for the wiki toolbar (from http://www.famfamfam.com/lab/icons/silk/)
426 * The following menus can now be extended by plugins: top_menu, account_menu, application_menu
430 * The following menus can now be extended by plugins: top_menu, account_menu, application_menu
427 * Added a simple rake task to fetch changesets from the repositories: rake redmine:fetch_changesets
431 * Added a simple rake task to fetch changesets from the repositories: rake redmine:fetch_changesets
428 * Remove hardcoded "Redmine" strings in account related emails and use application title instead
432 * Remove hardcoded "Redmine" strings in account related emails and use application title instead
429 * Mantis importer preserve bug ids
433 * Mantis importer preserve bug ids
430 * Trac importer: Trac guide wiki pages skipped
434 * Trac importer: Trac guide wiki pages skipped
431 * Trac importer: wiki attachments migration added
435 * Trac importer: wiki attachments migration added
432 * Trac importer: support database schema for Trac migration
436 * Trac importer: support database schema for Trac migration
433 * Trac importer: support CamelCase links
437 * Trac importer: support CamelCase links
434 * Removes the Redmine version from the footer (can be viewed on admin -> info)
438 * Removes the Redmine version from the footer (can be viewed on admin -> info)
435 * Rescue and display an error message when trying to delete a role that is in use
439 * Rescue and display an error message when trying to delete a role that is in use
436 * 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
440 * 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
437 * Add "--encoding utf8" option to the Mercurial "hg log" command in order to get utf8 encoded commit logs
441 * Add "--encoding utf8" option to the Mercurial "hg log" command in order to get utf8 encoded commit logs
438 * Fixed: Gantt and calendar not properly refreshed (fragment caching removed)
442 * Fixed: Gantt and calendar not properly refreshed (fragment caching removed)
439 * Fixed: Textile image with style attribute cause internal server error
443 * Fixed: Textile image with style attribute cause internal server error
440 * Fixed: wiki TOC not rendered properly when used in an issue or document description
444 * Fixed: wiki TOC not rendered properly when used in an issue or document description
441 * Fixed: 'has already been taken' error message on username and email fields if left empty
445 * Fixed: 'has already been taken' error message on username and email fields if left empty
442 * Fixed: non-ascii attachement filename with IE
446 * Fixed: non-ascii attachement filename with IE
443 * Fixed: wrong url for wiki syntax pop-up when Redmine urls are prefixed
447 * Fixed: wrong url for wiki syntax pop-up when Redmine urls are prefixed
444 * Fixed: search for all words doesn't work
448 * Fixed: search for all words doesn't work
445 * Fixed: Do not show sticky and locked checkboxes when replying to a message
449 * Fixed: Do not show sticky and locked checkboxes when replying to a message
446 * Fixed: Mantis importer: do not duplicate Mantis username in firstname and lastname if realname is blank
450 * Fixed: Mantis importer: do not duplicate Mantis username in firstname and lastname if realname is blank
447 * Fixed: Date custom fields not displayed as specified in application settings
451 * Fixed: Date custom fields not displayed as specified in application settings
448 * Fixed: titles not escaped in the activity view
452 * Fixed: titles not escaped in the activity view
449 * Fixed: issue queries can not use custom fields marked as 'for all projects' in a project context
453 * Fixed: issue queries can not use custom fields marked as 'for all projects' in a project context
450 * 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
454 * 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
451 * Fixed: locked users should not receive email notifications
455 * Fixed: locked users should not receive email notifications
452 * Fixed: custom field selection is not saved when unchecking them all on project settings
456 * Fixed: custom field selection is not saved when unchecking them all on project settings
453 * Fixed: can not lock a topic when creating it
457 * Fixed: can not lock a topic when creating it
454 * Fixed: Incorrect filtering for unset values when using 'is not' filter
458 * Fixed: Incorrect filtering for unset values when using 'is not' filter
455 * Fixed: PostgreSQL issues_seq_id not updated when using Trac importer
459 * Fixed: PostgreSQL issues_seq_id not updated when using Trac importer
456 * Fixed: ajax pagination does not scroll up
460 * Fixed: ajax pagination does not scroll up
457 * Fixed: error when uploading a file with no content-type specified by the browser
461 * Fixed: error when uploading a file with no content-type specified by the browser
458 * Fixed: wiki and changeset links not displayed when previewing issue description or notes
462 * Fixed: wiki and changeset links not displayed when previewing issue description or notes
459 * Fixed: 'LdapError: no bind result' error when authenticating
463 * Fixed: 'LdapError: no bind result' error when authenticating
460 * Fixed: 'LdapError: invalid binding information' when no username/password are set on the LDAP account
464 * Fixed: 'LdapError: invalid binding information' when no username/password are set on the LDAP account
461 * Fixed: CVS repository doesn't work if port is used in the url
465 * Fixed: CVS repository doesn't work if port is used in the url
462 * Fixed: Email notifications: host name is missing in generated links
466 * Fixed: Email notifications: host name is missing in generated links
463 * Fixed: Email notifications: referenced changesets, wiki pages, attachments... are not turned into links
467 * Fixed: Email notifications: referenced changesets, wiki pages, attachments... are not turned into links
464 * Fixed: Do not clear issue relations when moving an issue to another project if cross-project issue relations are allowed
468 * Fixed: Do not clear issue relations when moving an issue to another project if cross-project issue relations are allowed
465 * Fixed: "undefined method 'textilizable'" error on email notification when running Repository#fetch_changesets from the console
469 * Fixed: "undefined method 'textilizable'" error on email notification when running Repository#fetch_changesets from the console
466 * Fixed: Do not send an email with no recipient, cc or bcc
470 * Fixed: Do not send an email with no recipient, cc or bcc
467 * Fixed: fetch_changesets fails on commit comments that close 2 duplicates issues.
471 * Fixed: fetch_changesets fails on commit comments that close 2 duplicates issues.
468 * Fixed: Mercurial browsing under unix-like os and for directory depth > 2
472 * Fixed: Mercurial browsing under unix-like os and for directory depth > 2
469 * Fixed: Wiki links with pipe can not be used in wiki tables
473 * Fixed: Wiki links with pipe can not be used in wiki tables
470 * Fixed: migrate_from_trac doesn't import timestamps of wiki and tickets
474 * Fixed: migrate_from_trac doesn't import timestamps of wiki and tickets
471 * Fixed: when bulk editing, setting "Assigned to" to "nobody" causes an sql error with Postgresql
475 * Fixed: when bulk editing, setting "Assigned to" to "nobody" causes an sql error with Postgresql
472
476
473
477
474 == 2008-03-12 v0.6.4
478 == 2008-03-12 v0.6.4
475
479
476 * Fixed: private projects name are displayed on account/show even if the current user doesn't have access to these private projects
480 * Fixed: private projects name are displayed on account/show even if the current user doesn't have access to these private projects
477 * Fixed: potential LDAP authentication security flaw
481 * Fixed: potential LDAP authentication security flaw
478 * Fixed: context submenus on the issue list don't show up with IE6.
482 * Fixed: context submenus on the issue list don't show up with IE6.
479 * Fixed: Themes are not applied with Rails 2.0
483 * Fixed: Themes are not applied with Rails 2.0
480 * Fixed: crash when fetching Mercurial changesets if changeset[:files] is nil
484 * Fixed: crash when fetching Mercurial changesets if changeset[:files] is nil
481 * Fixed: Mercurial repository browsing
485 * Fixed: Mercurial repository browsing
482 * Fixed: undefined local variable or method 'log' in CvsAdapter when a cvs command fails
486 * Fixed: undefined local variable or method 'log' in CvsAdapter when a cvs command fails
483 * Fixed: not null constraints not removed with Postgresql
487 * Fixed: not null constraints not removed with Postgresql
484 * Doctype set to transitional
488 * Doctype set to transitional
485
489
486
490
487 == 2007-12-18 v0.6.3
491 == 2007-12-18 v0.6.3
488
492
489 * Fixed: upload doesn't work in 'Files' section
493 * Fixed: upload doesn't work in 'Files' section
490
494
491
495
492 == 2007-12-16 v0.6.2
496 == 2007-12-16 v0.6.2
493
497
494 * Search engine: issue custom fields can now be searched
498 * Search engine: issue custom fields can now be searched
495 * News comments are now textilized
499 * News comments are now textilized
496 * Updated Japanese translation (Satoru Kurashiki)
500 * Updated Japanese translation (Satoru Kurashiki)
497 * Updated Chinese translation (Shortie Lo)
501 * Updated Chinese translation (Shortie Lo)
498 * Fixed Rails 2.0 compatibility bugs:
502 * Fixed Rails 2.0 compatibility bugs:
499 * Unable to create a wiki
503 * Unable to create a wiki
500 * Gantt and calendar error
504 * Gantt and calendar error
501 * Trac importer error (readonly? is defined by ActiveRecord)
505 * Trac importer error (readonly? is defined by ActiveRecord)
502 * Fixed: 'assigned to me' filter broken
506 * Fixed: 'assigned to me' filter broken
503 * Fixed: crash when validation fails on issue edition with no custom fields
507 * Fixed: crash when validation fails on issue edition with no custom fields
504 * Fixed: reposman "can't find group" error
508 * Fixed: reposman "can't find group" error
505 * Fixed: 'LDAP account password is too long' error when leaving the field empty on creation
509 * Fixed: 'LDAP account password is too long' error when leaving the field empty on creation
506 * Fixed: empty lines when displaying repository files with Windows style eol
510 * Fixed: empty lines when displaying repository files with Windows style eol
507 * Fixed: missing body closing tag in repository annotate and entry views
511 * Fixed: missing body closing tag in repository annotate and entry views
508
512
509
513
510 == 2007-12-10 v0.6.1
514 == 2007-12-10 v0.6.1
511
515
512 * Rails 2.0 compatibility
516 * Rails 2.0 compatibility
513 * Custom fields can now be displayed as columns on the issue list
517 * Custom fields can now be displayed as columns on the issue list
514 * Added version details view (accessible from the roadmap)
518 * Added version details view (accessible from the roadmap)
515 * Roadmap: more accurate completion percentage calculation (done ratio of open issues is now taken into account)
519 * Roadmap: more accurate completion percentage calculation (done ratio of open issues is now taken into account)
516 * Added per-project tracker selection. Trackers can be selected on project settings
520 * Added per-project tracker selection. Trackers can be selected on project settings
517 * Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums
521 * Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums
518 * Forums: messages can now be edited/deleted (explicit permissions need to be given)
522 * Forums: messages can now be edited/deleted (explicit permissions need to be given)
519 * Forums: topics can be locked so that no reply can be added
523 * Forums: topics can be locked so that no reply can be added
520 * Forums: topics can be marked as sticky so that they always appear at the top of the list
524 * Forums: topics can be marked as sticky so that they always appear at the top of the list
521 * Forums: attachments can now be added to replies
525 * Forums: attachments can now be added to replies
522 * Added time zone support
526 * Added time zone support
523 * Added a setting to choose the account activation strategy (available in application settings)
527 * Added a setting to choose the account activation strategy (available in application settings)
524 * Added 'Classic' theme (inspired from the v0.51 design)
528 * Added 'Classic' theme (inspired from the v0.51 design)
525 * Added an alternate theme which provides issue list colorization based on issues priority
529 * Added an alternate theme which provides issue list colorization based on issues priority
526 * Added Bazaar SCM adapter
530 * Added Bazaar SCM adapter
527 * Added Annotate/Blame view in the repository browser (except for Darcs SCM)
531 * Added Annotate/Blame view in the repository browser (except for Darcs SCM)
528 * Diff style (inline or side by side) automatically saved as a user preference
532 * Diff style (inline or side by side) automatically saved as a user preference
529 * Added issues status changes on the activity view (by Cyril Mougel)
533 * Added issues status changes on the activity view (by Cyril Mougel)
530 * Added forums topics on the activity view (disabled by default)
534 * Added forums topics on the activity view (disabled by default)
531 * Added an option on 'My account' for users who don't want to be notified of changes that they make
535 * Added an option on 'My account' for users who don't want to be notified of changes that they make
532 * Trac importer now supports mysql and postgresql databases
536 * Trac importer now supports mysql and postgresql databases
533 * Trac importer improvements (by Mat Trudel)
537 * Trac importer improvements (by Mat Trudel)
534 * 'fixed version' field can now be displayed on the issue list
538 * 'fixed version' field can now be displayed on the issue list
535 * Added a couple of new formats for the 'date format' setting
539 * Added a couple of new formats for the 'date format' setting
536 * Added Traditional Chinese translation (by Shortie Lo)
540 * Added Traditional Chinese translation (by Shortie Lo)
537 * Added Russian translation (iGor kMeta)
541 * Added Russian translation (iGor kMeta)
538 * Project name format limitation removed (name can now contain any character)
542 * Project name format limitation removed (name can now contain any character)
539 * Project identifier maximum length changed from 12 to 20
543 * Project identifier maximum length changed from 12 to 20
540 * Changed the maximum length of LDAP account to 255 characters
544 * Changed the maximum length of LDAP account to 255 characters
541 * Removed the 12 characters limit on passwords
545 * Removed the 12 characters limit on passwords
542 * Added wiki macros support
546 * Added wiki macros support
543 * Performance improvement on workflow setup screen
547 * Performance improvement on workflow setup screen
544 * More detailed html title on several views
548 * More detailed html title on several views
545 * Custom fields can now be reordered
549 * Custom fields can now be reordered
546 * Search engine: search can be restricted to an exact phrase by using quotation marks
550 * Search engine: search can be restricted to an exact phrase by using quotation marks
547 * Added custom fields marked as 'For all projects' to the csv export of the cross project issue list
551 * Added custom fields marked as 'For all projects' to the csv export of the cross project issue list
548 * Email notifications are now sent as Blind carbon copy by default
552 * Email notifications are now sent as Blind carbon copy by default
549 * Fixed: all members (including non active) should be deleted when deleting a project
553 * Fixed: all members (including non active) should be deleted when deleting a project
550 * Fixed: Error on wiki syntax link (accessible from wiki/edit)
554 * Fixed: Error on wiki syntax link (accessible from wiki/edit)
551 * Fixed: 'quick jump to a revision' form on the revisions list
555 * Fixed: 'quick jump to a revision' form on the revisions list
552 * Fixed: error on admin/info if there's more than 1 plugin installed
556 * Fixed: error on admin/info if there's more than 1 plugin installed
553 * Fixed: svn or ldap password can be found in clear text in the html source in editing mode
557 * Fixed: svn or ldap password can be found in clear text in the html source in editing mode
554 * Fixed: 'Assigned to' drop down list is not sorted
558 * Fixed: 'Assigned to' drop down list is not sorted
555 * Fixed: 'View all issues' link doesn't work on issues/show
559 * Fixed: 'View all issues' link doesn't work on issues/show
556 * Fixed: error on account/register when validation fails
560 * Fixed: error on account/register when validation fails
557 * Fixed: Error when displaying the issue list if a float custom field is marked as 'used as filter'
561 * Fixed: Error when displaying the issue list if a float custom field is marked as 'used as filter'
558 * Fixed: Mercurial adapter breaks on missing :files entry in changeset hash (James Britt)
562 * Fixed: Mercurial adapter breaks on missing :files entry in changeset hash (James Britt)
559 * Fixed: Wrong feed URLs on the home page
563 * Fixed: Wrong feed URLs on the home page
560 * Fixed: Update of time entry fails when the issue has been moved to an other project
564 * Fixed: Update of time entry fails when the issue has been moved to an other project
561 * Fixed: Error when moving an issue without changing its tracker (Postgresql)
565 * Fixed: Error when moving an issue without changing its tracker (Postgresql)
562 * Fixed: Changes not recorded when using :pserver string (CVS adapter)
566 * Fixed: Changes not recorded when using :pserver string (CVS adapter)
563 * Fixed: admin should be able to move issues to any project
567 * Fixed: admin should be able to move issues to any project
564 * Fixed: adding an attachment is not possible when changing the status of an issue
568 * Fixed: adding an attachment is not possible when changing the status of an issue
565 * Fixed: No mime-types in documents/files downloading
569 * Fixed: No mime-types in documents/files downloading
566 * Fixed: error when sorting the messages if there's only one board for the project
570 * Fixed: error when sorting the messages if there's only one board for the project
567 * Fixed: 'me' doesn't appear in the drop down filters on a project issue list.
571 * Fixed: 'me' doesn't appear in the drop down filters on a project issue list.
568
572
569 == 2007-11-04 v0.6.0
573 == 2007-11-04 v0.6.0
570
574
571 * Permission model refactoring.
575 * Permission model refactoring.
572 * Permissions: there are now 2 builtin roles that can be used to specify permissions given to other users than members of projects
576 * Permissions: there are now 2 builtin roles that can be used to specify permissions given to other users than members of projects
573 * Permissions: some permissions (eg. browse the repository) can be removed for certain roles
577 * Permissions: some permissions (eg. browse the repository) can be removed for certain roles
574 * Permissions: modules (eg. issue tracking, news, documents...) can be enabled/disabled at project level
578 * Permissions: modules (eg. issue tracking, news, documents...) can be enabled/disabled at project level
575 * Added Mantis and Trac importers
579 * Added Mantis and Trac importers
576 * New application layout
580 * New application layout
577 * Added "Bulk edit" functionality on the issue list
581 * Added "Bulk edit" functionality on the issue list
578 * More flexible mail notifications settings at user level
582 * More flexible mail notifications settings at user level
579 * 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
583 * 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
580 * 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
584 * 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
581 * Added the ability to customize issue list columns (at application level or for each saved query)
585 * Added the ability to customize issue list columns (at application level or for each saved query)
582 * Overdue versions (date reached and open issues > 0) are now always displayed on the roadmap
586 * Overdue versions (date reached and open issues > 0) are now always displayed on the roadmap
583 * Added the ability to rename wiki pages (specific permission required)
587 * Added the ability to rename wiki pages (specific permission required)
584 * Search engines now supports pagination. Results are sorted in reverse chronological order
588 * Search engines now supports pagination. Results are sorted in reverse chronological order
585 * Added "Estimated hours" attribute on issues
589 * Added "Estimated hours" attribute on issues
586 * A category with assigned issue can now be deleted. 2 options are proposed: remove assignments or reassign issues to another category
590 * A category with assigned issue can now be deleted. 2 options are proposed: remove assignments or reassign issues to another category
587 * Forum notifications are now also sent to the authors of the thread, even if they donοΏ½t watch the board
591 * Forum notifications are now also sent to the authors of the thread, even if they donοΏ½t watch the board
588 * Added an application setting to specify the application protocol (http or https) used to generate urls in emails
592 * Added an application setting to specify the application protocol (http or https) used to generate urls in emails
589 * Gantt chart: now starts at the current month by default
593 * Gantt chart: now starts at the current month by default
590 * Gantt chart: month count and zoom factor are automatically saved as user preferences
594 * Gantt chart: month count and zoom factor are automatically saved as user preferences
591 * Wiki links can now refer to other project wikis
595 * Wiki links can now refer to other project wikis
592 * Added wiki index by date
596 * Added wiki index by date
593 * Added preview on add/edit issue form
597 * Added preview on add/edit issue form
594 * Emails footer can now be customized from the admin interface (Admin -> Email notifications)
598 * Emails footer can now be customized from the admin interface (Admin -> Email notifications)
595 * 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)
599 * 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)
596 * Calendar: first day of week can now be set in lang files
600 * Calendar: first day of week can now be set in lang files
597 * Automatic closing of duplicate issues
601 * Automatic closing of duplicate issues
598 * Added a cross-project issue list
602 * Added a cross-project issue list
599 * AJAXified the SCM browser (tree view)
603 * AJAXified the SCM browser (tree view)
600 * Pretty URL for the repository browser (Cyril Mougel)
604 * Pretty URL for the repository browser (Cyril Mougel)
601 * Search engine: added a checkbox to search titles only
605 * Search engine: added a checkbox to search titles only
602 * Added "% done" in the filter list
606 * Added "% done" in the filter list
603 * Enumerations: values can now be reordered and a default value can be specified (eg. default issue priority)
607 * Enumerations: values can now be reordered and a default value can be specified (eg. default issue priority)
604 * Added some accesskeys
608 * Added some accesskeys
605 * Added "Float" as a custom field format
609 * Added "Float" as a custom field format
606 * Added basic Theme support
610 * Added basic Theme support
607 * Added the ability to set the οΏ½done ratioοΏ½ of issues fixed by commit (Nikolay Solakov)
611 * Added the ability to set the οΏ½done ratioοΏ½ of issues fixed by commit (Nikolay Solakov)
608 * Added custom fields in issue related mail notifications
612 * Added custom fields in issue related mail notifications
609 * Email notifications are now sent in plain text and html
613 * Email notifications are now sent in plain text and html
610 * Gantt chart can now be exported to a graphic file (png). This functionality is only available if RMagick is installed.
614 * Gantt chart can now be exported to a graphic file (png). This functionality is only available if RMagick is installed.
611 * Added syntax highlightment for repository files and wiki
615 * Added syntax highlightment for repository files and wiki
612 * Improved automatic Redmine links
616 * Improved automatic Redmine links
613 * Added automatic table of content support on wiki pages
617 * Added automatic table of content support on wiki pages
614 * Added radio buttons on the documents list to sort documents by category, date, title or author
618 * Added radio buttons on the documents list to sort documents by category, date, title or author
615 * Added basic plugin support, with a sample plugin
619 * Added basic plugin support, with a sample plugin
616 * Added a link to add a new category when creating or editing an issue
620 * Added a link to add a new category when creating or editing an issue
617 * Added a "Assignable" boolean on the Role model. If unchecked, issues can not be assigned to users having this role.
621 * Added a "Assignable" boolean on the Role model. If unchecked, issues can not be assigned to users having this role.
618 * Added an option to be able to relate issues in different projects
622 * Added an option to be able to relate issues in different projects
619 * Added the ability to move issues (to another project) without changing their trackers.
623 * Added the ability to move issues (to another project) without changing their trackers.
620 * Atom feeds added on project activity, news and changesets
624 * Atom feeds added on project activity, news and changesets
621 * Added the ability to reset its own RSS access key
625 * Added the ability to reset its own RSS access key
622 * Main project list now displays root projects with their subprojects
626 * Main project list now displays root projects with their subprojects
623 * Added anchor links to issue notes
627 * Added anchor links to issue notes
624 * Added reposman Ruby version. This script can now register created repositories in Redmine (Nicolas Chuche)
628 * Added reposman Ruby version. This script can now register created repositories in Redmine (Nicolas Chuche)
625 * Issue notes are now included in search
629 * Issue notes are now included in search
626 * Added email sending test functionality
630 * Added email sending test functionality
627 * Added LDAPS support for LDAP authentication
631 * Added LDAPS support for LDAP authentication
628 * Removed hard-coded URLs in mail templates
632 * Removed hard-coded URLs in mail templates
629 * Subprojects are now grouped by projects in the navigation drop-down menu
633 * Subprojects are now grouped by projects in the navigation drop-down menu
630 * Added a new value for date filters: this week
634 * Added a new value for date filters: this week
631 * Added cache for application settings
635 * Added cache for application settings
632 * Added Polish translation (Tomasz Gawryl)
636 * Added Polish translation (Tomasz Gawryl)
633 * Added Czech translation (Jan Kadlecek)
637 * Added Czech translation (Jan Kadlecek)
634 * Added Romanian translation (Csongor Bartus)
638 * Added Romanian translation (Csongor Bartus)
635 * Added Hebrew translation (Bob Builder)
639 * Added Hebrew translation (Bob Builder)
636 * Added Serbian translation (Dragan Matic)
640 * Added Serbian translation (Dragan Matic)
637 * Added Korean translation (Choi Jong Yoon)
641 * Added Korean translation (Choi Jong Yoon)
638 * Fixed: the link to delete issue relations is displayed even if the user is not authorized to delete relations
642 * Fixed: the link to delete issue relations is displayed even if the user is not authorized to delete relations
639 * Performance improvement on calendar and gantt
643 * Performance improvement on calendar and gantt
640 * Fixed: wiki preview doesnοΏ½t work on long entries
644 * Fixed: wiki preview doesnοΏ½t work on long entries
641 * Fixed: queries with multiple custom fields return no result
645 * Fixed: queries with multiple custom fields return no result
642 * Fixed: Can not authenticate user against LDAP if its DN contains non-ascii characters
646 * Fixed: Can not authenticate user against LDAP if its DN contains non-ascii characters
643 * Fixed: URL with ~ broken in wiki formatting
647 * Fixed: URL with ~ broken in wiki formatting
644 * Fixed: some quotation marks are rendered as strange characters in pdf
648 * Fixed: some quotation marks are rendered as strange characters in pdf
645
649
646
650
647 == 2007-07-15 v0.5.1
651 == 2007-07-15 v0.5.1
648
652
649 * per project forums added
653 * per project forums added
650 * added the ability to archive projects
654 * added the ability to archive projects
651 * added οΏ½WatchοΏ½ functionality on issues. It allows users to receive notifications about issue changes
655 * added οΏ½WatchοΏ½ functionality on issues. It allows users to receive notifications about issue changes
652 * custom fields for issues can now be used as filters on issue list
656 * custom fields for issues can now be used as filters on issue list
653 * added per user custom queries
657 * added per user custom queries
654 * commit messages are now scanned for referenced or fixed issue IDs (keywords defined in Admin -> Settings)
658 * commit messages are now scanned for referenced or fixed issue IDs (keywords defined in Admin -> Settings)
655 * projects list now shows the list of public projects and private projects for which the user is a member
659 * projects list now shows the list of public projects and private projects for which the user is a member
656 * versions can now be created with no date
660 * versions can now be created with no date
657 * added issue count details for versions on Reports view
661 * added issue count details for versions on Reports view
658 * added time report, by member/activity/tracker/version and year/month/week for the selected period
662 * added time report, by member/activity/tracker/version and year/month/week for the selected period
659 * each category can now be associated to a user, so that new issues in that category are automatically assigned to that user
663 * each category can now be associated to a user, so that new issues in that category are automatically assigned to that user
660 * added autologin feature (disabled by default)
664 * added autologin feature (disabled by default)
661 * optimistic locking added for wiki edits
665 * optimistic locking added for wiki edits
662 * added wiki diff
666 * added wiki diff
663 * added the ability to destroy wiki pages (requires permission)
667 * added the ability to destroy wiki pages (requires permission)
664 * a wiki page can now be attached to each version, and displayed on the roadmap
668 * a wiki page can now be attached to each version, and displayed on the roadmap
665 * attachments can now be added to wiki pages (original patch by Pavol Murin) and displayed online
669 * attachments can now be added to wiki pages (original patch by Pavol Murin) and displayed online
666 * added an option to see all versions in the roadmap view (including completed ones)
670 * added an option to see all versions in the roadmap view (including completed ones)
667 * added basic issue relations
671 * added basic issue relations
668 * added the ability to log time when changing an issue status
672 * added the ability to log time when changing an issue status
669 * account information can now be sent to the user when creating an account
673 * account information can now be sent to the user when creating an account
670 * author and assignee of an issue always receive notifications (even if they turned of mail notifications)
674 * author and assignee of an issue always receive notifications (even if they turned of mail notifications)
671 * added a quick search form in page header
675 * added a quick search form in page header
672 * added 'me' value for 'assigned to' and 'author' query filters
676 * added 'me' value for 'assigned to' and 'author' query filters
673 * added a link on revision screen to see the entire diff for the revision
677 * added a link on revision screen to see the entire diff for the revision
674 * added last commit message for each entry in repository browser
678 * added last commit message for each entry in repository browser
675 * added the ability to view a file diff with free to/from revision selection.
679 * added the ability to view a file diff with free to/from revision selection.
676 * text files can now be viewed online when browsing the repository
680 * text files can now be viewed online when browsing the repository
677 * added basic support for other SCM: CVS (Ralph Vater), Mercurial and Darcs
681 * added basic support for other SCM: CVS (Ralph Vater), Mercurial and Darcs
678 * added fragment caching for svn diffs
682 * added fragment caching for svn diffs
679 * added fragment caching for calendar and gantt views
683 * added fragment caching for calendar and gantt views
680 * login field automatically focused on login form
684 * login field automatically focused on login form
681 * subproject name displayed on issue list, calendar and gantt
685 * subproject name displayed on issue list, calendar and gantt
682 * added an option to choose the date format: language based or ISO 8601
686 * added an option to choose the date format: language based or ISO 8601
683 * added a simple mail handler. It lets users add notes to an existing issue by replying to the initial notification email.
687 * added a simple mail handler. It lets users add notes to an existing issue by replying to the initial notification email.
684 * a 403 error page is now displayed (instead of a blank page) when trying to access a protected page
688 * a 403 error page is now displayed (instead of a blank page) when trying to access a protected page
685 * added portuguese translation (Joao Carlos Clementoni)
689 * added portuguese translation (Joao Carlos Clementoni)
686 * added partial online help japanese translation (Ken Date)
690 * added partial online help japanese translation (Ken Date)
687 * added bulgarian translation (Nikolay Solakov)
691 * added bulgarian translation (Nikolay Solakov)
688 * added dutch translation (Linda van den Brink)
692 * added dutch translation (Linda van den Brink)
689 * added swedish translation (Thomas Habets)
693 * added swedish translation (Thomas Habets)
690 * italian translation update (Alessio Spadaro)
694 * italian translation update (Alessio Spadaro)
691 * japanese translation update (Satoru Kurashiki)
695 * japanese translation update (Satoru Kurashiki)
692 * fixed: error on history atom feed when thereοΏ½s no notes on an issue change
696 * fixed: error on history atom feed when thereοΏ½s no notes on an issue change
693 * fixed: error in journalizing an issue with longtext custom fields (Postgresql)
697 * fixed: error in journalizing an issue with longtext custom fields (Postgresql)
694 * fixed: creation of Oracle schema
698 * fixed: creation of Oracle schema
695 * fixed: last day of the month not included in project activity
699 * fixed: last day of the month not included in project activity
696 * fixed: files with an apostrophe in their names can't be accessed in SVN repository
700 * fixed: files with an apostrophe in their names can't be accessed in SVN repository
697 * fixed: performance issue on RepositoriesController#revisions when a changeset has a great number of changes (eg. 100,000)
701 * fixed: performance issue on RepositoriesController#revisions when a changeset has a great number of changes (eg. 100,000)
698 * fixed: open/closed issue counts are always 0 on reports view (postgresql)
702 * fixed: open/closed issue counts are always 0 on reports view (postgresql)
699 * fixed: date query filters (wrong results and sql error with postgresql)
703 * fixed: date query filters (wrong results and sql error with postgresql)
700 * fixed: confidentiality issue on account/show (private project names displayed to anyone)
704 * fixed: confidentiality issue on account/show (private project names displayed to anyone)
701 * fixed: Long text custom fields displayed without line breaks
705 * fixed: Long text custom fields displayed without line breaks
702 * fixed: Error when editing the wokflow after deleting a status
706 * fixed: Error when editing the wokflow after deleting a status
703 * fixed: SVN commit dates are now stored as local time
707 * fixed: SVN commit dates are now stored as local time
704
708
705
709
706 == 2007-04-11 v0.5.0
710 == 2007-04-11 v0.5.0
707
711
708 * added per project Wiki
712 * added per project Wiki
709 * added rss/atom feeds at project level (custom queries can be used as feeds)
713 * added rss/atom feeds at project level (custom queries can be used as feeds)
710 * added search engine (search in issues, news, commits, wiki pages, documents)
714 * added search engine (search in issues, news, commits, wiki pages, documents)
711 * simple time tracking functionality added
715 * simple time tracking functionality added
712 * added version due dates on calendar and gantt
716 * added version due dates on calendar and gantt
713 * added subprojects issue count on project Reports page
717 * added subprojects issue count on project Reports page
714 * added the ability to copy an existing workflow when creating a new tracker
718 * added the ability to copy an existing workflow when creating a new tracker
715 * added the ability to include subprojects on calendar and gantt
719 * added the ability to include subprojects on calendar and gantt
716 * added the ability to select trackers to display on calendar and gantt (Jeffrey Jones)
720 * added the ability to select trackers to display on calendar and gantt (Jeffrey Jones)
717 * added side by side svn diff view (Cyril Mougel)
721 * added side by side svn diff view (Cyril Mougel)
718 * added back subproject filter on issue list
722 * added back subproject filter on issue list
719 * added permissions report in admin area
723 * added permissions report in admin area
720 * added a status filter on users list
724 * added a status filter on users list
721 * support for password-protected SVN repositories
725 * support for password-protected SVN repositories
722 * SVN commits are now stored in the database
726 * SVN commits are now stored in the database
723 * added simple svn statistics SVG graphs
727 * added simple svn statistics SVG graphs
724 * progress bars for roadmap versions (Nick Read)
728 * progress bars for roadmap versions (Nick Read)
725 * issue history now shows file uploads and deletions
729 * issue history now shows file uploads and deletions
726 * #id patterns are turned into links to issues in descriptions and commit messages
730 * #id patterns are turned into links to issues in descriptions and commit messages
727 * japanese translation added (Satoru Kurashiki)
731 * japanese translation added (Satoru Kurashiki)
728 * chinese simplified translation added (Andy Wu)
732 * chinese simplified translation added (Andy Wu)
729 * italian translation added (Alessio Spadaro)
733 * italian translation added (Alessio Spadaro)
730 * added scripts to manage SVN repositories creation and user access control using ssh+svn (Nicolas Chuche)
734 * added scripts to manage SVN repositories creation and user access control using ssh+svn (Nicolas Chuche)
731 * better calendar rendering time
735 * better calendar rendering time
732 * fixed migration scripts to work with mysql 5 running in strict mode
736 * fixed migration scripts to work with mysql 5 running in strict mode
733 * fixed: error when clicking "add" with no block selected on my/page_layout
737 * fixed: error when clicking "add" with no block selected on my/page_layout
734 * fixed: hard coded links in navigation bar
738 * fixed: hard coded links in navigation bar
735 * fixed: table_name pre/suffix support
739 * fixed: table_name pre/suffix support
736
740
737
741
738 == 2007-02-18 v0.4.2
742 == 2007-02-18 v0.4.2
739
743
740 * Rails 1.2 is now required
744 * Rails 1.2 is now required
741 * settings are now stored in the database and editable through the application in: Admin -> Settings (config_custom.rb is no longer used)
745 * settings are now stored in the database and editable through the application in: Admin -> Settings (config_custom.rb is no longer used)
742 * added project roadmap view
746 * added project roadmap view
743 * mail notifications added when a document, a file or an attachment is added
747 * mail notifications added when a document, a file or an attachment is added
744 * tooltips added on Gantt chart and calender to view the details of the issues
748 * tooltips added on Gantt chart and calender to view the details of the issues
745 * ability to set the sort order for roles, trackers, issue statuses
749 * ability to set the sort order for roles, trackers, issue statuses
746 * added missing fields to csv export: priority, start date, due date, done ratio
750 * added missing fields to csv export: priority, start date, due date, done ratio
747 * added total number of issues per tracker on project overview
751 * added total number of issues per tracker on project overview
748 * 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-)
752 * 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-)
749 * added back "fixed version" field on issue screen and in filters
753 * added back "fixed version" field on issue screen and in filters
750 * project settings screen split in 4 tabs
754 * project settings screen split in 4 tabs
751 * custom fields screen split in 3 tabs (one for each kind of custom field)
755 * custom fields screen split in 3 tabs (one for each kind of custom field)
752 * multiple issues pdf export now rendered as a table
756 * multiple issues pdf export now rendered as a table
753 * added a button on users/list to manually activate an account
757 * added a button on users/list to manually activate an account
754 * added a setting option to disable "password lost" functionality
758 * added a setting option to disable "password lost" functionality
755 * added a setting option to set max number of issues in csv/pdf exports
759 * added a setting option to set max number of issues in csv/pdf exports
756 * fixed: subprojects count is always 0 on projects list
760 * fixed: subprojects count is always 0 on projects list
757 * fixed: locked users are proposed when adding a member to a project
761 * fixed: locked users are proposed when adding a member to a project
758 * fixed: setting an issue status as default status leads to an sql error with SQLite
762 * fixed: setting an issue status as default status leads to an sql error with SQLite
759 * fixed: unable to delete an issue status even if it's not used yet
763 * fixed: unable to delete an issue status even if it's not used yet
760 * fixed: filters ignored when exporting a predefined query to csv/pdf
764 * fixed: filters ignored when exporting a predefined query to csv/pdf
761 * fixed: crash when french "issue_edit" email notification is sent
765 * fixed: crash when french "issue_edit" email notification is sent
762 * fixed: hide mail preference not saved (my/account)
766 * fixed: hide mail preference not saved (my/account)
763 * fixed: crash when a new user try to edit its "my page" layout
767 * fixed: crash when a new user try to edit its "my page" layout
764
768
765
769
766 == 2007-01-03 v0.4.1
770 == 2007-01-03 v0.4.1
767
771
768 * fixed: emails have no recipient when one of the project members has notifications disabled
772 * fixed: emails have no recipient when one of the project members has notifications disabled
769
773
770
774
771 == 2007-01-02 v0.4.0
775 == 2007-01-02 v0.4.0
772
776
773 * simple SVN browser added (just needs svn binaries in PATH)
777 * simple SVN browser added (just needs svn binaries in PATH)
774 * comments can now be added on news
778 * comments can now be added on news
775 * "my page" is now customizable
779 * "my page" is now customizable
776 * more powerfull and savable filters for issues lists
780 * more powerfull and savable filters for issues lists
777 * improved issues change history
781 * improved issues change history
778 * new functionality: move an issue to another project or tracker
782 * new functionality: move an issue to another project or tracker
779 * new functionality: add a note to an issue
783 * new functionality: add a note to an issue
780 * new report: project activity
784 * new report: project activity
781 * "start date" and "% done" fields added on issues
785 * "start date" and "% done" fields added on issues
782 * project calendar added
786 * project calendar added
783 * gantt chart added (exportable to pdf)
787 * gantt chart added (exportable to pdf)
784 * single/multiple issues pdf export added
788 * single/multiple issues pdf export added
785 * issues reports improvements
789 * issues reports improvements
786 * multiple file upload for issues, documents and files
790 * multiple file upload for issues, documents and files
787 * option to set maximum size of uploaded files
791 * option to set maximum size of uploaded files
788 * textile formating of issue and news descritions (RedCloth required)
792 * textile formating of issue and news descritions (RedCloth required)
789 * integration of DotClear jstoolbar for textile formatting
793 * integration of DotClear jstoolbar for textile formatting
790 * calendar date picker for date fields (LGPL DHTML Calendar http://sourceforge.net/projects/jscalendar)
794 * calendar date picker for date fields (LGPL DHTML Calendar http://sourceforge.net/projects/jscalendar)
791 * new filter in issues list: Author
795 * new filter in issues list: Author
792 * ajaxified paginators
796 * ajaxified paginators
793 * news rss feed added
797 * news rss feed added
794 * option to set number of results per page on issues list
798 * option to set number of results per page on issues list
795 * localized csv separator (comma/semicolon)
799 * localized csv separator (comma/semicolon)
796 * csv output encoded to ISO-8859-1
800 * csv output encoded to ISO-8859-1
797 * user custom field displayed on account/show
801 * user custom field displayed on account/show
798 * default configuration improved (default roles, trackers, status, permissions and workflows)
802 * default configuration improved (default roles, trackers, status, permissions and workflows)
799 * language for default configuration data can now be chosen when running 'load_default_data' task
803 * language for default configuration data can now be chosen when running 'load_default_data' task
800 * javascript added on custom field form to show/hide fields according to the format of custom field
804 * javascript added on custom field form to show/hide fields according to the format of custom field
801 * fixed: custom fields not in csv exports
805 * fixed: custom fields not in csv exports
802 * fixed: project settings now displayed according to user's permissions
806 * fixed: project settings now displayed according to user's permissions
803 * fixed: application error when no version is selected on projects/add_file
807 * fixed: application error when no version is selected on projects/add_file
804 * fixed: public actions not authorized for members of non public projects
808 * fixed: public actions not authorized for members of non public projects
805 * fixed: non public projects were shown on welcome screen even if current user is not a member
809 * fixed: non public projects were shown on welcome screen even if current user is not a member
806
810
807
811
808 == 2006-10-08 v0.3.0
812 == 2006-10-08 v0.3.0
809
813
810 * user authentication against multiple LDAP (optional)
814 * user authentication against multiple LDAP (optional)
811 * token based "lost password" functionality
815 * token based "lost password" functionality
812 * user self-registration functionality (optional)
816 * user self-registration functionality (optional)
813 * custom fields now available for issues, users and projects
817 * custom fields now available for issues, users and projects
814 * new custom field format "text" (displayed as a textarea field)
818 * new custom field format "text" (displayed as a textarea field)
815 * project & administration drop down menus in navigation bar for quicker access
819 * project & administration drop down menus in navigation bar for quicker access
816 * text formatting is preserved for long text fields (issues, projects and news descriptions)
820 * text formatting is preserved for long text fields (issues, projects and news descriptions)
817 * urls and emails are turned into clickable links in long text fields
821 * urls and emails are turned into clickable links in long text fields
818 * "due date" field added on issues
822 * "due date" field added on issues
819 * tracker selection filter added on change log
823 * tracker selection filter added on change log
820 * Localization plugin replaced with GLoc 1.1.0 (iconv required)
824 * Localization plugin replaced with GLoc 1.1.0 (iconv required)
821 * error messages internationalization
825 * error messages internationalization
822 * german translation added (thanks to Karim Trott)
826 * german translation added (thanks to Karim Trott)
823 * data locking for issues to prevent update conflicts (using ActiveRecord builtin optimistic locking)
827 * data locking for issues to prevent update conflicts (using ActiveRecord builtin optimistic locking)
824 * new filter in issues list: "Fixed version"
828 * new filter in issues list: "Fixed version"
825 * active filters are displayed with colored background on issues list
829 * active filters are displayed with colored background on issues list
826 * custom configuration is now defined in config/config_custom.rb
830 * custom configuration is now defined in config/config_custom.rb
827 * user object no more stored in session (only user_id)
831 * user object no more stored in session (only user_id)
828 * news summary field is no longer required
832 * news summary field is no longer required
829 * tables and forms redesign
833 * tables and forms redesign
830 * Fixed: boolean custom field not working
834 * Fixed: boolean custom field not working
831 * Fixed: error messages for custom fields are not displayed
835 * Fixed: error messages for custom fields are not displayed
832 * Fixed: invalid custom fields should have a red border
836 * Fixed: invalid custom fields should have a red border
833 * Fixed: custom fields values are not validated on issue update
837 * Fixed: custom fields values are not validated on issue update
834 * Fixed: unable to choose an empty value for 'List' custom fields
838 * Fixed: unable to choose an empty value for 'List' custom fields
835 * Fixed: no issue categories sorting
839 * Fixed: no issue categories sorting
836 * Fixed: incorrect versions sorting
840 * Fixed: incorrect versions sorting
837
841
838
842
839 == 2006-07-12 - v0.2.2
843 == 2006-07-12 - v0.2.2
840
844
841 * Fixed: bug in "issues list"
845 * Fixed: bug in "issues list"
842
846
843
847
844 == 2006-07-09 - v0.2.1
848 == 2006-07-09 - v0.2.1
845
849
846 * new databases supported: Oracle, PostgreSQL, SQL Server
850 * new databases supported: Oracle, PostgreSQL, SQL Server
847 * projects/subprojects hierarchy (1 level of subprojects only)
851 * projects/subprojects hierarchy (1 level of subprojects only)
848 * environment information display in admin/info
852 * environment information display in admin/info
849 * more filter options in issues list (rev6)
853 * more filter options in issues list (rev6)
850 * default language based on browser settings (Accept-Language HTTP header)
854 * default language based on browser settings (Accept-Language HTTP header)
851 * issues list exportable to CSV (rev6)
855 * issues list exportable to CSV (rev6)
852 * simple_format and auto_link on long text fields
856 * simple_format and auto_link on long text fields
853 * more data validations
857 * more data validations
854 * Fixed: error when all mail notifications are unchecked in admin/mail_options
858 * Fixed: error when all mail notifications are unchecked in admin/mail_options
855 * Fixed: all project news are displayed on project summary
859 * Fixed: all project news are displayed on project summary
856 * Fixed: Can't change user password in users/edit
860 * Fixed: Can't change user password in users/edit
857 * Fixed: Error on tables creation with PostgreSQL (rev5)
861 * Fixed: Error on tables creation with PostgreSQL (rev5)
858 * Fixed: SQL error in "issue reports" view with PostgreSQL (rev5)
862 * Fixed: SQL error in "issue reports" view with PostgreSQL (rev5)
859
863
860
864
861 == 2006-06-25 - v0.1.0
865 == 2006-06-25 - v0.1.0
862
866
863 * multiple users/multiple projects
867 * multiple users/multiple projects
864 * role based access control
868 * role based access control
865 * issue tracking system
869 * issue tracking system
866 * fully customizable workflow
870 * fully customizable workflow
867 * documents/files repository
871 * documents/files repository
868 * email notifications on issue creation and update
872 * email notifications on issue creation and update
869 * multilanguage support (except for error messages):english, french, spanish
873 * multilanguage support (except for error messages):english, french, spanish
870 * online manual in french (unfinished)
874 * online manual in french (unfinished)
@@ -1,682 +1,686
1 body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
1 body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
2
2
3 h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
3 h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
4 h1 {margin:0; padding:0; font-size: 24px;}
4 h1 {margin:0; padding:0; font-size: 24px;}
5 h2, .wiki h1 {font-size: 20px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
5 h2, .wiki h1 {font-size: 20px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
6 h3, .wiki h2 {font-size: 16px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
6 h3, .wiki h2 {font-size: 16px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
7 h4, .wiki h3 {font-size: 13px;padding: 2px 10px 1px 0px;margin-bottom: 5px; border-bottom: 1px dotted #bbbbbb; color: #444;}
7 h4, .wiki h3 {font-size: 13px;padding: 2px 10px 1px 0px;margin-bottom: 5px; border-bottom: 1px dotted #bbbbbb; color: #444;}
8
8
9 /***** Layout *****/
9 /***** Layout *****/
10 #wrapper {background: white;}
10 #wrapper {background: white;}
11
11
12 #top-menu {background: #2C4056; color: #fff; height:1.8em; font-size: 0.8em; padding: 2px 2px 0px 6px;}
12 #top-menu {background: #2C4056; color: #fff; height:1.8em; font-size: 0.8em; padding: 2px 2px 0px 6px;}
13 #top-menu ul {margin: 0; padding: 0;}
13 #top-menu ul {margin: 0; padding: 0;}
14 #top-menu li {
14 #top-menu li {
15 float:left;
15 float:left;
16 list-style-type:none;
16 list-style-type:none;
17 margin: 0px 0px 0px 0px;
17 margin: 0px 0px 0px 0px;
18 padding: 0px 0px 0px 0px;
18 padding: 0px 0px 0px 0px;
19 white-space:nowrap;
19 white-space:nowrap;
20 }
20 }
21 #top-menu a {color: #fff; padding-right: 8px; font-weight: bold;}
21 #top-menu a {color: #fff; padding-right: 8px; font-weight: bold;}
22 #top-menu #loggedas { float: right; margin-right: 0.5em; color: #fff; }
22 #top-menu #loggedas { float: right; margin-right: 0.5em; color: #fff; }
23
23
24 #account {float:right;}
24 #account {float:right;}
25
25
26 #header {height:5.3em;margin:0;background-color:#507AAA;color:#f8f8f8; padding: 4px 8px 0px 6px; position:relative;}
26 #header {height:5.3em;margin:0;background-color:#507AAA;color:#f8f8f8; padding: 4px 8px 0px 6px; position:relative;}
27 #header a {color:#f8f8f8;}
27 #header a {color:#f8f8f8;}
28 #quick-search {float:right;}
28 #quick-search {float:right;}
29
29
30 #main-menu {position: absolute; bottom: 0px; left:6px; margin-right: -500px;}
30 #main-menu {position: absolute; bottom: 0px; left:6px; margin-right: -500px;}
31 #main-menu ul {margin: 0; padding: 0;}
31 #main-menu ul {margin: 0; padding: 0;}
32 #main-menu li {
32 #main-menu li {
33 float:left;
33 float:left;
34 list-style-type:none;
34 list-style-type:none;
35 margin: 0px 2px 0px 0px;
35 margin: 0px 2px 0px 0px;
36 padding: 0px 0px 0px 0px;
36 padding: 0px 0px 0px 0px;
37 white-space:nowrap;
37 white-space:nowrap;
38 }
38 }
39 #main-menu li a {
39 #main-menu li a {
40 display: block;
40 display: block;
41 color: #fff;
41 color: #fff;
42 text-decoration: none;
42 text-decoration: none;
43 font-weight: bold;
43 font-weight: bold;
44 margin: 0;
44 margin: 0;
45 padding: 4px 10px 4px 10px;
45 padding: 4px 10px 4px 10px;
46 }
46 }
47 #main-menu li a:hover {background:#759FCF; color:#fff;}
47 #main-menu li a:hover {background:#759FCF; color:#fff;}
48 #main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;}
48 #main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;}
49
49
50 #main {background-color:#EEEEEE;}
50 #main {background-color:#EEEEEE;}
51
51
52 #sidebar{ float: right; width: 17%; position: relative; z-index: 9; min-height: 600px; padding: 0; margin: 0;}
52 #sidebar{ float: right; width: 17%; position: relative; z-index: 9; min-height: 600px; padding: 0; margin: 0;}
53 * html #sidebar{ width: 17%; }
53 * html #sidebar{ width: 17%; }
54 #sidebar h3{ font-size: 14px; margin-top:14px; color: #666; }
54 #sidebar h3{ font-size: 14px; margin-top:14px; color: #666; }
55 #sidebar hr{ width: 100%; margin: 0 auto; height: 1px; background: #ccc; border: 0; }
55 #sidebar hr{ width: 100%; margin: 0 auto; height: 1px; background: #ccc; border: 0; }
56 * html #sidebar hr{ width: 95%; position: relative; left: -6px; color: #ccc; }
56 * html #sidebar hr{ width: 95%; position: relative; left: -6px; color: #ccc; }
57
57
58 #content { width: 80%; background-color: #fff; margin: 0px; border-right: 1px solid #ddd; padding: 6px 10px 10px 10px; z-index: 10; }
58 #content { width: 80%; background-color: #fff; margin: 0px; border-right: 1px solid #ddd; padding: 6px 10px 10px 10px; z-index: 10; }
59 * html #content{ width: 80%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;}
59 * html #content{ width: 80%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;}
60 html>body #content { min-height: 600px; }
60 html>body #content { min-height: 600px; }
61 * html body #content { height: 600px; } /* IE */
61 * html body #content { height: 600px; } /* IE */
62
62
63 #main.nosidebar #sidebar{ display: none; }
63 #main.nosidebar #sidebar{ display: none; }
64 #main.nosidebar #content{ width: auto; border-right: 0; }
64 #main.nosidebar #content{ width: auto; border-right: 0; }
65
65
66 #footer {clear: both; border-top: 1px solid #bbb; font-size: 0.9em; color: #aaa; padding: 5px; text-align:center; background:#fff;}
66 #footer {clear: both; border-top: 1px solid #bbb; font-size: 0.9em; color: #aaa; padding: 5px; text-align:center; background:#fff;}
67
67
68 #login-form table {margin-top:5em; padding:1em; margin-left: auto; margin-right: auto; border: 2px solid #FDBF3B; background-color:#FFEBC1; }
68 #login-form table {margin-top:5em; padding:1em; margin-left: auto; margin-right: auto; border: 2px solid #FDBF3B; background-color:#FFEBC1; }
69 #login-form table td {padding: 6px;}
69 #login-form table td {padding: 6px;}
70 #login-form label {font-weight: bold;}
70 #login-form label {font-weight: bold;}
71
71
72 .clear:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden; }
72 .clear:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden; }
73
73
74 /***** Links *****/
74 /***** Links *****/
75 a, a:link, a:visited{ color: #2A5685; text-decoration: none; }
75 a, a:link, a:visited{ color: #2A5685; text-decoration: none; }
76 a:hover, a:active{ color: #c61a1a; text-decoration: underline;}
76 a:hover, a:active{ color: #c61a1a; text-decoration: underline;}
77 a img{ border: 0; }
77 a img{ border: 0; }
78
78
79 a.issue.closed { text-decoration: line-through; }
79 a.issue.closed, a.issue.closed:link, a.issue.closed:visited { text-decoration: line-through; }
80
80
81 /***** Tables *****/
81 /***** Tables *****/
82 table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; }
82 table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; }
83 table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; }
83 table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; }
84 table.list td { vertical-align: top; }
84 table.list td { vertical-align: top; }
85 table.list td.id { width: 2%; text-align: center;}
85 table.list td.id { width: 2%; text-align: center;}
86 table.list td.checkbox { width: 15px; padding: 0px;}
86 table.list td.checkbox { width: 15px; padding: 0px;}
87
87
88 tr.issue { text-align: center; white-space: nowrap; }
88 tr.issue { text-align: center; white-space: nowrap; }
89 tr.issue td.subject, tr.issue td.category, td.assigned_to { white-space: normal; }
89 tr.issue td.subject, tr.issue td.category, td.assigned_to { white-space: normal; }
90 tr.issue td.subject { text-align: left; }
90 tr.issue td.subject { text-align: left; }
91 tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
91 tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
92
92
93 tr.entry { border: 1px solid #f8f8f8; }
93 tr.entry { border: 1px solid #f8f8f8; }
94 tr.entry td { white-space: nowrap; }
94 tr.entry td { white-space: nowrap; }
95 tr.entry td.filename { width: 30%; }
95 tr.entry td.filename { width: 30%; }
96 tr.entry td.size { text-align: right; font-size: 90%; }
96 tr.entry td.size { text-align: right; font-size: 90%; }
97 tr.entry td.revision, tr.entry td.author { text-align: center; }
97 tr.entry td.revision, tr.entry td.author { text-align: center; }
98 tr.entry td.age { text-align: right; }
98 tr.entry td.age { text-align: right; }
99
99
100 tr.entry span.expander {background-image: url(../images/bullet_toggle_plus.png); padding-left: 8px; margin-left: 0; cursor: pointer;}
100 tr.entry span.expander {background-image: url(../images/bullet_toggle_plus.png); padding-left: 8px; margin-left: 0; cursor: pointer;}
101 tr.entry.open span.expander {background-image: url(../images/bullet_toggle_minus.png);}
101 tr.entry.open span.expander {background-image: url(../images/bullet_toggle_minus.png);}
102 tr.entry.file td.filename a { margin-left: 16px; }
102 tr.entry.file td.filename a { margin-left: 16px; }
103
103
104 tr.changeset td.author { text-align: center; width: 15%; }
104 tr.changeset td.author { text-align: center; width: 15%; }
105 tr.changeset td.committed_on { text-align: center; width: 15%; }
105 tr.changeset td.committed_on { text-align: center; width: 15%; }
106
106
107 tr.file td { text-align: center; }
108 tr.file td.filename { text-align: left; padding-left: 24px; }
109 tr.file td.digest { font-size: 80%; }
110
107 tr.message { height: 2.6em; }
111 tr.message { height: 2.6em; }
108 tr.message td.last_message { font-size: 80%; }
112 tr.message td.last_message { font-size: 80%; }
109 tr.message.locked td.subject a { background-image: url(../images/locked.png); }
113 tr.message.locked td.subject a { background-image: url(../images/locked.png); }
110 tr.message.sticky td.subject a { background-image: url(../images/sticky.png); font-weight: bold; }
114 tr.message.sticky td.subject a { background-image: url(../images/sticky.png); font-weight: bold; }
111
115
112 tr.user td { width:13%; }
116 tr.user td { width:13%; }
113 tr.user td.email { width:18%; }
117 tr.user td.email { width:18%; }
114 tr.user td { white-space: nowrap; }
118 tr.user td { white-space: nowrap; }
115 tr.user.locked, tr.user.registered { color: #aaa; }
119 tr.user.locked, tr.user.registered { color: #aaa; }
116 tr.user.locked a, tr.user.registered a { color: #aaa; }
120 tr.user.locked a, tr.user.registered a { color: #aaa; }
117
121
118 tr.time-entry { text-align: center; white-space: nowrap; }
122 tr.time-entry { text-align: center; white-space: nowrap; }
119 tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
123 tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
120 td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
124 td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
121 td.hours .hours-dec { font-size: 0.9em; }
125 td.hours .hours-dec { font-size: 0.9em; }
122
126
123 table.plugins td { vertical-align: middle; }
127 table.plugins td { vertical-align: middle; }
124 table.plugins td.configure { text-align: right; padding-right: 1em; }
128 table.plugins td.configure { text-align: right; padding-right: 1em; }
125 table.plugins span.name { font-weight: bold; display: block; margin-bottom: 6px; }
129 table.plugins span.name { font-weight: bold; display: block; margin-bottom: 6px; }
126 table.plugins span.description { display: block; font-size: 0.9em; }
130 table.plugins span.description { display: block; font-size: 0.9em; }
127 table.plugins span.url { display: block; font-size: 0.9em; }
131 table.plugins span.url { display: block; font-size: 0.9em; }
128
132
129 table.list tbody tr:hover { background-color:#ffffdd; }
133 table.list tbody tr:hover { background-color:#ffffdd; }
130 table td {padding:2px;}
134 table td {padding:2px;}
131 table p {margin:0;}
135 table p {margin:0;}
132 .odd {background-color:#f6f7f8;}
136 .odd {background-color:#f6f7f8;}
133 .even {background-color: #fff;}
137 .even {background-color: #fff;}
134
138
135 .highlight { background-color: #FCFD8D;}
139 .highlight { background-color: #FCFD8D;}
136 .highlight.token-1 { background-color: #faa;}
140 .highlight.token-1 { background-color: #faa;}
137 .highlight.token-2 { background-color: #afa;}
141 .highlight.token-2 { background-color: #afa;}
138 .highlight.token-3 { background-color: #aaf;}
142 .highlight.token-3 { background-color: #aaf;}
139
143
140 .box{
144 .box{
141 padding:6px;
145 padding:6px;
142 margin-bottom: 10px;
146 margin-bottom: 10px;
143 background-color:#f6f6f6;
147 background-color:#f6f6f6;
144 color:#505050;
148 color:#505050;
145 line-height:1.5em;
149 line-height:1.5em;
146 border: 1px solid #e4e4e4;
150 border: 1px solid #e4e4e4;
147 }
151 }
148
152
149 div.square {
153 div.square {
150 border: 1px solid #999;
154 border: 1px solid #999;
151 float: left;
155 float: left;
152 margin: .3em .4em 0 .4em;
156 margin: .3em .4em 0 .4em;
153 overflow: hidden;
157 overflow: hidden;
154 width: .6em; height: .6em;
158 width: .6em; height: .6em;
155 }
159 }
156 .contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px; padding-left: 10px; font-size:0.9em;}
160 .contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px; padding-left: 10px; font-size:0.9em;}
157 .contextual input {font-size:0.9em;}
161 .contextual input {font-size:0.9em;}
158
162
159 .splitcontentleft{float:left; width:49%;}
163 .splitcontentleft{float:left; width:49%;}
160 .splitcontentright{float:right; width:49%;}
164 .splitcontentright{float:right; width:49%;}
161 form {display: inline;}
165 form {display: inline;}
162 input, select {vertical-align: middle; margin-top: 1px; margin-bottom: 1px;}
166 input, select {vertical-align: middle; margin-top: 1px; margin-bottom: 1px;}
163 fieldset {border: 1px solid #e4e4e4; margin:0;}
167 fieldset {border: 1px solid #e4e4e4; margin:0;}
164 legend {color: #484848;}
168 legend {color: #484848;}
165 hr { width: 100%; height: 1px; background: #ccc; border: 0;}
169 hr { width: 100%; height: 1px; background: #ccc; border: 0;}
166 blockquote { font-style: italic; border-left: 3px solid #e0e0e0; padding-left: 0.6em; margin-left: 2.4em;}
170 blockquote { font-style: italic; border-left: 3px solid #e0e0e0; padding-left: 0.6em; margin-left: 2.4em;}
167 blockquote blockquote { margin-left: 0;}
171 blockquote blockquote { margin-left: 0;}
168 textarea.wiki-edit { width: 99%; }
172 textarea.wiki-edit { width: 99%; }
169 li p {margin-top: 0;}
173 li p {margin-top: 0;}
170 div.issue {background:#ffffdd; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;}
174 div.issue {background:#ffffdd; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;}
171 p.breadcrumb { font-size: 0.9em; margin: 4px 0 4px 0;}
175 p.breadcrumb { font-size: 0.9em; margin: 4px 0 4px 0;}
172 p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; }
176 p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; }
173 p.footnote { font-size: 0.9em; margin-top: 0px; margin-bottom: 0px; }
177 p.footnote { font-size: 0.9em; margin-top: 0px; margin-bottom: 0px; }
174
178
175 fieldset#filters, fieldset#date-range { padding: 0.7em; margin-bottom: 8px; }
179 fieldset#filters, fieldset#date-range { padding: 0.7em; margin-bottom: 8px; }
176 fieldset#filters p { margin: 1.2em 0 0.8em 2px; }
180 fieldset#filters p { margin: 1.2em 0 0.8em 2px; }
177 fieldset#filters table { border-collapse: collapse; }
181 fieldset#filters table { border-collapse: collapse; }
178 fieldset#filters table td { padding: 0; vertical-align: middle; }
182 fieldset#filters table td { padding: 0; vertical-align: middle; }
179 fieldset#filters tr.filter { height: 2em; }
183 fieldset#filters tr.filter { height: 2em; }
180 fieldset#filters td.add-filter { text-align: right; vertical-align: top; }
184 fieldset#filters td.add-filter { text-align: right; vertical-align: top; }
181 .buttons { font-size: 0.9em; }
185 .buttons { font-size: 0.9em; }
182
186
183 div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;}
187 div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;}
184 div#issue-changesets .changeset { padding: 4px;}
188 div#issue-changesets .changeset { padding: 4px;}
185 div#issue-changesets .changeset { border-bottom: 1px solid #ddd; }
189 div#issue-changesets .changeset { border-bottom: 1px solid #ddd; }
186 div#issue-changesets p { margin-top: 0; margin-bottom: 1em;}
190 div#issue-changesets p { margin-top: 0; margin-bottom: 1em;}
187
191
188 div#activity dl, #search-results { margin-left: 2em; }
192 div#activity dl, #search-results { margin-left: 2em; }
189 div#activity dd, #search-results dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; }
193 div#activity dd, #search-results dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; }
190 div#activity dt, #search-results dt { margin-bottom: 0px; padding-left: 20px; line-height: 18px; background-position: 0 50%; background-repeat: no-repeat; }
194 div#activity dt, #search-results dt { margin-bottom: 0px; padding-left: 20px; line-height: 18px; background-position: 0 50%; background-repeat: no-repeat; }
191 div#activity dt.me .time { border-bottom: 1px solid #999; }
195 div#activity dt.me .time { border-bottom: 1px solid #999; }
192 div#activity dt .time { color: #777; font-size: 80%; }
196 div#activity dt .time { color: #777; font-size: 80%; }
193 div#activity dd .description, #search-results dd .description { font-style: italic; }
197 div#activity dd .description, #search-results dd .description { font-style: italic; }
194 div#activity span.project:after, #search-results span.project:after { content: " -"; }
198 div#activity span.project:after, #search-results span.project:after { content: " -"; }
195 div#activity dd span.description, #search-results dd span.description { display:block; }
199 div#activity dd span.description, #search-results dd span.description { display:block; }
196
200
197 #search-results dd { margin-bottom: 1em; padding-left: 20px; margin-left:0px; }
201 #search-results dd { margin-bottom: 1em; padding-left: 20px; margin-left:0px; }
198 div#search-results-counts {float:right;}
202 div#search-results-counts {float:right;}
199 div#search-results-counts ul { margin-top: 0.5em; }
203 div#search-results-counts ul { margin-top: 0.5em; }
200 div#search-results-counts li { list-style-type:none; float: left; margin-left: 1em; }
204 div#search-results-counts li { list-style-type:none; float: left; margin-left: 1em; }
201
205
202 dt.issue { background-image: url(../images/ticket.png); }
206 dt.issue { background-image: url(../images/ticket.png); }
203 dt.issue-edit { background-image: url(../images/ticket_edit.png); }
207 dt.issue-edit { background-image: url(../images/ticket_edit.png); }
204 dt.issue-closed { background-image: url(../images/ticket_checked.png); }
208 dt.issue-closed { background-image: url(../images/ticket_checked.png); }
205 dt.issue-note { background-image: url(../images/ticket_note.png); }
209 dt.issue-note { background-image: url(../images/ticket_note.png); }
206 dt.changeset { background-image: url(../images/changeset.png); }
210 dt.changeset { background-image: url(../images/changeset.png); }
207 dt.news { background-image: url(../images/news.png); }
211 dt.news { background-image: url(../images/news.png); }
208 dt.message { background-image: url(../images/message.png); }
212 dt.message { background-image: url(../images/message.png); }
209 dt.reply { background-image: url(../images/comments.png); }
213 dt.reply { background-image: url(../images/comments.png); }
210 dt.wiki-page { background-image: url(../images/wiki_edit.png); }
214 dt.wiki-page { background-image: url(../images/wiki_edit.png); }
211 dt.attachment { background-image: url(../images/attachment.png); }
215 dt.attachment { background-image: url(../images/attachment.png); }
212 dt.document { background-image: url(../images/document.png); }
216 dt.document { background-image: url(../images/document.png); }
213 dt.project { background-image: url(../images/projects.png); }
217 dt.project { background-image: url(../images/projects.png); }
214
218
215 div#roadmap fieldset.related-issues { margin-bottom: 1em; }
219 div#roadmap fieldset.related-issues { margin-bottom: 1em; }
216 div#roadmap fieldset.related-issues ul { margin-top: 0.3em; margin-bottom: 0.3em; }
220 div#roadmap fieldset.related-issues ul { margin-top: 0.3em; margin-bottom: 0.3em; }
217 div#roadmap .wiki h1:first-child { display: none; }
221 div#roadmap .wiki h1:first-child { display: none; }
218 div#roadmap .wiki h1 { font-size: 120%; }
222 div#roadmap .wiki h1 { font-size: 120%; }
219 div#roadmap .wiki h2 { font-size: 110%; }
223 div#roadmap .wiki h2 { font-size: 110%; }
220
224
221 div#version-summary { float:right; width:380px; margin-left: 16px; margin-bottom: 16px; background-color: #fff; }
225 div#version-summary { float:right; width:380px; margin-left: 16px; margin-bottom: 16px; background-color: #fff; }
222 div#version-summary fieldset { margin-bottom: 1em; }
226 div#version-summary fieldset { margin-bottom: 1em; }
223 div#version-summary .total-hours { text-align: right; }
227 div#version-summary .total-hours { text-align: right; }
224
228
225 table#time-report td.hours, table#time-report th.period, table#time-report th.total { text-align: right; padding-right: 0.5em; }
229 table#time-report td.hours, table#time-report th.period, table#time-report th.total { text-align: right; padding-right: 0.5em; }
226 table#time-report tbody tr { font-style: italic; color: #777; }
230 table#time-report tbody tr { font-style: italic; color: #777; }
227 table#time-report tbody tr.last-level { font-style: normal; color: #555; }
231 table#time-report tbody tr.last-level { font-style: normal; color: #555; }
228 table#time-report tbody tr.total { font-style: normal; font-weight: bold; color: #555; background-color:#EEEEEE; }
232 table#time-report tbody tr.total { font-style: normal; font-weight: bold; color: #555; background-color:#EEEEEE; }
229 table#time-report .hours-dec { font-size: 0.9em; }
233 table#time-report .hours-dec { font-size: 0.9em; }
230
234
231 ul.properties {padding:0; font-size: 0.9em; color: #777;}
235 ul.properties {padding:0; font-size: 0.9em; color: #777;}
232 ul.properties li {list-style-type:none;}
236 ul.properties li {list-style-type:none;}
233 ul.properties li span {font-style:italic;}
237 ul.properties li span {font-style:italic;}
234
238
235 .total-hours { font-size: 110%; font-weight: bold; }
239 .total-hours { font-size: 110%; font-weight: bold; }
236 .total-hours span.hours-int { font-size: 120%; }
240 .total-hours span.hours-int { font-size: 120%; }
237
241
238 .autoscroll {overflow-x: auto; padding:1px; margin-bottom: 1.2em;}
242 .autoscroll {overflow-x: auto; padding:1px; margin-bottom: 1.2em;}
239 #user_firstname, #user_lastname, #user_mail, #my_account_form select { width: 90%; }
243 #user_firstname, #user_lastname, #user_mail, #my_account_form select { width: 90%; }
240
244
241 .pagination {font-size: 90%}
245 .pagination {font-size: 90%}
242 p.pagination {margin-top:8px;}
246 p.pagination {margin-top:8px;}
243
247
244 /***** Tabular forms ******/
248 /***** Tabular forms ******/
245 .tabular p{
249 .tabular p{
246 margin: 0;
250 margin: 0;
247 padding: 5px 0 8px 0;
251 padding: 5px 0 8px 0;
248 padding-left: 180px; /*width of left column containing the label elements*/
252 padding-left: 180px; /*width of left column containing the label elements*/
249 height: 1%;
253 height: 1%;
250 clear:left;
254 clear:left;
251 }
255 }
252
256
253 html>body .tabular p {overflow:hidden;}
257 html>body .tabular p {overflow:hidden;}
254
258
255 .tabular label{
259 .tabular label{
256 font-weight: bold;
260 font-weight: bold;
257 float: left;
261 float: left;
258 text-align: right;
262 text-align: right;
259 margin-left: -180px; /*width of left column*/
263 margin-left: -180px; /*width of left column*/
260 width: 175px; /*width of labels. Should be smaller than left column to create some right
264 width: 175px; /*width of labels. Should be smaller than left column to create some right
261 margin*/
265 margin*/
262 }
266 }
263
267
264 .tabular label.floating{
268 .tabular label.floating{
265 font-weight: normal;
269 font-weight: normal;
266 margin-left: 0px;
270 margin-left: 0px;
267 text-align: left;
271 text-align: left;
268 width: 270px;
272 width: 270px;
269 }
273 }
270
274
271 input#time_entry_comments { width: 90%;}
275 input#time_entry_comments { width: 90%;}
272
276
273 #preview fieldset {margin-top: 1em; background: url(../images/draft.png)}
277 #preview fieldset {margin-top: 1em; background: url(../images/draft.png)}
274
278
275 .tabular.settings p{ padding-left: 300px; }
279 .tabular.settings p{ padding-left: 300px; }
276 .tabular.settings label{ margin-left: -300px; width: 295px; }
280 .tabular.settings label{ margin-left: -300px; width: 295px; }
277
281
278 .required {color: #bb0000;}
282 .required {color: #bb0000;}
279 .summary {font-style: italic;}
283 .summary {font-style: italic;}
280
284
281 #attachments_fields input[type=text] {margin-left: 8px; }
285 #attachments_fields input[type=text] {margin-left: 8px; }
282
286
283 div.attachments { margin-top: 12px; }
287 div.attachments { margin-top: 12px; }
284 div.attachments p { margin:4px 0 2px 0; }
288 div.attachments p { margin:4px 0 2px 0; }
285 div.attachments img { vertical-align: middle; }
289 div.attachments img { vertical-align: middle; }
286 div.attachments span.author { font-size: 0.9em; color: #888; }
290 div.attachments span.author { font-size: 0.9em; color: #888; }
287
291
288 p.other-formats { text-align: right; font-size:0.9em; color: #666; }
292 p.other-formats { text-align: right; font-size:0.9em; color: #666; }
289 .other-formats span + span:before { content: "| "; }
293 .other-formats span + span:before { content: "| "; }
290
294
291 a.feed { background: url(../images/feed.png) no-repeat 1px 50%; padding: 2px 0px 3px 16px; }
295 a.feed { background: url(../images/feed.png) no-repeat 1px 50%; padding: 2px 0px 3px 16px; }
292
296
293 /***** Flash & error messages ****/
297 /***** Flash & error messages ****/
294 #errorExplanation, div.flash, .nodata, .warning {
298 #errorExplanation, div.flash, .nodata, .warning {
295 padding: 4px 4px 4px 30px;
299 padding: 4px 4px 4px 30px;
296 margin-bottom: 12px;
300 margin-bottom: 12px;
297 font-size: 1.1em;
301 font-size: 1.1em;
298 border: 2px solid;
302 border: 2px solid;
299 }
303 }
300
304
301 div.flash {margin-top: 8px;}
305 div.flash {margin-top: 8px;}
302
306
303 div.flash.error, #errorExplanation {
307 div.flash.error, #errorExplanation {
304 background: url(../images/false.png) 8px 5px no-repeat;
308 background: url(../images/false.png) 8px 5px no-repeat;
305 background-color: #ffe3e3;
309 background-color: #ffe3e3;
306 border-color: #dd0000;
310 border-color: #dd0000;
307 color: #550000;
311 color: #550000;
308 }
312 }
309
313
310 div.flash.notice {
314 div.flash.notice {
311 background: url(../images/true.png) 8px 5px no-repeat;
315 background: url(../images/true.png) 8px 5px no-repeat;
312 background-color: #dfffdf;
316 background-color: #dfffdf;
313 border-color: #9fcf9f;
317 border-color: #9fcf9f;
314 color: #005f00;
318 color: #005f00;
315 }
319 }
316
320
317 div.flash.warning {
321 div.flash.warning {
318 background: url(../images/warning.png) 8px 5px no-repeat;
322 background: url(../images/warning.png) 8px 5px no-repeat;
319 background-color: #FFEBC1;
323 background-color: #FFEBC1;
320 border-color: #FDBF3B;
324 border-color: #FDBF3B;
321 color: #A6750C;
325 color: #A6750C;
322 text-align: left;
326 text-align: left;
323 }
327 }
324
328
325 .nodata, .warning {
329 .nodata, .warning {
326 text-align: center;
330 text-align: center;
327 background-color: #FFEBC1;
331 background-color: #FFEBC1;
328 border-color: #FDBF3B;
332 border-color: #FDBF3B;
329 color: #A6750C;
333 color: #A6750C;
330 }
334 }
331
335
332 #errorExplanation ul { font-size: 0.9em;}
336 #errorExplanation ul { font-size: 0.9em;}
333
337
334 /***** Ajax indicator ******/
338 /***** Ajax indicator ******/
335 #ajax-indicator {
339 #ajax-indicator {
336 position: absolute; /* fixed not supported by IE */
340 position: absolute; /* fixed not supported by IE */
337 background-color:#eee;
341 background-color:#eee;
338 border: 1px solid #bbb;
342 border: 1px solid #bbb;
339 top:35%;
343 top:35%;
340 left:40%;
344 left:40%;
341 width:20%;
345 width:20%;
342 font-weight:bold;
346 font-weight:bold;
343 text-align:center;
347 text-align:center;
344 padding:0.6em;
348 padding:0.6em;
345 z-index:100;
349 z-index:100;
346 filter:alpha(opacity=50);
350 filter:alpha(opacity=50);
347 opacity: 0.5;
351 opacity: 0.5;
348 }
352 }
349
353
350 html>body #ajax-indicator { position: fixed; }
354 html>body #ajax-indicator { position: fixed; }
351
355
352 #ajax-indicator span {
356 #ajax-indicator span {
353 background-position: 0% 40%;
357 background-position: 0% 40%;
354 background-repeat: no-repeat;
358 background-repeat: no-repeat;
355 background-image: url(../images/loading.gif);
359 background-image: url(../images/loading.gif);
356 padding-left: 26px;
360 padding-left: 26px;
357 vertical-align: bottom;
361 vertical-align: bottom;
358 }
362 }
359
363
360 /***** Calendar *****/
364 /***** Calendar *****/
361 table.cal {border-collapse: collapse; width: 100%; margin: 0px 0 6px 0;border: 1px solid #d7d7d7;}
365 table.cal {border-collapse: collapse; width: 100%; margin: 0px 0 6px 0;border: 1px solid #d7d7d7;}
362 table.cal thead th {width: 14%;}
366 table.cal thead th {width: 14%;}
363 table.cal tbody tr {height: 100px;}
367 table.cal tbody tr {height: 100px;}
364 table.cal th { background-color:#EEEEEE; padding: 4px; }
368 table.cal th { background-color:#EEEEEE; padding: 4px; }
365 table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em;}
369 table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em;}
366 table.cal td p.day-num {font-size: 1.1em; text-align:right;}
370 table.cal td p.day-num {font-size: 1.1em; text-align:right;}
367 table.cal td.odd p.day-num {color: #bbb;}
371 table.cal td.odd p.day-num {color: #bbb;}
368 table.cal td.today {background:#ffffdd;}
372 table.cal td.today {background:#ffffdd;}
369 table.cal td.today p.day-num {font-weight: bold;}
373 table.cal td.today p.day-num {font-weight: bold;}
370
374
371 /***** Tooltips ******/
375 /***** Tooltips ******/
372 .tooltip{position:relative;z-index:24;}
376 .tooltip{position:relative;z-index:24;}
373 .tooltip:hover{z-index:25;color:#000;}
377 .tooltip:hover{z-index:25;color:#000;}
374 .tooltip span.tip{display: none; text-align:left;}
378 .tooltip span.tip{display: none; text-align:left;}
375
379
376 div.tooltip:hover span.tip{
380 div.tooltip:hover span.tip{
377 display:block;
381 display:block;
378 position:absolute;
382 position:absolute;
379 top:12px; left:24px; width:270px;
383 top:12px; left:24px; width:270px;
380 border:1px solid #555;
384 border:1px solid #555;
381 background-color:#fff;
385 background-color:#fff;
382 padding: 4px;
386 padding: 4px;
383 font-size: 0.8em;
387 font-size: 0.8em;
384 color:#505050;
388 color:#505050;
385 }
389 }
386
390
387 /***** Progress bar *****/
391 /***** Progress bar *****/
388 table.progress {
392 table.progress {
389 border: 1px solid #D7D7D7;
393 border: 1px solid #D7D7D7;
390 border-collapse: collapse;
394 border-collapse: collapse;
391 border-spacing: 0pt;
395 border-spacing: 0pt;
392 empty-cells: show;
396 empty-cells: show;
393 text-align: center;
397 text-align: center;
394 float:left;
398 float:left;
395 margin: 1px 6px 1px 0px;
399 margin: 1px 6px 1px 0px;
396 }
400 }
397
401
398 table.progress td { height: 0.9em; }
402 table.progress td { height: 0.9em; }
399 table.progress td.closed { background: #BAE0BA none repeat scroll 0%; }
403 table.progress td.closed { background: #BAE0BA none repeat scroll 0%; }
400 table.progress td.done { background: #DEF0DE none repeat scroll 0%; }
404 table.progress td.done { background: #DEF0DE none repeat scroll 0%; }
401 table.progress td.open { background: #FFF none repeat scroll 0%; }
405 table.progress td.open { background: #FFF none repeat scroll 0%; }
402 p.pourcent {font-size: 80%;}
406 p.pourcent {font-size: 80%;}
403 p.progress-info {clear: left; font-style: italic; font-size: 80%;}
407 p.progress-info {clear: left; font-style: italic; font-size: 80%;}
404
408
405 /***** Tabs *****/
409 /***** Tabs *****/
406 #content .tabs {height: 2.6em; border-bottom: 1px solid #bbbbbb; margin-bottom:1.2em; position:relative;}
410 #content .tabs {height: 2.6em; border-bottom: 1px solid #bbbbbb; margin-bottom:1.2em; position:relative;}
407 #content .tabs ul {margin:0; position:absolute; bottom:-2px; padding-left:1em;}
411 #content .tabs ul {margin:0; position:absolute; bottom:-2px; padding-left:1em;}
408 #content .tabs>ul { bottom:-1px; } /* others */
412 #content .tabs>ul { bottom:-1px; } /* others */
409 #content .tabs ul li {
413 #content .tabs ul li {
410 float:left;
414 float:left;
411 list-style-type:none;
415 list-style-type:none;
412 white-space:nowrap;
416 white-space:nowrap;
413 margin-right:8px;
417 margin-right:8px;
414 background:#fff;
418 background:#fff;
415 }
419 }
416 #content .tabs ul li a{
420 #content .tabs ul li a{
417 display:block;
421 display:block;
418 font-size: 0.9em;
422 font-size: 0.9em;
419 text-decoration:none;
423 text-decoration:none;
420 line-height:1.3em;
424 line-height:1.3em;
421 padding:4px 6px 4px 6px;
425 padding:4px 6px 4px 6px;
422 border: 1px solid #ccc;
426 border: 1px solid #ccc;
423 border-bottom: 1px solid #bbbbbb;
427 border-bottom: 1px solid #bbbbbb;
424 background-color: #eeeeee;
428 background-color: #eeeeee;
425 color:#777;
429 color:#777;
426 font-weight:bold;
430 font-weight:bold;
427 }
431 }
428
432
429 #content .tabs ul li a:hover {
433 #content .tabs ul li a:hover {
430 background-color: #ffffdd;
434 background-color: #ffffdd;
431 text-decoration:none;
435 text-decoration:none;
432 }
436 }
433
437
434 #content .tabs ul li a.selected {
438 #content .tabs ul li a.selected {
435 background-color: #fff;
439 background-color: #fff;
436 border: 1px solid #bbbbbb;
440 border: 1px solid #bbbbbb;
437 border-bottom: 1px solid #fff;
441 border-bottom: 1px solid #fff;
438 }
442 }
439
443
440 #content .tabs ul li a.selected:hover {
444 #content .tabs ul li a.selected:hover {
441 background-color: #fff;
445 background-color: #fff;
442 }
446 }
443
447
444 /***** Diff *****/
448 /***** Diff *****/
445 .diff_out { background: #fcc; }
449 .diff_out { background: #fcc; }
446 .diff_in { background: #cfc; }
450 .diff_in { background: #cfc; }
447
451
448 /***** Wiki *****/
452 /***** Wiki *****/
449 div.wiki table {
453 div.wiki table {
450 border: 1px solid #505050;
454 border: 1px solid #505050;
451 border-collapse: collapse;
455 border-collapse: collapse;
452 margin-bottom: 1em;
456 margin-bottom: 1em;
453 }
457 }
454
458
455 div.wiki table, div.wiki td, div.wiki th {
459 div.wiki table, div.wiki td, div.wiki th {
456 border: 1px solid #bbb;
460 border: 1px solid #bbb;
457 padding: 4px;
461 padding: 4px;
458 }
462 }
459
463
460 div.wiki .external {
464 div.wiki .external {
461 background-position: 0% 60%;
465 background-position: 0% 60%;
462 background-repeat: no-repeat;
466 background-repeat: no-repeat;
463 padding-left: 12px;
467 padding-left: 12px;
464 background-image: url(../images/external.png);
468 background-image: url(../images/external.png);
465 }
469 }
466
470
467 div.wiki a.new {
471 div.wiki a.new {
468 color: #b73535;
472 color: #b73535;
469 }
473 }
470
474
471 div.wiki pre {
475 div.wiki pre {
472 margin: 1em 1em 1em 1.6em;
476 margin: 1em 1em 1em 1.6em;
473 padding: 2px;
477 padding: 2px;
474 background-color: #fafafa;
478 background-color: #fafafa;
475 border: 1px solid #dadada;
479 border: 1px solid #dadada;
476 width:95%;
480 width:95%;
477 overflow-x: auto;
481 overflow-x: auto;
478 }
482 }
479
483
480 div.wiki ul.toc {
484 div.wiki ul.toc {
481 background-color: #ffffdd;
485 background-color: #ffffdd;
482 border: 1px solid #e4e4e4;
486 border: 1px solid #e4e4e4;
483 padding: 4px;
487 padding: 4px;
484 line-height: 1.2em;
488 line-height: 1.2em;
485 margin-bottom: 12px;
489 margin-bottom: 12px;
486 margin-right: 12px;
490 margin-right: 12px;
487 margin-left: 0;
491 margin-left: 0;
488 display: table
492 display: table
489 }
493 }
490 * html div.wiki ul.toc { width: 50%; } /* IE6 doesn't autosize div */
494 * html div.wiki ul.toc { width: 50%; } /* IE6 doesn't autosize div */
491
495
492 div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; }
496 div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; }
493 div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; }
497 div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; }
494 div.wiki ul.toc li { list-style-type:none;}
498 div.wiki ul.toc li { list-style-type:none;}
495 div.wiki ul.toc li.heading2 { margin-left: 6px; }
499 div.wiki ul.toc li.heading2 { margin-left: 6px; }
496 div.wiki ul.toc li.heading3 { margin-left: 12px; font-size: 0.8em; }
500 div.wiki ul.toc li.heading3 { margin-left: 12px; font-size: 0.8em; }
497
501
498 div.wiki ul.toc a {
502 div.wiki ul.toc a {
499 font-size: 0.9em;
503 font-size: 0.9em;
500 font-weight: normal;
504 font-weight: normal;
501 text-decoration: none;
505 text-decoration: none;
502 color: #606060;
506 color: #606060;
503 }
507 }
504 div.wiki ul.toc a:hover { color: #c61a1a; text-decoration: underline;}
508 div.wiki ul.toc a:hover { color: #c61a1a; text-decoration: underline;}
505
509
506 a.wiki-anchor { display: none; margin-left: 6px; text-decoration: none; }
510 a.wiki-anchor { display: none; margin-left: 6px; text-decoration: none; }
507 a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; }
511 a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; }
508 h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor { display: inline; color: #ddd; }
512 h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor { display: inline; color: #ddd; }
509
513
510 /***** My page layout *****/
514 /***** My page layout *****/
511 .block-receiver {
515 .block-receiver {
512 border:1px dashed #c0c0c0;
516 border:1px dashed #c0c0c0;
513 margin-bottom: 20px;
517 margin-bottom: 20px;
514 padding: 15px 0 15px 0;
518 padding: 15px 0 15px 0;
515 }
519 }
516
520
517 .mypage-box {
521 .mypage-box {
518 margin:0 0 20px 0;
522 margin:0 0 20px 0;
519 color:#505050;
523 color:#505050;
520 line-height:1.5em;
524 line-height:1.5em;
521 }
525 }
522
526
523 .handle {
527 .handle {
524 cursor: move;
528 cursor: move;
525 }
529 }
526
530
527 a.close-icon {
531 a.close-icon {
528 display:block;
532 display:block;
529 margin-top:3px;
533 margin-top:3px;
530 overflow:hidden;
534 overflow:hidden;
531 width:12px;
535 width:12px;
532 height:12px;
536 height:12px;
533 background-repeat: no-repeat;
537 background-repeat: no-repeat;
534 cursor:pointer;
538 cursor:pointer;
535 background-image:url('../images/close.png');
539 background-image:url('../images/close.png');
536 }
540 }
537
541
538 a.close-icon:hover {
542 a.close-icon:hover {
539 background-image:url('../images/close_hl.png');
543 background-image:url('../images/close_hl.png');
540 }
544 }
541
545
542 /***** Gantt chart *****/
546 /***** Gantt chart *****/
543 .gantt_hdr {
547 .gantt_hdr {
544 position:absolute;
548 position:absolute;
545 top:0;
549 top:0;
546 height:16px;
550 height:16px;
547 border-top: 1px solid #c0c0c0;
551 border-top: 1px solid #c0c0c0;
548 border-bottom: 1px solid #c0c0c0;
552 border-bottom: 1px solid #c0c0c0;
549 border-right: 1px solid #c0c0c0;
553 border-right: 1px solid #c0c0c0;
550 text-align: center;
554 text-align: center;
551 overflow: hidden;
555 overflow: hidden;
552 }
556 }
553
557
554 .task {
558 .task {
555 position: absolute;
559 position: absolute;
556 height:8px;
560 height:8px;
557 font-size:0.8em;
561 font-size:0.8em;
558 color:#888;
562 color:#888;
559 padding:0;
563 padding:0;
560 margin:0;
564 margin:0;
561 line-height:0.8em;
565 line-height:0.8em;
562 }
566 }
563
567
564 .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
568 .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
565 .task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; }
569 .task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; }
566 .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
570 .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
567 .milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; }
571 .milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; }
568
572
569 /***** Icons *****/
573 /***** Icons *****/
570 .icon {
574 .icon {
571 background-position: 0% 40%;
575 background-position: 0% 40%;
572 background-repeat: no-repeat;
576 background-repeat: no-repeat;
573 padding-left: 20px;
577 padding-left: 20px;
574 padding-top: 2px;
578 padding-top: 2px;
575 padding-bottom: 3px;
579 padding-bottom: 3px;
576 }
580 }
577
581
578 .icon22 {
582 .icon22 {
579 background-position: 0% 40%;
583 background-position: 0% 40%;
580 background-repeat: no-repeat;
584 background-repeat: no-repeat;
581 padding-left: 26px;
585 padding-left: 26px;
582 line-height: 22px;
586 line-height: 22px;
583 vertical-align: middle;
587 vertical-align: middle;
584 }
588 }
585
589
586 .icon-add { background-image: url(../images/add.png); }
590 .icon-add { background-image: url(../images/add.png); }
587 .icon-edit { background-image: url(../images/edit.png); }
591 .icon-edit { background-image: url(../images/edit.png); }
588 .icon-copy { background-image: url(../images/copy.png); }
592 .icon-copy { background-image: url(../images/copy.png); }
589 .icon-del { background-image: url(../images/delete.png); }
593 .icon-del { background-image: url(../images/delete.png); }
590 .icon-move { background-image: url(../images/move.png); }
594 .icon-move { background-image: url(../images/move.png); }
591 .icon-save { background-image: url(../images/save.png); }
595 .icon-save { background-image: url(../images/save.png); }
592 .icon-cancel { background-image: url(../images/cancel.png); }
596 .icon-cancel { background-image: url(../images/cancel.png); }
593 .icon-file { background-image: url(../images/file.png); }
597 .icon-file { background-image: url(../images/file.png); }
594 .icon-folder { background-image: url(../images/folder.png); }
598 .icon-folder { background-image: url(../images/folder.png); }
595 .open .icon-folder { background-image: url(../images/folder_open.png); }
599 .open .icon-folder { background-image: url(../images/folder_open.png); }
596 .icon-package { background-image: url(../images/package.png); }
600 .icon-package { background-image: url(../images/package.png); }
597 .icon-home { background-image: url(../images/home.png); }
601 .icon-home { background-image: url(../images/home.png); }
598 .icon-user { background-image: url(../images/user.png); }
602 .icon-user { background-image: url(../images/user.png); }
599 .icon-mypage { background-image: url(../images/user_page.png); }
603 .icon-mypage { background-image: url(../images/user_page.png); }
600 .icon-admin { background-image: url(../images/admin.png); }
604 .icon-admin { background-image: url(../images/admin.png); }
601 .icon-projects { background-image: url(../images/projects.png); }
605 .icon-projects { background-image: url(../images/projects.png); }
602 .icon-help { background-image: url(../images/help.png); }
606 .icon-help { background-image: url(../images/help.png); }
603 .icon-attachment { background-image: url(../images/attachment.png); }
607 .icon-attachment { background-image: url(../images/attachment.png); }
604 .icon-index { background-image: url(../images/index.png); }
608 .icon-index { background-image: url(../images/index.png); }
605 .icon-history { background-image: url(../images/history.png); }
609 .icon-history { background-image: url(../images/history.png); }
606 .icon-time { background-image: url(../images/time.png); }
610 .icon-time { background-image: url(../images/time.png); }
607 .icon-stats { background-image: url(../images/stats.png); }
611 .icon-stats { background-image: url(../images/stats.png); }
608 .icon-warning { background-image: url(../images/warning.png); }
612 .icon-warning { background-image: url(../images/warning.png); }
609 .icon-fav { background-image: url(../images/fav.png); }
613 .icon-fav { background-image: url(../images/fav.png); }
610 .icon-fav-off { background-image: url(../images/fav_off.png); }
614 .icon-fav-off { background-image: url(../images/fav_off.png); }
611 .icon-reload { background-image: url(../images/reload.png); }
615 .icon-reload { background-image: url(../images/reload.png); }
612 .icon-lock { background-image: url(../images/locked.png); }
616 .icon-lock { background-image: url(../images/locked.png); }
613 .icon-unlock { background-image: url(../images/unlock.png); }
617 .icon-unlock { background-image: url(../images/unlock.png); }
614 .icon-checked { background-image: url(../images/true.png); }
618 .icon-checked { background-image: url(../images/true.png); }
615 .icon-details { background-image: url(../images/zoom_in.png); }
619 .icon-details { background-image: url(../images/zoom_in.png); }
616 .icon-report { background-image: url(../images/report.png); }
620 .icon-report { background-image: url(../images/report.png); }
617 .icon-comment { background-image: url(../images/comment.png); }
621 .icon-comment { background-image: url(../images/comment.png); }
618
622
619 .icon22-projects { background-image: url(../images/22x22/projects.png); }
623 .icon22-projects { background-image: url(../images/22x22/projects.png); }
620 .icon22-users { background-image: url(../images/22x22/users.png); }
624 .icon22-users { background-image: url(../images/22x22/users.png); }
621 .icon22-tracker { background-image: url(../images/22x22/tracker.png); }
625 .icon22-tracker { background-image: url(../images/22x22/tracker.png); }
622 .icon22-role { background-image: url(../images/22x22/role.png); }
626 .icon22-role { background-image: url(../images/22x22/role.png); }
623 .icon22-workflow { background-image: url(../images/22x22/workflow.png); }
627 .icon22-workflow { background-image: url(../images/22x22/workflow.png); }
624 .icon22-options { background-image: url(../images/22x22/options.png); }
628 .icon22-options { background-image: url(../images/22x22/options.png); }
625 .icon22-notifications { background-image: url(../images/22x22/notifications.png); }
629 .icon22-notifications { background-image: url(../images/22x22/notifications.png); }
626 .icon22-authent { background-image: url(../images/22x22/authent.png); }
630 .icon22-authent { background-image: url(../images/22x22/authent.png); }
627 .icon22-info { background-image: url(../images/22x22/info.png); }
631 .icon22-info { background-image: url(../images/22x22/info.png); }
628 .icon22-comment { background-image: url(../images/22x22/comment.png); }
632 .icon22-comment { background-image: url(../images/22x22/comment.png); }
629 .icon22-package { background-image: url(../images/22x22/package.png); }
633 .icon22-package { background-image: url(../images/22x22/package.png); }
630 .icon22-settings { background-image: url(../images/22x22/settings.png); }
634 .icon22-settings { background-image: url(../images/22x22/settings.png); }
631 .icon22-plugin { background-image: url(../images/22x22/plugin.png); }
635 .icon22-plugin { background-image: url(../images/22x22/plugin.png); }
632
636
633 img.gravatar {
637 img.gravatar {
634 padding: 2px;
638 padding: 2px;
635 border: solid 1px #d5d5d5;
639 border: solid 1px #d5d5d5;
636 background: #fff;
640 background: #fff;
637 }
641 }
638
642
639 div.issue img.gravatar {
643 div.issue img.gravatar {
640 float: right;
644 float: right;
641 margin: 0 0 0 1em;
645 margin: 0 0 0 1em;
642 padding: 5px;
646 padding: 5px;
643 }
647 }
644
648
645 div.issue table img.gravatar {
649 div.issue table img.gravatar {
646 height: 14px;
650 height: 14px;
647 width: 14px;
651 width: 14px;
648 padding: 2px;
652 padding: 2px;
649 float: left;
653 float: left;
650 margin: 0 0.5em 0 0;
654 margin: 0 0.5em 0 0;
651 }
655 }
652
656
653 #history img.gravatar {
657 #history img.gravatar {
654 padding: 3px;
658 padding: 3px;
655 margin: 0 1.5em 1em 0;
659 margin: 0 1.5em 1em 0;
656 float: left;
660 float: left;
657 }
661 }
658
662
659 td.username img.gravatar {
663 td.username img.gravatar {
660 float: left;
664 float: left;
661 margin: 0 1em 0 0;
665 margin: 0 1em 0 0;
662 }
666 }
663
667
664 #activity dt img.gravatar {
668 #activity dt img.gravatar {
665 float: left;
669 float: left;
666 margin: 0 1em 1em 0;
670 margin: 0 1em 1em 0;
667 }
671 }
668
672
669 #activity dt,
673 #activity dt,
670 .journal {
674 .journal {
671 clear: left;
675 clear: left;
672 }
676 }
673
677
674 h2 img { vertical-align:middle; }
678 h2 img { vertical-align:middle; }
675
679
676
680
677 /***** Media print specific styles *****/
681 /***** Media print specific styles *****/
678 @media print {
682 @media print {
679 #top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; }
683 #top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; }
680 #main { background: #fff; }
684 #main { background: #fff; }
681 #content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; overflow: visible !important;}
685 #content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; overflow: visible !important;}
682 }
686 }
@@ -1,180 +1,184
1
1
2 div.changeset-changes ul { margin: 0; padding: 0; }
2 div.changeset-changes ul { margin: 0; padding: 0; }
3 div.changeset-changes ul > ul { margin-left: 18px; padding: 0; }
3 div.changeset-changes ul > ul { margin-left: 18px; padding: 0; }
4
4
5 li.change {
5 li.change {
6 list-style-type:none;
6 list-style-type:none;
7 background-image: url(../images/bullet_black.png);
7 background-image: url(../images/bullet_black.png);
8 background-position: 1px 1px;
8 background-position: 1px 1px;
9 background-repeat: no-repeat;
9 background-repeat: no-repeat;
10 padding-top: 1px;
10 padding-top: 1px;
11 padding-bottom: 1px;
11 padding-bottom: 1px;
12 padding-left: 20px;
12 padding-left: 20px;
13 margin: 0;
13 margin: 0;
14 }
14 }
15 li.change.folder { background-image: url(../images/folder_open.png); }
15 li.change.folder { background-image: url(../images/folder_open.png); }
16 li.change.folder.change-A { background-image: url(../images/folder_open_add.png); }
16 li.change.folder.change-A { background-image: url(../images/folder_open_add.png); }
17 li.change.folder.change-M { background-image: url(../images/folder_open_orange.png); }
17 li.change.folder.change-M { background-image: url(../images/folder_open_orange.png); }
18 li.change.change-A { background-image: url(../images/bullet_add.png); }
18 li.change.change-A { background-image: url(../images/bullet_add.png); }
19 li.change.change-M { background-image: url(../images/bullet_orange.png); }
19 li.change.change-M { background-image: url(../images/bullet_orange.png); }
20 li.change.change-C { background-image: url(../images/bullet_blue.png); }
20 li.change.change-C { background-image: url(../images/bullet_blue.png); }
21 li.change.change-R { background-image: url(../images/bullet_purple.png); }
21 li.change.change-R { background-image: url(../images/bullet_purple.png); }
22 li.change.change-D { background-image: url(../images/bullet_delete.png); }
22 li.change.change-D { background-image: url(../images/bullet_delete.png); }
23
23
24 li.change .copied-from { font-style: italic; color: #999; font-size: 0.9em; }
24 li.change .copied-from { font-style: italic; color: #999; font-size: 0.9em; }
25 li.change .copied-from:before { content: " - "}
25 li.change .copied-from:before { content: " - "}
26
26
27 #changes-legend { float: right; font-size: 0.8em; margin: 0; }
27 #changes-legend { float: right; font-size: 0.8em; margin: 0; }
28 #changes-legend li { float: left; background-position: 5px 0; }
28 #changes-legend li { float: left; background-position: 5px 0; }
29
29
30 table.filecontent { border: 1px solid #ccc; border-collapse: collapse; width:98%; }
30 table.filecontent { border: 1px solid #ccc; border-collapse: collapse; width:98%; }
31 table.filecontent th { border: 1px solid #ccc; background-color: #eee; }
31 table.filecontent th { border: 1px solid #ccc; background-color: #eee; }
32 table.filecontent th.filename { background-color: #e4e4d4; text-align: left; padding: 0.2em;}
32 table.filecontent th.filename { background-color: #e4e4d4; text-align: left; padding: 0.2em;}
33 table.filecontent tr.spacing th { text-align:center; }
33 table.filecontent tr.spacing th { text-align:center; }
34 table.filecontent tr.spacing td { height: 0.4em; background: #EAF2F5;}
34 table.filecontent tr.spacing td { height: 0.4em; background: #EAF2F5;}
35 table.filecontent th.line-num {
35 table.filecontent th.line-num {
36 border: 1px solid #d7d7d7;
36 border: 1px solid #d7d7d7;
37 font-size: 0.8em;
37 font-size: 0.8em;
38 text-align: right;
38 text-align: right;
39 width: 2%;
39 width: 2%;
40 padding-right: 3px;
40 padding-right: 3px;
41 color: #999;
41 color: #999;
42 }
42 }
43 table.filecontent th.line-num a {
44 text-decoration: none;
45 color: inherit;
46 }
43 table.filecontent td.line-code pre {
47 table.filecontent td.line-code pre {
44 white-space: pre-wrap; /* CSS2.1 compliant */
48 white-space: pre-wrap; /* CSS2.1 compliant */
45 white-space: -moz-pre-wrap; /* Mozilla-based browsers */
49 white-space: -moz-pre-wrap; /* Mozilla-based browsers */
46 white-space: -o-pre-wrap; /* Opera 7+ */
50 white-space: -o-pre-wrap; /* Opera 7+ */
47 }
51 }
48
52
49 /* 12 different colors for the annonate view */
53 /* 12 different colors for the annonate view */
50 table.annotate tr.bloc-0 {background: #FFFFBF;}
54 table.annotate tr.bloc-0 {background: #FFFFBF;}
51 table.annotate tr.bloc-1 {background: #EABFFF;}
55 table.annotate tr.bloc-1 {background: #EABFFF;}
52 table.annotate tr.bloc-2 {background: #BFFFFF;}
56 table.annotate tr.bloc-2 {background: #BFFFFF;}
53 table.annotate tr.bloc-3 {background: #FFD9BF;}
57 table.annotate tr.bloc-3 {background: #FFD9BF;}
54 table.annotate tr.bloc-4 {background: #E6FFBF;}
58 table.annotate tr.bloc-4 {background: #E6FFBF;}
55 table.annotate tr.bloc-5 {background: #BFCFFF;}
59 table.annotate tr.bloc-5 {background: #BFCFFF;}
56 table.annotate tr.bloc-6 {background: #FFBFEF;}
60 table.annotate tr.bloc-6 {background: #FFBFEF;}
57 table.annotate tr.bloc-7 {background: #FFE6BF;}
61 table.annotate tr.bloc-7 {background: #FFE6BF;}
58 table.annotate tr.bloc-8 {background: #FFE680;}
62 table.annotate tr.bloc-8 {background: #FFE680;}
59 table.annotate tr.bloc-9 {background: #AA80FF;}
63 table.annotate tr.bloc-9 {background: #AA80FF;}
60 table.annotate tr.bloc-10 {background: #FFBFDC;}
64 table.annotate tr.bloc-10 {background: #FFBFDC;}
61 table.annotate tr.bloc-11 {background: #BFE4FF;}
65 table.annotate tr.bloc-11 {background: #BFE4FF;}
62
66
63 table.annotate td.revision {
67 table.annotate td.revision {
64 text-align: center;
68 text-align: center;
65 width: 2%;
69 width: 2%;
66 padding-left: 1em;
70 padding-left: 1em;
67 background: inherit;
71 background: inherit;
68 }
72 }
69
73
70 table.annotate td.author {
74 table.annotate td.author {
71 text-align: center;
75 text-align: center;
72 border-right: 1px solid #d7d7d7;
76 border-right: 1px solid #d7d7d7;
73 white-space: nowrap;
77 white-space: nowrap;
74 padding-left: 1em;
78 padding-left: 1em;
75 padding-right: 1em;
79 padding-right: 1em;
76 width: 3%;
80 width: 3%;
77 background: inherit;
81 background: inherit;
78 font-size: 90%;
82 font-size: 90%;
79 }
83 }
80
84
81 table.annotate td.line-code { background-color: #fafafa; }
85 table.annotate td.line-code { background-color: #fafafa; }
82
86
83 div.action_M { background: #fd8 }
87 div.action_M { background: #fd8 }
84 div.action_D { background: #f88 }
88 div.action_D { background: #f88 }
85 div.action_A { background: #bfb }
89 div.action_A { background: #bfb }
86
90
87 /************* Coderay styles *************/
91 /************* Coderay styles *************/
88
92
89 table.CodeRay {
93 table.CodeRay {
90 background-color: #fafafa;
94 background-color: #fafafa;
91 }
95 }
92 .CodeRay pre { margin: 0px }
96 .CodeRay pre { margin: 0px }
93
97
94 span.CodeRay { white-space: pre; border: 0px; padding: 2px }
98 span.CodeRay { white-space: pre; border: 0px; padding: 2px }
95
99
96 .CodeRay .no { padding: 0px 4px }
100 .CodeRay .no { padding: 0px 4px }
97 .CodeRay .code { }
101 .CodeRay .code { }
98
102
99 ol.CodeRay { font-size: 10pt }
103 ol.CodeRay { font-size: 10pt }
100 ol.CodeRay li { white-space: pre }
104 ol.CodeRay li { white-space: pre }
101
105
102 .CodeRay .code pre { overflow: auto }
106 .CodeRay .code pre { overflow: auto }
103
107
104 .CodeRay .debug { color:white ! important; background:blue ! important; }
108 .CodeRay .debug { color:white ! important; background:blue ! important; }
105
109
106 .CodeRay .af { color:#00C }
110 .CodeRay .af { color:#00C }
107 .CodeRay .an { color:#007 }
111 .CodeRay .an { color:#007 }
108 .CodeRay .av { color:#700 }
112 .CodeRay .av { color:#700 }
109 .CodeRay .aw { color:#C00 }
113 .CodeRay .aw { color:#C00 }
110 .CodeRay .bi { color:#509; font-weight:bold }
114 .CodeRay .bi { color:#509; font-weight:bold }
111 .CodeRay .c { color:#666; }
115 .CodeRay .c { color:#666; }
112
116
113 .CodeRay .ch { color:#04D }
117 .CodeRay .ch { color:#04D }
114 .CodeRay .ch .k { color:#04D }
118 .CodeRay .ch .k { color:#04D }
115 .CodeRay .ch .dl { color:#039 }
119 .CodeRay .ch .dl { color:#039 }
116
120
117 .CodeRay .cl { color:#B06; font-weight:bold }
121 .CodeRay .cl { color:#B06; font-weight:bold }
118 .CodeRay .co { color:#036; font-weight:bold }
122 .CodeRay .co { color:#036; font-weight:bold }
119 .CodeRay .cr { color:#0A0 }
123 .CodeRay .cr { color:#0A0 }
120 .CodeRay .cv { color:#369 }
124 .CodeRay .cv { color:#369 }
121 .CodeRay .df { color:#099; font-weight:bold }
125 .CodeRay .df { color:#099; font-weight:bold }
122 .CodeRay .di { color:#088; font-weight:bold }
126 .CodeRay .di { color:#088; font-weight:bold }
123 .CodeRay .dl { color:black }
127 .CodeRay .dl { color:black }
124 .CodeRay .do { color:#970 }
128 .CodeRay .do { color:#970 }
125 .CodeRay .ds { color:#D42; font-weight:bold }
129 .CodeRay .ds { color:#D42; font-weight:bold }
126 .CodeRay .e { color:#666; font-weight:bold }
130 .CodeRay .e { color:#666; font-weight:bold }
127 .CodeRay .en { color:#800; font-weight:bold }
131 .CodeRay .en { color:#800; font-weight:bold }
128 .CodeRay .er { color:#F00; background-color:#FAA }
132 .CodeRay .er { color:#F00; background-color:#FAA }
129 .CodeRay .ex { color:#F00; font-weight:bold }
133 .CodeRay .ex { color:#F00; font-weight:bold }
130 .CodeRay .fl { color:#60E; font-weight:bold }
134 .CodeRay .fl { color:#60E; font-weight:bold }
131 .CodeRay .fu { color:#06B; font-weight:bold }
135 .CodeRay .fu { color:#06B; font-weight:bold }
132 .CodeRay .gv { color:#d70; font-weight:bold }
136 .CodeRay .gv { color:#d70; font-weight:bold }
133 .CodeRay .hx { color:#058; font-weight:bold }
137 .CodeRay .hx { color:#058; font-weight:bold }
134 .CodeRay .i { color:#00D; font-weight:bold }
138 .CodeRay .i { color:#00D; font-weight:bold }
135 .CodeRay .ic { color:#B44; font-weight:bold }
139 .CodeRay .ic { color:#B44; font-weight:bold }
136
140
137 .CodeRay .il { background: #eee }
141 .CodeRay .il { background: #eee }
138 .CodeRay .il .il { background: #ddd }
142 .CodeRay .il .il { background: #ddd }
139 .CodeRay .il .il .il { background: #ccc }
143 .CodeRay .il .il .il { background: #ccc }
140 .CodeRay .il .idl { font-weight: bold; color: #888 }
144 .CodeRay .il .idl { font-weight: bold; color: #888 }
141
145
142 .CodeRay .in { color:#B2B; font-weight:bold }
146 .CodeRay .in { color:#B2B; font-weight:bold }
143 .CodeRay .iv { color:#33B }
147 .CodeRay .iv { color:#33B }
144 .CodeRay .la { color:#970; font-weight:bold }
148 .CodeRay .la { color:#970; font-weight:bold }
145 .CodeRay .lv { color:#963 }
149 .CodeRay .lv { color:#963 }
146 .CodeRay .oc { color:#40E; font-weight:bold }
150 .CodeRay .oc { color:#40E; font-weight:bold }
147 .CodeRay .of { color:#000; font-weight:bold }
151 .CodeRay .of { color:#000; font-weight:bold }
148 .CodeRay .op { }
152 .CodeRay .op { }
149 .CodeRay .pc { color:#038; font-weight:bold }
153 .CodeRay .pc { color:#038; font-weight:bold }
150 .CodeRay .pd { color:#369; font-weight:bold }
154 .CodeRay .pd { color:#369; font-weight:bold }
151 .CodeRay .pp { color:#579 }
155 .CodeRay .pp { color:#579 }
152 .CodeRay .pt { color:#339; font-weight:bold }
156 .CodeRay .pt { color:#339; font-weight:bold }
153 .CodeRay .r { color:#080; font-weight:bold }
157 .CodeRay .r { color:#080; font-weight:bold }
154
158
155 .CodeRay .rx { background-color:#fff0ff }
159 .CodeRay .rx { background-color:#fff0ff }
156 .CodeRay .rx .k { color:#808 }
160 .CodeRay .rx .k { color:#808 }
157 .CodeRay .rx .dl { color:#404 }
161 .CodeRay .rx .dl { color:#404 }
158 .CodeRay .rx .mod { color:#C2C }
162 .CodeRay .rx .mod { color:#C2C }
159 .CodeRay .rx .fu { color:#404; font-weight: bold }
163 .CodeRay .rx .fu { color:#404; font-weight: bold }
160
164
161 .CodeRay .s { background-color:#fff0f0 }
165 .CodeRay .s { background-color:#fff0f0 }
162 .CodeRay .s .s { background-color:#ffe0e0 }
166 .CodeRay .s .s { background-color:#ffe0e0 }
163 .CodeRay .s .s .s { background-color:#ffd0d0 }
167 .CodeRay .s .s .s { background-color:#ffd0d0 }
164 .CodeRay .s .k { color:#D20 }
168 .CodeRay .s .k { color:#D20 }
165 .CodeRay .s .dl { color:#710 }
169 .CodeRay .s .dl { color:#710 }
166
170
167 .CodeRay .sh { background-color:#f0fff0 }
171 .CodeRay .sh { background-color:#f0fff0 }
168 .CodeRay .sh .k { color:#2B2 }
172 .CodeRay .sh .k { color:#2B2 }
169 .CodeRay .sh .dl { color:#161 }
173 .CodeRay .sh .dl { color:#161 }
170
174
171 .CodeRay .sy { color:#A60 }
175 .CodeRay .sy { color:#A60 }
172 .CodeRay .sy .k { color:#A60 }
176 .CodeRay .sy .k { color:#A60 }
173 .CodeRay .sy .dl { color:#630 }
177 .CodeRay .sy .dl { color:#630 }
174
178
175 .CodeRay .ta { color:#070 }
179 .CodeRay .ta { color:#070 }
176 .CodeRay .tf { color:#070; font-weight:bold }
180 .CodeRay .tf { color:#070; font-weight:bold }
177 .CodeRay .ts { color:#D70; font-weight:bold }
181 .CodeRay .ts { color:#D70; font-weight:bold }
178 .CodeRay .ty { color:#339; font-weight:bold }
182 .CodeRay .ty { color:#339; font-weight:bold }
179 .CodeRay .v { color:#036 }
183 .CodeRay .v { color:#036 }
180 .CodeRay .xt { color:#444 }
184 .CodeRay .xt { color:#444 }
General Comments 0
You need to be logged in to leave comments. Login now