@@ -38,7 +38,7 class Journal < ActiveRecord::Base | |||||
38 | :conditions => "#{Journal.table_name}.journalized_type = 'Issue' AND" + |
|
38 | :conditions => "#{Journal.table_name}.journalized_type = 'Issue' AND" + | |
39 | " (#{JournalDetail.table_name}.prop_key = 'status_id' OR #{Journal.table_name}.notes <> '')"} |
|
39 | " (#{JournalDetail.table_name}.prop_key = 'status_id' OR #{Journal.table_name}.notes <> '')"} | |
40 |
|
40 | |||
41 | def save |
|
41 | def save(*args) | |
42 | # Do not save an empty journal |
|
42 | # Do not save an empty journal | |
43 | (details.empty? && notes.blank?) ? false : super |
|
43 | (details.empty? && notes.blank?) ? false : super | |
44 | end |
|
44 | end |
@@ -24,7 +24,7 class News < ActiveRecord::Base | |||||
24 | validates_length_of :title, :maximum => 60 |
|
24 | validates_length_of :title, :maximum => 60 | |
25 | validates_length_of :summary, :maximum => 255 |
|
25 | validates_length_of :summary, :maximum => 255 | |
26 |
|
26 | |||
27 | acts_as_searchable :columns => ['title', "#{table_name}.description"], :include => :project |
|
27 | acts_as_searchable :columns => ['title', 'summary', "#{table_name}.description"], :include => :project | |
28 | acts_as_event :url => Proc.new {|o| {:controller => 'news', :action => 'show', :id => o.id}} |
|
28 | acts_as_event :url => Proc.new {|o| {:controller => 'news', :action => 'show', :id => o.id}} | |
29 | acts_as_activity_provider :find_options => {:include => [:project, :author]}, |
|
29 | acts_as_activity_provider :find_options => {:include => [:project, :author]}, | |
30 | :author_key => :author_id |
|
30 | :author_key => :author_id |
@@ -60,7 +60,7 class Project < ActiveRecord::Base | |||||
60 | validates_associated :repository, :wiki |
|
60 | validates_associated :repository, :wiki | |
61 | validates_length_of :name, :maximum => 30 |
|
61 | validates_length_of :name, :maximum => 30 | |
62 | validates_length_of :homepage, :maximum => 255 |
|
62 | validates_length_of :homepage, :maximum => 255 | |
63 |
validates_length_of :identifier, :in => |
|
63 | validates_length_of :identifier, :in => 1..20 | |
64 | validates_format_of :identifier, :with => /^[a-z0-9\-]*$/ |
|
64 | validates_format_of :identifier, :with => /^[a-z0-9\-]*$/ | |
65 |
|
65 | |||
66 | before_destroy :delete_all_members |
|
66 | before_destroy :delete_all_members |
@@ -7,8 +7,8 | |||||
7 | <%= call_hook(:view_issues_sidebar_issues_bottom) %> |
|
7 | <%= call_hook(:view_issues_sidebar_issues_bottom) %> | |
8 |
|
8 | |||
9 | <% planning_links = [] |
|
9 | <% planning_links = [] | |
10 | planning_links << link_to(l(:label_calendar), :action => 'calendar', :project_id => @project) if User.current.allowed_to?(:view_calendar, @project, :global => true) |
|
10 | planning_links << link_to(l(:label_calendar), :controller => 'issues', :action => 'calendar', :project_id => @project) if User.current.allowed_to?(:view_calendar, @project, :global => true) | |
11 | planning_links << link_to(l(:label_gantt), :action => 'gantt', :project_id => @project) if User.current.allowed_to?(:view_gantt, @project, :global => true) |
|
11 | planning_links << link_to(l(:label_gantt), :controller => 'issues', :action => 'gantt', :project_id => @project) if User.current.allowed_to?(:view_gantt, @project, :global => true) | |
12 | %> |
|
12 | %> | |
13 | <% unless planning_links.empty? %> |
|
13 | <% unless planning_links.empty? %> | |
14 | <h3><%= l(:label_planning) %></h3> |
|
14 | <h3><%= l(:label_planning) %></h3> |
@@ -1,3 +1,3 | |||||
1 | <%= yield %> |
|
1 | <%= yield %> | |
2 | ---------------------------------------- |
|
2 | -- | |
3 | <%= Setting.emails_footer %> |
|
3 | <%= Setting.emails_footer %> |
@@ -11,7 +11,7 | |||||
11 | <p><%= f.text_area :description, :rows => 5, :class => 'wiki-edit' %></p> |
|
11 | <p><%= f.text_area :description, :rows => 5, :class => 'wiki-edit' %></p> | |
12 | <p><%= f.text_field :identifier, :required => true, :disabled => @project.identifier_frozen? %> |
|
12 | <p><%= f.text_field :identifier, :required => true, :disabled => @project.identifier_frozen? %> | |
13 | <% unless @project.identifier_frozen? %> |
|
13 | <% unless @project.identifier_frozen? %> | |
14 |
<br /><em><%= l(:text_length_between, |
|
14 | <br /><em><%= l(:text_length_between, 1, 20) %> <%= l(:text_project_identifier_info) %></em> | |
15 | <% end %></p> |
|
15 | <% end %></p> | |
16 | <p><%= f.text_field :homepage, :size => 60 %></p> |
|
16 | <p><%= f.text_field :homepage, :size => 60 %></p> | |
17 | <p><%= f.check_box :is_public %></p> |
|
17 | <p><%= f.check_box :is_public %></p> |
@@ -31,6 +31,7 | |||||
31 | <%= link_to_attachments @page %> |
|
31 | <%= link_to_attachments @page %> | |
32 |
|
32 | |||
33 | <% if @editable && authorize_for('wiki', 'add_attachment') %> |
|
33 | <% if @editable && authorize_for('wiki', 'add_attachment') %> | |
|
34 | <div id="wiki_add_attachment"> | |||
34 | <p><%= link_to l(:label_attachment_new), {}, :onclick => "Element.show('add_attachment_form'); Element.hide(this); Element.scrollTo('add_attachment_form'); return false;", |
|
35 | <p><%= link_to l(:label_attachment_new), {}, :onclick => "Element.show('add_attachment_form'); Element.hide(this); Element.scrollTo('add_attachment_form'); return false;", | |
35 | :id => 'attach_files_link' %></p> |
|
36 | :id => 'attach_files_link' %></p> | |
36 | <% form_tag({ :controller => 'wiki', :action => 'add_attachment', :page => @page.title }, :multipart => true, :id => "add_attachment_form", :style => "display:none;") do %> |
|
37 | <% form_tag({ :controller => 'wiki', :action => 'add_attachment', :page => @page.title }, :multipart => true, :id => "add_attachment_form", :style => "display:none;") do %> | |
@@ -40,6 +41,7 | |||||
40 | <%= submit_tag l(:button_add) %> |
|
41 | <%= submit_tag l(:button_add) %> | |
41 | <%= link_to l(:button_cancel), {}, :onclick => "Element.hide('add_attachment_form'); Element.show('attach_files_link'); return false;" %> |
|
42 | <%= link_to l(:button_cancel), {}, :onclick => "Element.hide('add_attachment_form'); Element.show('attach_files_link'); return false;" %> | |
42 | <% end %> |
|
43 | <% end %> | |
|
44 | </div> | |||
43 | <% end %> |
|
45 | <% end %> | |
44 |
|
46 | |||
45 | <p class="other-formats"> |
|
47 | <p class="other-formats"> |
@@ -11,9 +11,15 http://www.redmine.org/ | |||||
11 | * Ability to set language for redmine:load_default_data task using REDMINE_LANG environment variable |
|
11 | * Ability to set language for redmine:load_default_data task using REDMINE_LANG environment variable | |
12 | * Rescue Redmine::DefaultData::DataAlreadyLoaded in redmine:load_default_data task |
|
12 | * Rescue Redmine::DefaultData::DataAlreadyLoaded in redmine:load_default_data task | |
13 | * CSS classes to highlight own and assigned issues |
|
13 | * CSS classes to highlight own and assigned issues | |
|
14 | * Hide "New file" link on wiki pages from printing | |||
14 | * Flush buffer when asking for language in redmine:load_default_data task |
|
15 | * Flush buffer when asking for language in redmine:load_default_data task | |
|
16 | * Minimum project identifier length set to 1 | |||
15 | * Fixed: Time entries csv export links for all projects are malformed |
|
17 | * Fixed: Time entries csv export links for all projects are malformed | |
16 | * Fixed: Files without Version aren't visible in the Activity page |
|
18 | * Fixed: Files without Version aren't visible in the Activity page | |
|
19 | * Fixed: Commit logs are centered in the repo browser | |||
|
20 | * Fixed: News summary field content is not searchable | |||
|
21 | * Fixed: Journal#save has a wrong signature | |||
|
22 | * Fixed: Email footer signature convention | |||
17 |
|
23 | |||
18 |
|
24 | |||
19 | == 2009-03-07 v0.8.2 |
|
25 | == 2009-03-07 v0.8.2 |
@@ -104,9 +104,9 tr.entry.file td.filename a { margin-left: 16px; } | |||||
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; } |
|
107 | table.files tr.file td { text-align: center; } | |
108 | tr.file td.filename { text-align: left; padding-left: 24px; } |
|
108 | table.files tr.file td.filename { text-align: left; padding-left: 24px; } | |
109 | tr.file td.digest { font-size: 80%; } |
|
109 | table.files tr.file td.digest { font-size: 80%; } | |
110 |
|
110 | |||
111 | tr.message { height: 2.6em; } |
|
111 | tr.message { height: 2.6em; } | |
112 | tr.message td.last_message { font-size: 80%; } |
|
112 | tr.message td.last_message { font-size: 80%; } | |
@@ -683,4 +683,5 h2 img { vertical-align:middle; } | |||||
683 | #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; } | |
684 | #main { background: #fff; } |
|
684 | #main { background: #fff; } | |
685 | #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;} | |
|
686 | #wiki_add_attachment { display:none; } | |||
686 | } |
|
687 | } |
General Comments 0
You need to be logged in to leave comments.
Login now