@@ -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 | 63 | @history.status = @issue.status |
|
64 | 64 | if @history.save |
|
65 | 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 | 67 | redirect_to :action => 'show', :id => @issue |
|
67 | 68 | return |
|
68 | 69 | end |
@@ -356,6 +356,48 class ProjectsController < ApplicationController | |||
|
356 | 356 | @fixed_issues ||= [] |
|
357 | 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 | 401 | private |
|
360 | 402 | # Find project of id params[:id] |
|
361 | 403 | # if not found, redirect to project list |
@@ -57,7 +57,7 module CustomFieldsHelper | |||
|
57 | 57 | |
|
58 | 58 | case custom_value.custom_field.field_format |
|
59 | 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 | 61 | when "bool" |
|
62 | 62 | l_YesNo(custom_value.value == "1") |
|
63 | 63 | else |
@@ -32,7 +32,7 class Issue < ActiveRecord::Base | |||
|
32 | 32 | has_many :custom_values, :dependent => true, :as => :customized |
|
33 | 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 | 36 | validates_associated :custom_values, :on => :update |
|
37 | 37 | |
|
38 | 38 | # set default status for new issues |
@@ -49,7 +49,7 class Issue < ActiveRecord::Base | |||
|
49 | 49 | def before_create |
|
50 | 50 | build_history |
|
51 | 51 | end |
|
52 | ||
|
52 | ||
|
53 | 53 | def long_id |
|
54 | 54 | "%05d" % self.id |
|
55 | 55 | end |
@@ -18,6 +18,7 | |||
|
18 | 18 | class IssueHistory < ActiveRecord::Base |
|
19 | 19 | belongs_to :status, :class_name => 'IssueStatus', :foreign_key => 'status_id' |
|
20 | 20 | belongs_to :author, :class_name => 'User', :foreign_key => 'author_id' |
|
21 | belongs_to :issue | |
|
21 | 22 | |
|
22 | 23 | validates_presence_of :status |
|
23 | 24 | end |
@@ -21,9 +21,13 class IssueStatus < ActiveRecord::Base | |||
|
21 | 21 | |
|
22 | 22 | validates_presence_of :name |
|
23 | 23 | validates_uniqueness_of :name |
|
24 | validates_length_of :html_color, :is=>6 | |
|
24 | validates_length_of :html_color, :is => 6 | |
|
25 | 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 | 31 | # Returns the default status for new issues |
|
28 | 32 | def self.default |
|
29 | 33 | find(:first, :conditions =>["is_default=?", true]) |
@@ -20,30 +20,38 class Mailer < ActionMailer::Base | |||
|
20 | 20 | def issue_change_status(issue) |
|
21 | 21 | # Sends to all project members |
|
22 | 22 | @recipients = issue.project.members.collect { |m| m.user.mail if m.user.mail_notification } |
|
23 | @from = 'redmine@somenet.foo' | |
|
24 | @subject = "Issue ##{issue.id} has been updated" | |
|
23 | @from = $RDM_MAIL_FROM | |
|
24 | @subject = "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] #{issue.status.name} - #{issue.subject}" | |
|
25 | 25 | @body['issue'] = issue |
|
26 | 26 | end |
|
27 | 27 | |
|
28 | 28 | def issue_add(issue) |
|
29 | 29 | # Sends to all project members |
|
30 | 30 | @recipients = issue.project.members.collect { |m| m.user.mail if m.user.mail_notification } |
|
31 | @from = 'redmine@somenet.foo' | |
|
32 | @subject = "Issue ##{issue.id} has been reported" | |
|
31 | @from = $RDM_MAIL_FROM | |
|
32 | @subject = "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] #{issue.status.name} - #{issue.subject}" | |
|
33 | 33 | @body['issue'] = issue |
|
34 | 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 | 44 | def lost_password(token) |
|
37 | 45 | @recipients = token.user.mail |
|
38 | @from = 'redmine@somenet.foo' | |
|
39 |
@subject = |
|
|
46 | @from = $RDM_MAIL_FROM | |
|
47 | @subject = l(:mail_subject_lost_password) | |
|
40 | 48 | @body['token'] = token |
|
41 | 49 | end |
|
42 | 50 | |
|
43 | 51 | def register(token) |
|
44 | 52 | @recipients = token.user.mail |
|
45 | @from = 'redmine@somenet.foo' | |
|
46 | @subject = "redMine account activation" | |
|
53 | @from = $RDM_MAIL_FROM | |
|
54 | @subject = l(:mail_subject_register) | |
|
47 | 55 | @body['token'] = token |
|
48 | 56 | end |
|
49 | 57 | end |
@@ -23,4 +23,32 | |||
|
23 | 23 | </div> |
|
24 | 24 | <%= f.hidden_field :lock_version %> |
|
25 | 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 | 6 | </div> |
|
7 | 7 | |
|
8 | 8 | <div class="box"> |
|
9 | <p> | |
|
10 | <b><%=l(:field_status)%> :</b> <%= @issue.status.name %>     | |
|
11 | <b><%=l(:field_priority)%> :</b> <%= @issue.priority.name %>     | |
|
12 | <b><%=l(:field_assigned_to)%> :</b> <%= @issue.assigned_to ? @issue.assigned_to.display_name : "-" %>     | |
|
13 | <b><%=l(:field_category)%> :</b> <%= @issue.category ? @issue.category.name : "-" %> | |
|
14 | </p> | |
|
15 | <div class="tabular"> | |
|
16 | <p><label><%=l(:field_author)%> :</label> <%= link_to_user @issue.author %> </p> | |
|
17 | <p><label><%=l(:field_created_on)%> :</label> <%= format_date(@issue.created_on) %> </p> | |
|
18 | <p><label><%=l(:field_subject)%> :</label> <%= @issue.subject %> </p> | |
|
19 | <%= simple_format ("<label>" + l(:field_description) + ": </label>" + auto_link(@issue.description)) %> | |
|
20 | <p><label><%=l(:field_due_date)%> :</label> <%= format_date(@issue.due_date) %> </p> | |
|
9 | <table width="100%"> | |
|
10 | <tr> | |
|
11 | <td width="15%"><b><%=l(:field_status)%> :</b></td><td width="35%"><%= @issue.status.name %></td> | |
|
12 | <td width="15%"><b><%=l(:field_priority)%> :</b></td><td width="35%"><%= @issue.priority.name %></td> | |
|
13 | </tr> | |
|
14 | <tr> | |
|
15 | <td><b><%=l(:field_author)%> :</b></td><td><%= link_to_user @issue.author %></td> | |
|
16 | <td><b><%=l(:field_category)%> :</b></td><td><%= @issue.category ? @issue.category.name : "-" %></td> | |
|
17 | </tr> | |
|
18 | <tr> | |
|
19 | <td><b><%=l(:field_created_on)%> :</b></td><td><%= format_date(@issue.created_on) %></td> | |
|
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 %> | |
|
23 | <p><label><%= custom_value.custom_field.name %> :</label> <%= show_value custom_value %></p> | |
|
24 | <% end %> | |
|
25 | | |
|
26 | </div> | |
|
41 | <b><%=l(:field_description)%> :</b><br /><br /> | |
|
42 | <%= textilize @issue.description %> | |
|
27 | 43 | |
|
44 | <p> | |
|
28 | 45 | <% if authorize_for('issues', 'edit') %> |
|
29 | 46 | <%= start_form_tag ({:controller => 'issues', :action => 'edit', :id => @issue}, :method => "get" ) %> |
|
30 | 47 | <%= submit_tag l(:button_edit) %> |
@@ -57,6 +74,7 | |||
|
57 | 74 | <%= end_form_tag %> |
|
58 | 75 | |
|
59 | 76 | <% end %> |
|
77 | </p> | |
|
60 | 78 | </div> |
|
61 | 79 | |
|
62 | 80 | <% if authorize_for('issues', 'add_note') %> |
@@ -14,6 +14,7 | |||
|
14 | 14 | <%= javascript_include_tag "calendar/lang/calendar-#{current_language}.js" %> |
|
15 | 15 | <%= javascript_include_tag 'calendar/calendar-setup' %> |
|
16 | 16 | <%= stylesheet_link_tag 'calendar' %> |
|
17 | <%= stylesheet_link_tag 'jstoolbar' %> | |
|
17 | 18 | <script type='text/javascript'> |
|
18 | 19 | var menu_contenu=' \ |
|
19 | 20 | <div id="menuAdmin" class="menu" onmouseover="menuMouseover(event)"> \ |
@@ -38,6 +39,7 var menu_contenu=' \ | |||
|
38 | 39 | <div id="menuProject" class="menu" onmouseover="menuMouseover(event)"> \ |
|
39 | 40 | <%= link_to l(:label_issue_plural), {:controller => 'projects', :action => 'list_issues', :id => @project }, :class => "menuItem" %> \ |
|
40 | 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 | 43 | <%= link_to l(:label_news_plural), {:controller => 'projects', :action => 'list_news', :id => @project }, :class => "menuItem" %> \ |
|
42 | 44 | <%= link_to l(:label_change_log), {:controller => 'projects', :action => 'changelog', :id => @project }, :class => "menuItem" %> \ |
|
43 | 45 | <%= link_to l(:label_document_plural), {:controller => 'projects', :action => 'list_documents', :id => @project }, :class => "menuItem" %> \ |
@@ -101,6 +103,7 var menu_contenu=' \ | |||
|
101 | 103 | <li><%= link_to l(:label_overview), :controller => 'projects', :action => 'show', :id => @project %></li> |
|
102 | 104 | <li><%= link_to l(:label_issue_plural), :controller => 'projects', :action => 'list_issues', :id => @project %></li> |
|
103 | 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 | 107 | <li><%= link_to l(:label_news_plural), :controller => 'projects', :action => 'list_news', :id => @project %></li> |
|
105 | 108 | <li><%= link_to l(:label_change_log), :controller => 'projects', :action => 'changelog', :id => @project %></li> |
|
106 | 109 | <li><%= link_to l(:label_document_plural), :controller => 'projects', :action => 'list_documents', :id => @project %></li> |
@@ -1,15 +1,18 | |||
|
1 | 1 | <h2><%=l(:label_change_log)%></h2> |
|
2 | 2 | |
|
3 | <div> | |
|
4 | ||
|
5 | <div class="rightbox" style="width:140px;"> | |
|
3 | 6 | <%= start_form_tag %> |
|
7 | <strong><%=l(:label_tracker_plural)%></strong><br /> | |
|
4 | 8 | <% @trackers.each do |tracker| %> |
|
5 | 9 | <%= check_box_tag "tracker_ids[]", tracker.id, (@selected_tracker_ids.include? tracker.id.to_s) %> |
|
6 | <%= tracker.name %> | |
|
10 | <%= tracker.name %><br /> | |
|
7 | 11 | <% end %> |
|
8 |
|
|
|
9 |
<%= end_form_tag %> |
|
|
10 | | |
|
12 | <p><center><%= submit_tag l(:button_apply), :class => 'button-small' %></center></p> | |
|
13 | <%= end_form_tag %> | |
|
14 | </div> | |
|
11 | 15 | |
|
12 | <div class="box"> | |
|
13 | 16 | <% ver_id = nil |
|
14 | 17 | @fixed_issues.each do |issue| %> |
|
15 | 18 | <% unless ver_id == issue.fixed_version_id %> |
@@ -21,5 +24,4 | |||
|
21 | 24 | end %> |
|
22 | 25 | <li><%= link_to issue.long_id, :controller => 'issues', :action => 'show', :id => issue %> [<%= issue.tracker.name %>]: <%= issue.subject %></li> |
|
23 | 26 | <% end %> |
|
24 | ||
|
25 | 27 | </div> No newline at end of file |
@@ -40,6 +40,9 | |||
|
40 | 40 | # Default langage ('en', 'es', 'fr' are available) |
|
41 | 41 | # $RDM_DEFAULT_LANG = 'en' |
|
42 | 42 | |
|
43 | # Email adress used to send mail notifications | |
|
44 | # $RDM_MAIL_FROM = "redmine@somenet.foo" | |
|
45 | ||
|
43 | 46 | # Page title |
|
44 | 47 | # $RDM_HEADER_TITLE = "Title" |
|
45 | 48 |
@@ -95,6 +95,8 $RDM_STORAGE_PATH ||= "#{RAILS_ROOT}/files" | |||
|
95 | 95 | $RDM_LOGIN_REQUIRED ||= false |
|
96 | 96 | # default langage |
|
97 | 97 | $RDM_DEFAULT_LANG ||= 'en' |
|
98 | # email sender adress | |
|
99 | $RDM_MAIL_FROM ||= "redmine@somenet.foo" | |
|
98 | 100 | |
|
99 | 101 | # page title |
|
100 | 102 | $RDM_HEADER_TITLE ||= "redMine" |
@@ -1,6 +1,6 | |||
|
1 | 1 | class IssueMove < ActiveRecord::Migration |
|
2 | 2 | def self.up |
|
3 |
Permission.create :controller => "projects", :action => "move_issues", :description => "button_move", :sort => 1061, :mail_option => |
|
|
3 | Permission.create :controller => "projects", :action => "move_issues", :description => "button_move", :sort => 1061, :mail_option => 0, :mail_enabled => 0 | |
|
4 | 4 | end |
|
5 | 5 | |
|
6 | 6 | def self.down |
@@ -62,6 +62,9 notice_successful_connection: Erfolgreicher Anschluß. | |||
|
62 | 62 | notice_file_not_found: Erbetene Akte besteht nicht oder ist gelöscht worden. |
|
63 | 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 | 68 | gui_validation_error: 1 Störung |
|
66 | 69 | gui_validation_error_plural: %d Störungen |
|
67 | 70 |
@@ -62,6 +62,9 notice_successful_connection: Successful connection. | |||
|
62 | 62 | notice_file_not_found: Requested file doesn't exist or has been deleted. |
|
63 | 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 | 68 | gui_validation_error: 1 error |
|
66 | 69 | gui_validation_error_plural: %d errors |
|
67 | 70 |
@@ -62,6 +62,9 notice_successful_connection: Successful connection. | |||
|
62 | 62 | notice_file_not_found: Requested file doesn't exist or has been deleted. |
|
63 | 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 | 68 | gui_validation_error: 1 error |
|
66 | 69 | gui_validation_error_plural: %d errores |
|
67 | 70 |
@@ -62,6 +62,9 notice_successful_connection: Connection réussie. | |||
|
62 | 62 | notice_file_not_found: Le fichier demandé n'existe pas ou a été supprimé. |
|
63 | 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 | 68 | gui_validation_error: 1 erreur |
|
66 | 69 | gui_validation_error_plural: %d erreurs |
|
67 | 70 |
@@ -370,6 +370,15 color:#505050; | |||
|
370 | 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 | 382 | .topright{ |
|
374 | 383 | position: absolute; |
|
375 | 384 | right: 25px; |
General Comments 0
You need to be logged in to leave comments.
Login now