##// END OF EJS Templates
git-svn-id: http://redmine.rubyforge.org/svn/trunk@38 e93f8b46-1217-0410-a6f0-8f06a7374b81
Jean-Philippe Lang -
r36:3628515b312c
parent child
Show More
@@ -0,0 +1,3
1 Note added to issue #<%= @history.issue_id %> by <%= @history.author.name %>
2 ----------------------------------------
3 <%= @history.notes %> No newline at end of file
@@ -0,0 +1,3
1 Note added to issue #<%= @history.issue_id %> by <%= @history.author.name %>
2 ----------------------------------------
3 <%= @history.notes %> No newline at end of file
@@ -0,0 +1,3
1 Note added to issue #<%= @history.issue_id %> by <%= @history.author.name %>
2 ----------------------------------------
3 <%= @history.notes %> No newline at end of file
@@ -0,0 +1,3
1 Note ajoutée à la demande #<%= @history.issue_id %> par <%= @history.author.name %>
2 ----------------------------------------
3 <%= @history.notes %> No newline at end of file
@@ -0,0 +1,43
1 <h2><%=l(:label_activity)%></h2>
2
3 <div>
4 <div class="rightbox">
5 <%= start_form_tag %>
6 <p>From <%= text_field_tag 'date_from', @date_from, :size => 10, :class => 'button-small' %>
7 and <%= text_field_tag 'days_back', @days_back, :size => 2, :class => 'button-small' %> days back</p>
8 <%= check_box_tag 'show_issues', 1, @show_issues %><%= hidden_field_tag 'show_issues', 0 %> <%=l(:label_issue_plural)%><br />
9 <%= check_box_tag 'show_news', 1, @show_news %><%= hidden_field_tag 'show_news', 0 %> <%=l(:label_news_plural)%><br />
10 <%= check_box_tag 'show_files', 1, @show_files %><%= hidden_field_tag 'show_files', 0 %> <%=l(:label_attachment_plural)%><br />
11 <%= check_box_tag 'show_documents', 1, @show_documents %><%= hidden_field_tag 'show_documents', 0 %> <%=l(:label_document_plural)%><br />
12 <p><center><%= submit_tag l(:button_apply), :class => 'button-small' %></center></p>
13 <%= end_form_tag %>
14 </div>
15 <% @events_by_day.keys.sort {|x,y| y <=> x }.each do |day| %>
16 <h3><%= format_date(day) %></h3>
17 <ul>
18 <% @events_by_day[day].each do |e| %>
19 <li><p>
20 <% if e.is_a? Issue %>
21 <%= e.created_on.strftime("%H:%M") %> <%= e.tracker.name %> <%= link_to e.long_id, :controller => 'issues', :action => 'show', :id => e %> (<%= e.status.name %>): <%= e.subject %><br />
22 <i><%= e.author.name %></i>
23 <% elsif e.is_a? News %>
24 <%= e.created_on.strftime("%H:%M") %> <%=l(:label_news)%>: <%= link_to e.title, :controller => 'news', :action => 'show', :id => e %><br />
25 <% unless e.summary.empty? %><%= e.summary %><br /><% end %>
26 <i><%= e.author.name %></i>
27 <% elsif (e.is_a? Attachment) and (e.container.is_a? Version) %>
28 <%= e.created_on.strftime("%H:%M") %> <%=l(:label_attachment)%> (Version <%= e.container.name %>): <%= link_to e.filename, :controller => 'projects', :action => 'list_files', :id => @project %><br />
29 <i><%= e.author.name %></i>
30 <% elsif (e.is_a? Attachment) and (e.container.is_a? Document) %>
31 <%= e.created_on.strftime("%H:%M") %> <%=l(:label_document)%>: <%= link_to e.container.title, :controller => 'documents', :action => 'show', :id => e %><br />
32 <i><%= e.author.name %></i>
33 <% end %>
34 </p></li>
35
36 <% end %>
37 </ul>
38 <% end %>
39 <br />
40
41
42
43 </div> No newline at end of file
@@ -63,6 +63,7 class IssuesController < ApplicationController
63 @history.status = @issue.status
63 @history.status = @issue.status
64 if @history.save
64 if @history.save
65 flash[:notice] = l(:notice_successful_update)
65 flash[:notice] = l(:notice_successful_update)
66 Mailer.deliver_issue_add_note(@history) if Permission.find_by_controller_and_action(@params[:controller], @params[:action]).mail_enabled?
66 redirect_to :action => 'show', :id => @issue
67 redirect_to :action => 'show', :id => @issue
67 return
68 return
68 end
69 end
@@ -356,6 +356,48 class ProjectsController < ApplicationController
356 @fixed_issues ||= []
356 @fixed_issues ||= []
357 end
357 end
358
358
359 def activity
360 @date_from = begin
361 params[:date_from].to_date
362 rescue
363 end || Date.today
364 @days_back = params[:days_back] ? params[:days_back].to_i : 15
365 @date_to = @date_from - @days_back
366 @events_by_day = {}
367
368 unless params[:show_issues] == "0"
369 @project.issues.find(:all, :include => [:author, :status], :conditions => ["issues.created_on<=? and issues.created_on>=?", @date_from+1, @date_to], :order => "issues.created_on asc" ).each { |i|
370 @events_by_day[i.created_on.to_date] ||= []
371 @events_by_day[i.created_on.to_date] << i
372 }
373 @show_issues = 1
374 end
375
376 unless params[:show_news] == "0"
377 @project.news.find(:all, :conditions => ["news.created_on<=? and news.created_on>=?", @date_from+1, @date_to], :order => "news.created_on asc" ).each { |i|
378 @events_by_day[i.created_on.to_date] ||= []
379 @events_by_day[i.created_on.to_date] << i
380 }
381 @show_news = 1
382 end
383
384 unless params[:show_files] == "0"
385 Attachment.find(:all, :joins => "LEFT JOIN versions ON versions.id = attachments.container_id", :conditions => ["attachments.container_type='Version' and versions.project_id=? and attachments.created_on<=? and attachments.created_on>=?", @project.id, @date_from+1, @date_to], :order => "attachments.created_on asc" ).each { |i|
386 @events_by_day[i.created_on.to_date] ||= []
387 @events_by_day[i.created_on.to_date] << i
388 }
389 @show_files = 1
390 end
391
392 unless params[:show_documentss] == "0"
393 Attachment.find(:all, :joins => "LEFT JOIN documents ON documents.id = attachments.container_id", :conditions => ["attachments.container_type='Document' and documents.project_id=? and attachments.created_on<=? and attachments.created_on>=?", @project.id, @date_from+1, @date_to], :order => "attachments.created_on asc" ).each { |i|
394 @events_by_day[i.created_on.to_date] ||= []
395 @events_by_day[i.created_on.to_date] << i
396 }
397 @show_documents = 1
398 end
399
400 end
359 private
401 private
360 # Find project of id params[:id]
402 # Find project of id params[:id]
361 # if not found, redirect to project list
403 # if not found, redirect to project list
@@ -57,7 +57,7 module CustomFieldsHelper
57
57
58 case custom_value.custom_field.field_format
58 case custom_value.custom_field.field_format
59 when "date"
59 when "date"
60 l_date(custom_value.value.to_date) if custom_value.value
60 custom_value.value.empty? ? "" : l_date(custom_value.value.to_date)
61 when "bool"
61 when "bool"
62 l_YesNo(custom_value.value == "1")
62 l_YesNo(custom_value.value == "1")
63 else
63 else
@@ -32,7 +32,7 class Issue < ActiveRecord::Base
32 has_many :custom_values, :dependent => true, :as => :customized
32 has_many :custom_values, :dependent => true, :as => :customized
33 has_many :custom_fields, :through => :custom_values
33 has_many :custom_fields, :through => :custom_values
34
34
35 validates_presence_of :subject, :description, :priority, :tracker, :author
35 validates_presence_of :subject, :description, :priority, :tracker, :author, :status
36 validates_associated :custom_values, :on => :update
36 validates_associated :custom_values, :on => :update
37
37
38 # set default status for new issues
38 # set default status for new issues
@@ -49,7 +49,7 class Issue < ActiveRecord::Base
49 def before_create
49 def before_create
50 build_history
50 build_history
51 end
51 end
52
52
53 def long_id
53 def long_id
54 "%05d" % self.id
54 "%05d" % self.id
55 end
55 end
@@ -18,6 +18,7
18 class IssueHistory < ActiveRecord::Base
18 class IssueHistory < ActiveRecord::Base
19 belongs_to :status, :class_name => 'IssueStatus', :foreign_key => 'status_id'
19 belongs_to :status, :class_name => 'IssueStatus', :foreign_key => 'status_id'
20 belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
20 belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
21 belongs_to :issue
21
22
22 validates_presence_of :status
23 validates_presence_of :status
23 end
24 end
@@ -21,9 +21,13 class IssueStatus < ActiveRecord::Base
21
21
22 validates_presence_of :name
22 validates_presence_of :name
23 validates_uniqueness_of :name
23 validates_uniqueness_of :name
24 validates_length_of :html_color, :is=>6
24 validates_length_of :html_color, :is => 6
25 validates_format_of :html_color, :with => /^[a-f0-9]*$/i
25 validates_format_of :html_color, :with => /^[a-f0-9]*$/i
26
26
27 def before_save
28 IssueStatus.update_all "is_default=false" if self.is_default?
29 end
30
27 # Returns the default status for new issues
31 # Returns the default status for new issues
28 def self.default
32 def self.default
29 find(:first, :conditions =>["is_default=?", true])
33 find(:first, :conditions =>["is_default=?", true])
@@ -20,30 +20,38 class Mailer < ActionMailer::Base
20 def issue_change_status(issue)
20 def issue_change_status(issue)
21 # Sends to all project members
21 # Sends to all project members
22 @recipients = issue.project.members.collect { |m| m.user.mail if m.user.mail_notification }
22 @recipients = issue.project.members.collect { |m| m.user.mail if m.user.mail_notification }
23 @from = 'redmine@somenet.foo'
23 @from = $RDM_MAIL_FROM
24 @subject = "Issue ##{issue.id} has been updated"
24 @subject = "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] #{issue.status.name} - #{issue.subject}"
25 @body['issue'] = issue
25 @body['issue'] = issue
26 end
26 end
27
27
28 def issue_add(issue)
28 def issue_add(issue)
29 # Sends to all project members
29 # Sends to all project members
30 @recipients = issue.project.members.collect { |m| m.user.mail if m.user.mail_notification }
30 @recipients = issue.project.members.collect { |m| m.user.mail if m.user.mail_notification }
31 @from = 'redmine@somenet.foo'
31 @from = $RDM_MAIL_FROM
32 @subject = "Issue ##{issue.id} has been reported"
32 @subject = "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] #{issue.status.name} - #{issue.subject}"
33 @body['issue'] = issue
33 @body['issue'] = issue
34 end
34 end
35
35
36 def issue_add_note(history)
37 # Sends to all project members
38 @recipients = history.issue.project.members.collect { |m| m.user.mail if m.user.mail_notification }
39 @from = $RDM_MAIL_FROM
40 @subject = "[#{history.issue.project.name} - #{history.issue.tracker.name} ##{history.issue.id}] #{history.issue.status.name} - #{history.issue.subject}"
41 @body['history'] = history
42 end
43
36 def lost_password(token)
44 def lost_password(token)
37 @recipients = token.user.mail
45 @recipients = token.user.mail
38 @from = 'redmine@somenet.foo'
46 @from = $RDM_MAIL_FROM
39 @subject = "redMine password"
47 @subject = l(:mail_subject_lost_password)
40 @body['token'] = token
48 @body['token'] = token
41 end
49 end
42
50
43 def register(token)
51 def register(token)
44 @recipients = token.user.mail
52 @recipients = token.user.mail
45 @from = 'redmine@somenet.foo'
53 @from = $RDM_MAIL_FROM
46 @subject = "redMine account activation"
54 @subject = l(:mail_subject_register)
47 @body['token'] = token
55 @body['token'] = token
48 end
56 end
49 end
57 end
@@ -23,4 +23,32
23 </div>
23 </div>
24 <%= f.hidden_field :lock_version %>
24 <%= f.hidden_field :lock_version %>
25 <%= submit_tag l(:button_save) %>
25 <%= submit_tag l(:button_save) %>
26 <% end %> No newline at end of file
26 <% end %>
27
28 <%= javascript_include_tag 'jstoolbar' %>
29 <script type="text/javascript">
30 //<![CDATA[
31 jsToolBar.prototype.base_url = 'http://callmepep.org';
32 jsToolBar.prototype.legend_msg = 'You can use the following shortcuts to format your text.';
33 jsToolBar.prototype.elements.strong.title = 'Strong emphasis';
34 jsToolBar.prototype.elements.em.title = 'Emphasis';
35 jsToolBar.prototype.elements.ins.title = 'Inserted';
36 jsToolBar.prototype.elements.del.title = 'Deleted';
37 jsToolBar.prototype.elements.quote.title = 'Inline quote';
38 jsToolBar.prototype.elements.code.title = 'Code';
39 jsToolBar.prototype.elements.br.title = 'Line break';
40 jsToolBar.prototype.elements.ul.title = 'Unordered list';
41 jsToolBar.prototype.elements.ol.title = 'Ordered list';
42 jsToolBar.prototype.elements.link.title = 'Link';
43 jsToolBar.prototype.elements.link.href_prompt = 'URL?';
44 jsToolBar.prototype.elements.link.hreflang_prompt = 'Language?';
45
46 if (document.getElementById) {
47 if (document.getElementById('issue_description')) {
48 var commentTb = new jsToolBar(document.getElementById('issue_description'));
49 commentTb.draw();
50 }
51 }
52
53 //]]>
54 </script> No newline at end of file
@@ -6,25 +6,42
6 </div>
6 </div>
7
7
8 <div class="box">
8 <div class="box">
9 <p>
9 <table width="100%">
10 <b><%=l(:field_status)%> :</b> <%= @issue.status.name %> &nbsp &nbsp
10 <tr>
11 <b><%=l(:field_priority)%> :</b> <%= @issue.priority.name %> &nbsp &nbsp
11 <td width="15%"><b><%=l(:field_status)%> :</b></td><td width="35%"><%= @issue.status.name %></td>
12 <b><%=l(:field_assigned_to)%> :</b> <%= @issue.assigned_to ? @issue.assigned_to.display_name : "-" %> &nbsp &nbsp
12 <td width="15%"><b><%=l(:field_priority)%> :</b></td><td width="35%"><%= @issue.priority.name %></td>
13 <b><%=l(:field_category)%> :</b> <%= @issue.category ? @issue.category.name : "-" %>
13 </tr>
14 </p>
14 <tr>
15 <div class="tabular">
15 <td><b><%=l(:field_author)%> :</b></td><td><%= link_to_user @issue.author %></td>
16 <p><label><%=l(:field_author)%> :</label> <%= link_to_user @issue.author %>&nbsp;</p>
16 <td><b><%=l(:field_category)%> :</b></td><td><%= @issue.category ? @issue.category.name : "-" %></td>
17 <p><label><%=l(:field_created_on)%> :</label> <%= format_date(@issue.created_on) %>&nbsp;</p>
17 </tr>
18 <p><label><%=l(:field_subject)%> :</label> <%= @issue.subject %>&nbsp;</p>
18 <tr>
19 <%= simple_format ("<label>" + l(:field_description) + ": </label>" + auto_link(@issue.description)) %>
19 <td><b><%=l(:field_created_on)%> :</b></td><td><%= format_date(@issue.created_on) %></td>
20 <p><label><%=l(:field_due_date)%> :</label> <%= format_date(@issue.due_date) %>&nbsp;</p>
20 <td><b><%=l(:field_assigned_to)%> :</b></td><td><%= @issue.assigned_to ? @issue.assigned_to.name : "-" %></td>
21 </tr>
22 <tr>
23 <td><b><%=l(:field_updated_on)%> :</b></td><td><%= format_date(@issue.updated_on) %></td>
24 <td><b><%=l(:field_due_date)%> :</b></td><td><%= format_date(@issue.due_date) %></td>
25 </tr>
26 <tr>
27 <% n = 0
28 for custom_value in @custom_values %>
29 <td><b><%= custom_value.custom_field.name %> :</b></td><td><%= show_value custom_value %></td>
30 <% n = n + 1
31 if (n > 1)
32 n = 0 %>
33 </tr><tr>
34 <%end
35 end %>
36 </tr>
37 </table>
38 <hr />
39 <br />
21
40
22 <% for custom_value in @custom_values %>
41 <b><%=l(:field_description)%> :</b><br /><br />
23 <p><label><%= custom_value.custom_field.name %> :</label> <%= show_value custom_value %></p>
42 <%= textilize @issue.description %>
24 <% end %>
25 &nbsp;
26 </div>
27
43
44 <p>
28 <% if authorize_for('issues', 'edit') %>
45 <% if authorize_for('issues', 'edit') %>
29 <%= start_form_tag ({:controller => 'issues', :action => 'edit', :id => @issue}, :method => "get" ) %>
46 <%= start_form_tag ({:controller => 'issues', :action => 'edit', :id => @issue}, :method => "get" ) %>
30 <%= submit_tag l(:button_edit) %>
47 <%= submit_tag l(:button_edit) %>
@@ -57,6 +74,7
57 <%= end_form_tag %>
74 <%= end_form_tag %>
58 &nbsp;&nbsp;
75 &nbsp;&nbsp;
59 <% end %>
76 <% end %>
77 </p>
60 </div>
78 </div>
61
79
62 <% if authorize_for('issues', 'add_note') %>
80 <% if authorize_for('issues', 'add_note') %>
@@ -14,6 +14,7
14 <%= javascript_include_tag "calendar/lang/calendar-#{current_language}.js" %>
14 <%= javascript_include_tag "calendar/lang/calendar-#{current_language}.js" %>
15 <%= javascript_include_tag 'calendar/calendar-setup' %>
15 <%= javascript_include_tag 'calendar/calendar-setup' %>
16 <%= stylesheet_link_tag 'calendar' %>
16 <%= stylesheet_link_tag 'calendar' %>
17 <%= stylesheet_link_tag 'jstoolbar' %>
17 <script type='text/javascript'>
18 <script type='text/javascript'>
18 var menu_contenu=' \
19 var menu_contenu=' \
19 <div id="menuAdmin" class="menu" onmouseover="menuMouseover(event)"> \
20 <div id="menuAdmin" class="menu" onmouseover="menuMouseover(event)"> \
@@ -38,6 +39,7 var menu_contenu=' \
38 <div id="menuProject" class="menu" onmouseover="menuMouseover(event)"> \
39 <div id="menuProject" class="menu" onmouseover="menuMouseover(event)"> \
39 <%= link_to l(:label_issue_plural), {:controller => 'projects', :action => 'list_issues', :id => @project }, :class => "menuItem" %> \
40 <%= link_to l(:label_issue_plural), {:controller => 'projects', :action => 'list_issues', :id => @project }, :class => "menuItem" %> \
40 <%= link_to l(:label_report_plural), {:controller => 'reports', :action => 'issue_report', :id => @project }, :class => "menuItem" %> \
41 <%= link_to l(:label_report_plural), {:controller => 'reports', :action => 'issue_report', :id => @project }, :class => "menuItem" %> \
42 <%= link_to l(:label_activity), {:controller => 'projects', :action => 'activity', :id => @project }, :class => "menuItem" %> \
41 <%= link_to l(:label_news_plural), {:controller => 'projects', :action => 'list_news', :id => @project }, :class => "menuItem" %> \
43 <%= link_to l(:label_news_plural), {:controller => 'projects', :action => 'list_news', :id => @project }, :class => "menuItem" %> \
42 <%= link_to l(:label_change_log), {:controller => 'projects', :action => 'changelog', :id => @project }, :class => "menuItem" %> \
44 <%= link_to l(:label_change_log), {:controller => 'projects', :action => 'changelog', :id => @project }, :class => "menuItem" %> \
43 <%= link_to l(:label_document_plural), {:controller => 'projects', :action => 'list_documents', :id => @project }, :class => "menuItem" %> \
45 <%= link_to l(:label_document_plural), {:controller => 'projects', :action => 'list_documents', :id => @project }, :class => "menuItem" %> \
@@ -101,6 +103,7 var menu_contenu=' \
101 <li><%= link_to l(:label_overview), :controller => 'projects', :action => 'show', :id => @project %></li>
103 <li><%= link_to l(:label_overview), :controller => 'projects', :action => 'show', :id => @project %></li>
102 <li><%= link_to l(:label_issue_plural), :controller => 'projects', :action => 'list_issues', :id => @project %></li>
104 <li><%= link_to l(:label_issue_plural), :controller => 'projects', :action => 'list_issues', :id => @project %></li>
103 <li><%= link_to l(:label_report_plural), :controller => 'reports', :action => 'issue_report', :id => @project %></li>
105 <li><%= link_to l(:label_report_plural), :controller => 'reports', :action => 'issue_report', :id => @project %></li>
106 <li><%= link_to l(:label_activity), :controller => 'projects', :action => 'activity', :id => @project %></li>
104 <li><%= link_to l(:label_news_plural), :controller => 'projects', :action => 'list_news', :id => @project %></li>
107 <li><%= link_to l(:label_news_plural), :controller => 'projects', :action => 'list_news', :id => @project %></li>
105 <li><%= link_to l(:label_change_log), :controller => 'projects', :action => 'changelog', :id => @project %></li>
108 <li><%= link_to l(:label_change_log), :controller => 'projects', :action => 'changelog', :id => @project %></li>
106 <li><%= link_to l(:label_document_plural), :controller => 'projects', :action => 'list_documents', :id => @project %></li>
109 <li><%= link_to l(:label_document_plural), :controller => 'projects', :action => 'list_documents', :id => @project %></li>
@@ -1,15 +1,18
1 <h2><%=l(:label_change_log)%></h2>
1 <h2><%=l(:label_change_log)%></h2>
2
2
3 <div>
4
5 <div class="rightbox" style="width:140px;">
3 <%= start_form_tag %>
6 <%= start_form_tag %>
7 <strong><%=l(:label_tracker_plural)%></strong><br />
4 <% @trackers.each do |tracker| %>
8 <% @trackers.each do |tracker| %>
5 <%= check_box_tag "tracker_ids[]", tracker.id, (@selected_tracker_ids.include? tracker.id.to_s) %>
9 <%= check_box_tag "tracker_ids[]", tracker.id, (@selected_tracker_ids.include? tracker.id.to_s) %>
6 <%= tracker.name %>
10 <%= tracker.name %><br />
7 <% end %>
11 <% end %>
8 &nbsp;&nbsp;<%= submit_tag l(:button_apply), :class => 'button-small' %>
12 <p><center><%= submit_tag l(:button_apply), :class => 'button-small' %></center></p>
9 <%= end_form_tag %><br />
13 <%= end_form_tag %>
10 &nbsp;
14 </div>
11
15
12 <div class="box">
13 <% ver_id = nil
16 <% ver_id = nil
14 @fixed_issues.each do |issue| %>
17 @fixed_issues.each do |issue| %>
15 <% unless ver_id == issue.fixed_version_id %>
18 <% unless ver_id == issue.fixed_version_id %>
@@ -21,5 +24,4
21 end %>
24 end %>
22 <li><%= link_to issue.long_id, :controller => 'issues', :action => 'show', :id => issue %> [<%= issue.tracker.name %>]: <%= issue.subject %></li>
25 <li><%= link_to issue.long_id, :controller => 'issues', :action => 'show', :id => issue %> [<%= issue.tracker.name %>]: <%= issue.subject %></li>
23 <% end %>
26 <% end %>
24
25 </div> No newline at end of file
27 </div>
@@ -40,6 +40,9
40 # Default langage ('en', 'es', 'fr' are available)
40 # Default langage ('en', 'es', 'fr' are available)
41 # $RDM_DEFAULT_LANG = 'en'
41 # $RDM_DEFAULT_LANG = 'en'
42
42
43 # Email adress used to send mail notifications
44 # $RDM_MAIL_FROM = "redmine@somenet.foo"
45
43 # Page title
46 # Page title
44 # $RDM_HEADER_TITLE = "Title"
47 # $RDM_HEADER_TITLE = "Title"
45
48
@@ -95,6 +95,8 $RDM_STORAGE_PATH ||= "#{RAILS_ROOT}/files"
95 $RDM_LOGIN_REQUIRED ||= false
95 $RDM_LOGIN_REQUIRED ||= false
96 # default langage
96 # default langage
97 $RDM_DEFAULT_LANG ||= 'en'
97 $RDM_DEFAULT_LANG ||= 'en'
98 # email sender adress
99 $RDM_MAIL_FROM ||= "redmine@somenet.foo"
98
100
99 # page title
101 # page title
100 $RDM_HEADER_TITLE ||= "redMine"
102 $RDM_HEADER_TITLE ||= "redMine"
@@ -1,6 +1,6
1 class IssueMove < ActiveRecord::Migration
1 class IssueMove < ActiveRecord::Migration
2 def self.up
2 def self.up
3 Permission.create :controller => "projects", :action => "move_issues", :description => "button_move", :sort => 1061, :mail_option => 1, :mail_enabled => 0
3 Permission.create :controller => "projects", :action => "move_issues", :description => "button_move", :sort => 1061, :mail_option => 0, :mail_enabled => 0
4 end
4 end
5
5
6 def self.down
6 def self.down
@@ -62,6 +62,9 notice_successful_connection: Erfolgreicher Anschluß.
62 notice_file_not_found: Erbetene Akte besteht nicht oder ist gelöscht worden.
62 notice_file_not_found: Erbetene Akte besteht nicht oder ist gelöscht worden.
63 notice_locking_conflict: Data have been updated by another user.
63 notice_locking_conflict: Data have been updated by another user.
64
64
65 #mail_subject_lost_password: Your redMine password
66 #mail_subject_register: redMine account activation
67
65 gui_validation_error: 1 Störung
68 gui_validation_error: 1 Störung
66 gui_validation_error_plural: %d Störungen
69 gui_validation_error_plural: %d Störungen
67
70
@@ -62,6 +62,9 notice_successful_connection: Successful connection.
62 notice_file_not_found: Requested file doesn't exist or has been deleted.
62 notice_file_not_found: Requested file doesn't exist or has been deleted.
63 notice_locking_conflict: Data have been updated by another user.
63 notice_locking_conflict: Data have been updated by another user.
64
64
65 mail_subject_lost_password: Your redMine password
66 mail_subject_register: redMine account activation
67
65 gui_validation_error: 1 error
68 gui_validation_error: 1 error
66 gui_validation_error_plural: %d errors
69 gui_validation_error_plural: %d errors
67
70
@@ -62,6 +62,9 notice_successful_connection: Successful connection.
62 notice_file_not_found: Requested file doesn't exist or has been deleted.
62 notice_file_not_found: Requested file doesn't exist or has been deleted.
63 notice_locking_conflict: Data have been updated by another user.
63 notice_locking_conflict: Data have been updated by another user.
64
64
65 #mail_subject_lost_password: Your redMine password
66 #mail_subject_register: redMine account activation
67
65 gui_validation_error: 1 error
68 gui_validation_error: 1 error
66 gui_validation_error_plural: %d errores
69 gui_validation_error_plural: %d errores
67
70
@@ -62,6 +62,9 notice_successful_connection: Connection réussie.
62 notice_file_not_found: Le fichier demandé n'existe pas ou a été supprimé.
62 notice_file_not_found: Le fichier demandé n'existe pas ou a été supprimé.
63 notice_locking_conflict: Les données ont été mises à jour par un autre utilisateur. Mise à jour impossible.
63 notice_locking_conflict: Les données ont été mises à jour par un autre utilisateur. Mise à jour impossible.
64
64
65 mail_subject_lost_password: Votre mot de passe redMine
66 mail_subject_register: Activation de votre compte redMine
67
65 gui_validation_error: 1 erreur
68 gui_validation_error: 1 erreur
66 gui_validation_error_plural: %d erreurs
69 gui_validation_error_plural: %d erreurs
67
70
@@ -370,6 +370,15 color:#505050;
370 line-height:1.5em;
370 line-height:1.5em;
371 }
371 }
372
372
373 .rightbox{
374 background: #fafbfc;
375 border: 1px solid #c0c0c0;
376 float: right;
377 padding: 8px;
378 position: relative;
379 margin: 0 5px 5px;
380 }
381
373 .topright{
382 .topright{
374 position: absolute;
383 position: absolute;
375 right: 25px;
384 right: 25px;
General Comments 0
You need to be logged in to leave comments. Login now