Project

General

Profile

« Previous | Next » 

Revision 1046

Admin settings screen split to tabs.
Email notification options moved to this view as a tab and LDAP list is accessible from the 'Authentication' tab.

View differences:

trunk/app/controllers/admin_controller.rb
45 45

  
46 46
    render :action => "projects", :layout => false if request.xhr?
47 47
  end
48

  
49
  def mail_options
50
    @notifiables = %w(issue_added issue_updated news_added document_added file_added message_posted)
51
    if request.post?
52
      settings = (params[:settings] || {}).dup.symbolize_keys
53
      settings[:notified_events] ||= []
54
      settings.each { |name, value| Setting[name] = value }
55
      flash[:notice] = l(:notice_successful_update)
56
      redirect_to :controller => 'admin', :action => 'mail_options'
57
    end
58
  end
59 48
  
60 49
  # Loads the default configuration
61 50
  # (roles, trackers, statuses, workflow, enumerations)
......
82 71
      flash[:error] = l(:notice_email_error, e.message)
83 72
    end
84 73
    ActionMailer::Base.raise_delivery_errors = raise_delivery_errors
85
    redirect_to :action => 'mail_options'
74
    redirect_to :controller => 'settings', :action => 'edit', :tab => 'notifications'
86 75
  end
87 76
  
88 77
  def info
trunk/app/controllers/settings_controller.rb
25 25
  end
26 26

  
27 27
  def edit
28
    if request.post? and params[:settings] and params[:settings].is_a? Hash
29
      params[:settings].each { |name, value| Setting[name] = value }
30
      redirect_to :action => 'edit' and return
28
    @notifiables = %w(issue_added issue_updated news_added document_added file_added message_posted)
29
    if request.post? && params[:settings] && params[:settings].is_a?(Hash)
30
      settings = (params[:settings] || {}).dup.symbolize_keys
31
      settings.each do |name, value|
32
        # remove blank values in array settings
33
        value.delete_if {|v| v.blank? } if value.is_a?(Array)
34
        Setting[name] = value
35
      end
36
      flash[:notice] = l(:notice_successful_update)
37
      redirect_to :action => 'edit', :tab => params[:tab]
31 38
    end
32 39
  end
33 40
  
trunk/app/helpers/settings_helper.rb
16 16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17 17

  
18 18
module SettingsHelper
19
  def administration_settings_tabs
20
    tabs = [{:name => 'general', :partial => 'settings/general', :label => :label_general},
21
            {:name => 'authentication', :partial => 'settings/authentication', :label => :label_authentication},
22
            {:name => 'issues', :partial => 'settings/issues', :label => :label_issue_tracking},
23
            {:name => 'notifications', :partial => 'settings/notifications', :label => l(:field_mail_notification)},
24
            {:name => 'repositories', :partial => 'settings/repositories', :label => :label_repository_plural}
25
            ]
26
  end
19 27
end
trunk/app/views/admin/mail_options.rhtml
1
<div class="contextual">
2
<%= link_to l(:label_send_test_email), :action => 'test_email' %>
3
</div>
4

  
5
<h2><%=l(:field_mail_notification)%></h2>
6

  
7
<% form_tag({:action => 'mail_options'}, :id => 'mail-options-form') do %>
8

  
9
<fieldset class="box tabular settings"><legend><%=l(:label_settings)%></legend>
10
<p><label><%= l(:setting_mail_from) %></label>
11
<%= text_field_tag 'settings[mail_from]', Setting.mail_from, :size => 60 %></p>
12

  
13
<p><label><%= l(:setting_bcc_recipients) %></label>
14
<%= check_box_tag 'settings[bcc_recipients]', 1, Setting.bcc_recipients? %>
15
<%= hidden_field_tag 'settings[bcc_recipients]', 0 %></p>
16
</fieldset>
17

  
18
<fieldset class="box"><legend><%=l(:text_select_mail_notifications)%></legend>
19
<% @notifiables.each do |notifiable| %>
20
  <label><%= check_box_tag 'settings[notified_events][]', notifiable, Setting.notified_events.include?(notifiable) %>
21
  <%= notifiable.humanize %></label><br />
22
<% end %>
23
<p><%= check_all_links('mail-options-form') %></p>
24
</fieldset>
25

  
26
<fieldset class="box"><legend><%= l(:setting_emails_footer) %></legend>
27
<%= text_area_tag 'settings[emails_footer]', Setting.emails_footer, :class => 'wiki-edit', :rows => 5 %>
28
</fieldset>
29

  
30
<%= submit_tag l(:button_save) %>
31
<% end %>
32

  
33
<% html_title(l(:field_mail_notification)) -%>
34 0

  
trunk/app/views/admin/index.rhtml
30 30
<%= link_to l(:label_enumerations), :controller => 'enumerations' %>
31 31
</p>
32 32

  
33
<p class="icon22 icon22-notifications">
34
<%= link_to l(:field_mail_notification), :controller => 'admin', :action => 'mail_options' %>
35
</p>
36

  
37
<p class="icon22 icon22-authent">
38
<%= link_to l(:label_authentication), :controller => 'auth_sources' %>
39
</p>
40

  
41 33
<p class="icon22 icon22-settings">
42 34
<%= link_to l(:label_settings), :controller => 'settings' %>
43 35
</p>
trunk/app/views/settings/_authentication.rhtml
1
<% form_tag({:action => 'edit', :tab => 'authentication'}) do %>
2

  
3
<div class="box tabular settings">
4
<p><label><%= l(:setting_login_required) %></label>
5
<%= check_box_tag 'settings[login_required]', 1, Setting.login_required? %><%= hidden_field_tag 'settings[login_required]', 0 %></p>
6

  
7
<p><label><%= l(:setting_autologin) %></label>
8
<%= select_tag 'settings[autologin]', options_for_select( [[l(:label_disabled), "0"]] + [1, 7, 30, 365].collect{|days| [lwr(:actionview_datehelper_time_in_words_day, days), days.to_s]}, Setting.autologin) %></p>
9

  
10
<p><label><%= l(:setting_self_registration) %></label>
11
<%= select_tag 'settings[self_registration]',
12
      options_for_select( [[l(:label_disabled), "0"],
13
                           [l(:label_registration_activation_by_email), "1"],
14
                           [l(:label_registration_manual_activation), "2"],
15
                           [l(:label_registration_automatic_activation), "3"]
16
                          ], Setting.self_registration ) %></p>
17

  
18
<p><label><%= l(:label_password_lost) %></label>
19
<%= check_box_tag 'settings[lost_password]', 1, Setting.lost_password? %><%= hidden_field_tag 'settings[lost_password]', 0 %></p>
20
</div>
21

  
22
<div style="float:right;">
23
    <%= link_to 'Manage LDAP authentication...', :controller => 'auth_sources', :action => 'list' %>
24
</div>
25

  
26
<%= submit_tag l(:button_save) %>
27
<% end %>
0 28

  
trunk/app/views/settings/_general.rhtml
1
<% form_tag({:action => 'edit'}) do %>
2

  
3
<div class="box tabular settings">
4
<p><label><%= l(:setting_app_title) %></label>
5
<%= text_field_tag 'settings[app_title]', Setting.app_title, :size => 30 %></p>
6

  
7
<p><label><%= l(:setting_welcome_text) %></label>
8
<%= text_area_tag 'settings[welcome_text]', Setting.welcome_text, :cols => 60, :rows => 5, :class => 'wiki-edit' %></p>
9
<%= wikitoolbar_for 'settings[welcome_text]' %>
10

  
11
<p><label><%= l(:label_theme) %></label>
12
<%= select_tag 'settings[ui_theme]', options_for_select( ([[l(:label_default), '']] + Redmine::Themes.themes.collect {|t| [t.name, t.id]}), Setting.ui_theme) %></p>
13

  
14
<p><label><%= l(:setting_default_language) %></label>
15
<%= select_tag 'settings[default_language]', options_for_select( lang_options_for_select(false), Setting.default_language) %></p>
16

  
17
<p><label><%= l(:setting_date_format) %></label>
18
<%= select_tag 'settings[date_format]', options_for_select( [[l(:label_language_based), '']] + Setting::DATE_FORMATS.collect {|f| [Date.today.strftime(f), f]}, Setting.date_format) %></p>
19

  
20
<p><label><%= l(:setting_time_format) %></label>
21
<%= select_tag 'settings[time_format]', options_for_select( [[l(:label_language_based), '']] + Setting::TIME_FORMATS.collect {|f| [Time.now.strftime(f), f]}, Setting.time_format) %></p>
22

  
23
<p><label><%= l(:setting_attachment_max_size) %></label>
24
<%= text_field_tag 'settings[attachment_max_size]', Setting.attachment_max_size, :size => 6 %> KB</p>
25

  
26
<p><label><%= l(:setting_per_page_options) %></label>
27
<%= text_field_tag 'settings[per_page_options]', Setting.per_page_options_array.join(', '), :size => 20 %><br /><em><%= l(:text_comma_separated) %></em></p>
28

  
29
<p><label><%= l(:setting_host_name) %></label>
30
<%= text_field_tag 'settings[host_name]', Setting.host_name, :size => 60 %></p>
31

  
32
<p><label><%= l(:setting_protocol) %></label>
33
<%= select_tag 'settings[protocol]', options_for_select(['http', 'https'], Setting.protocol) %></p>
34

  
35
<p><label><%= l(:setting_text_formatting) %></label>
36
<%= select_tag 'settings[text_formatting]', options_for_select([[l(:label_none), "0"], ["textile", "textile"]], Setting.text_formatting) %></p>
37

  
38
<p><label><%= l(:setting_wiki_compression) %></label>
39
<%= select_tag 'settings[wiki_compression]', options_for_select( [[l(:label_none), 0], ["gzip", "gzip"]], Setting.wiki_compression) %></p>
40

  
41
<p><label><%= l(:setting_feeds_limit) %></label>
42
<%= text_field_tag 'settings[feeds_limit]', Setting.feeds_limit, :size => 6 %></p>
43
</div>
44

  
45
<%= submit_tag l(:button_save) %>
46
<% end %>
0 47

  
trunk/app/views/settings/_issues.rhtml
1
<% form_tag({:action => 'edit', :tab => 'issues'}) do %>
2

  
3
<div class="box tabular settings">
4
<p><label><%= l(:setting_cross_project_issue_relations) %></label>
5
<%= check_box_tag 'settings[cross_project_issue_relations]', 1, Setting.cross_project_issue_relations? %><%= hidden_field_tag 'settings[cross_project_issue_relations]', 0 %></p>
6

  
7
<p><label><%= l(:setting_issues_export_limit) %></label>
8
<%= text_field_tag 'settings[issues_export_limit]', Setting.issues_export_limit, :size => 6 %></p>
9
</div>
10

  
11
<fieldset class="box"><legend><%= l(:setting_issue_list_default_columns) %></legend>
12
<%= hidden_field_tag 'settings[issue_list_default_columns][]', '' %>
13
<p><% Query.new.available_columns.each do |column| %>
14
  <label><%= check_box_tag 'settings[issue_list_default_columns][]', column.name, Setting.issue_list_default_columns.include?(column.name.to_s) %>
15
  <%= column.caption %></label>
16
<% end %></p>
17
</fieldset>
18

  
19
<%= submit_tag l(:button_save) %>
20
<% end %>
0 21

  
trunk/app/views/settings/_notifications.rhtml
1
<% form_tag({:action => 'edit', :tab => 'notifications'}) do %>
2

  
3
<div class="box tabular settings">
4
<p><label><%= l(:setting_mail_from) %></label>
5
<%= text_field_tag 'settings[mail_from]', Setting.mail_from, :size => 60 %></p>
6

  
7
<p><label><%= l(:setting_bcc_recipients) %></label>
8
<%= check_box_tag 'settings[bcc_recipients]', 1, Setting.bcc_recipients? %>
9
<%= hidden_field_tag 'settings[bcc_recipients]', 0 %></p>
10
</div>
11

  
12
<fieldset class="box"><legend><%=l(:text_select_mail_notifications)%></legend>
13
<% @notifiables.each do |notifiable| %>
14
  <label><%= check_box_tag 'settings[notified_events][]', notifiable, Setting.notified_events.include?(notifiable) %>
15
  <%= notifiable.humanize %></label><br />
16
<% end %>
17
<%= hidden_field_tag 'settings[notified_events][]', '' %>
18
<p><%= check_all_links('mail-options-form') %></p>
19
</fieldset>
20

  
21
<fieldset class="box"><legend><%= l(:setting_emails_footer) %></legend>
22
<%= text_area_tag 'settings[emails_footer]', Setting.emails_footer, :class => 'wiki-edit', :rows => 5 %>
23
</fieldset>
24

  
25
<div style="float:right;">
26
<%= link_to l(:label_send_test_email), :controller => 'admin', :action => 'test_email' %>
27
</div>
28

  
29
<%= submit_tag l(:button_save) %>
30
<% end %>
0 31

  
trunk/app/views/settings/_repositories.rhtml
1
<% form_tag({:action => 'edit', :tab => 'repositories'}) do %>
2

  
3
<div class="box tabular settings">
4
<p><label><%= l(:setting_autofetch_changesets) %></label>
5
<%= check_box_tag 'settings[autofetch_changesets]', 1, Setting.autofetch_changesets? %><%= hidden_field_tag 'settings[autofetch_changesets]', 0 %></p>
6

  
7
<p><label><%= l(:setting_sys_api_enabled) %></label>
8
<%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %><%= hidden_field_tag 'settings[sys_api_enabled]', 0 %></p>
9

  
10
<p><label><%= l(:setting_repositories_encodings) %></label>
11
<%= text_field_tag 'settings[repositories_encodings]', Setting.repositories_encodings, :size => 60 %><br /><em><%= l(:text_comma_separated) %></em></p>
12
</div>
13

  
14
<fieldset class="box tabular settings"><legend><%= l(:text_issues_ref_in_commit_messages) %></legend>
15
<p><label><%= l(:setting_commit_ref_keywords) %></label>
16
<%= text_field_tag 'settings[commit_ref_keywords]', Setting.commit_ref_keywords, :size => 30 %><br /><em><%= l(:text_comma_separated) %></em></p>
17

  
18
<p><label><%= l(:setting_commit_fix_keywords) %></label>
19
<%= text_field_tag 'settings[commit_fix_keywords]', Setting.commit_fix_keywords, :size => 30 %>
20
&nbsp;<%= l(:label_applied_status) %>: <%= select_tag 'settings[commit_fix_status_id]', options_for_select( [["", 0]] + IssueStatus.find(:all).collect{|status| [status.name, status.id.to_s]}, Setting.commit_fix_status_id) %>
21
&nbsp;<%= l(:field_done_ratio) %>: <%= select_tag 'settings[commit_fix_done_ratio]', options_for_select( [[l(:label_no_change_option), '']] + ((0..10).to_a.collect {|r| ["#{r*10} %", "#{r*10}"] }), Setting.commit_fix_done_ratio) %>
22
<br /><em><%= l(:text_comma_separated) %></em></p>
23
</fieldset>
24

  
25
<%= submit_tag l(:button_save) %>
26
<% end %>
0 27

  
trunk/app/views/settings/edit.rhtml
1 1
<h2><%= l(:label_settings) %></h2>
2 2

  
3
<% form_tag({:action => 'edit'}) do %>
4
<div class="box tabular settings">
5
<p><label><%= l(:setting_app_title) %></label>
6
<%= text_field_tag 'settings[app_title]', Setting.app_title, :size => 30 %></p>
7

  
8
<p><label><%= l(:setting_app_subtitle) %></label>
9
<%= text_field_tag 'settings[app_subtitle]', Setting.app_subtitle, :size => 60 %></p>
10

  
11
<p><label><%= l(:setting_welcome_text) %></label>
12
<%= text_area_tag 'settings[welcome_text]', Setting.welcome_text, :cols => 60, :rows => 5, :class => 'wiki-edit' %></p>
13
<%= wikitoolbar_for 'settings[welcome_text]' %>
14

  
15
<p><label><%= l(:label_theme) %></label>
16
<%= select_tag 'settings[ui_theme]', options_for_select( ([[l(:label_default), '']] + Redmine::Themes.themes.collect {|t| [t.name, t.id]}), Setting.ui_theme) %></p>
17

  
18
<p><label><%= l(:setting_default_language) %></label>
19
<%= select_tag 'settings[default_language]', options_for_select( lang_options_for_select(false), Setting.default_language) %></p>
20

  
21
<p><label><%= l(:setting_date_format) %></label>
22
<%= select_tag 'settings[date_format]', options_for_select( [[l(:label_language_based), '']] + Setting::DATE_FORMATS.collect {|f| [Date.today.strftime(f), f]}, Setting.date_format) %></p>
23

  
24
<p><label><%= l(:setting_time_format) %></label>
25
<%= select_tag 'settings[time_format]', options_for_select( [[l(:label_language_based), '']] + Setting::TIME_FORMATS.collect {|f| [Time.now.strftime(f), f]}, Setting.time_format) %></p>
26

  
27
<p><label><%= l(:setting_attachment_max_size) %></label>
28
<%= text_field_tag 'settings[attachment_max_size]', Setting.attachment_max_size, :size => 6 %> KB</p>
29

  
30
<p><label><%= l(:setting_per_page_options) %></label>
31
<%= text_field_tag 'settings[per_page_options]', Setting.per_page_options_array.join(', '), :size => 20 %><br /><em><%= l(:text_comma_separated) %></em></p>
32

  
33
<p><label><%= l(:setting_issues_export_limit) %></label>
34
<%= text_field_tag 'settings[issues_export_limit]', Setting.issues_export_limit, :size => 6 %></p>
35

  
36
<p><label><%= l(:setting_cross_project_issue_relations) %></label>
37
<%= check_box_tag 'settings[cross_project_issue_relations]', 1, Setting.cross_project_issue_relations? %><%= hidden_field_tag 'settings[cross_project_issue_relations]', 0 %></p>
38

  
39
<p><label><%= l(:setting_host_name) %></label>
40
<%= text_field_tag 'settings[host_name]', Setting.host_name, :size => 60 %></p>
41

  
42
<p><label><%= l(:setting_protocol) %></label>
43
<%= select_tag 'settings[protocol]', options_for_select(['http', 'https'], Setting.protocol) %></p>
44

  
45
<p><label><%= l(:setting_text_formatting) %></label>
46
<%= select_tag 'settings[text_formatting]', options_for_select([[l(:label_none), "0"], ["textile", "textile"]], Setting.text_formatting) %></p>
47

  
48
<p><label><%= l(:setting_wiki_compression) %></label>
49
<%= select_tag 'settings[wiki_compression]', options_for_select( [[l(:label_none), 0], ["gzip", "gzip"]], Setting.wiki_compression) %></p>
50

  
51
<p><label><%= l(:setting_feeds_limit) %></label>
52
<%= text_field_tag 'settings[feeds_limit]', Setting.feeds_limit, :size => 6 %></p>
53

  
54
<p><label><%= l(:setting_autofetch_changesets) %></label>
55
<%= check_box_tag 'settings[autofetch_changesets]', 1, Setting.autofetch_changesets? %><%= hidden_field_tag 'settings[autofetch_changesets]', 0 %></p>
56

  
57
<p><label><%= l(:setting_sys_api_enabled) %></label>
58
<%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %><%= hidden_field_tag 'settings[sys_api_enabled]', 0 %></p>
59

  
60
<p><label><%= l(:setting_repositories_encodings) %></label>
61
<%= text_field_tag 'settings[repositories_encodings]', Setting.repositories_encodings, :size => 60 %><br /><em><%= l(:text_comma_separated) %></em></p>
3
<div class="tabs">
4
    <ul>
5
    <% administration_settings_tabs.each do |tab| -%>
6
        <li><%= link_to l(tab[:label]), {}, :id => "tab-#{tab[:name]}", :onclick => "showTab('#{tab[:name]}'); this.blur(); return false;" %></li>
7
    <% end -%>
8
    </ul>
62 9
</div>
63 10

  
64
<fieldset class="box"><legend><%= l(:setting_issue_list_default_columns) %></legend>
65
<%= hidden_field_tag 'settings[issue_list_default_columns][]', '' %>
66
<p><% Query.new.available_columns.each do |column| %>
67
  <label><%= check_box_tag 'settings[issue_list_default_columns][]', column.name, Setting.issue_list_default_columns.include?(column.name.to_s) %>
68
  <%= column.caption %></label>
69
<% end %></p>
70
</fieldset>
11
<% administration_settings_tabs.each do |tab| %>
12
    <%= content_tag('div', render(:partial => tab[:partial]), :id => "tab-content-#{tab[:name]}", :class => 'tab-content') %>
13
<% end %>
71 14

  
72
<fieldset class="box tabular"><legend><%= l(:label_authentication) %></legend>
73
<p><label><%= l(:setting_login_required) %></label>
74
<%= check_box_tag 'settings[login_required]', 1, Setting.login_required? %><%= hidden_field_tag 'settings[login_required]', 0 %></p>
15
<%= tab = params[:tab] ? h(params[:tab]) : administration_settings_tabs.first[:name]
16
javascript_tag "showTab('#{tab}');" %>
75 17

  
76
<p><label><%= l(:setting_autologin) %></label>
77
<%= select_tag 'settings[autologin]', options_for_select( [[l(:label_disabled), "0"]] + [1, 7, 30, 365].collect{|days| [lwr(:actionview_datehelper_time_in_words_day, days), days.to_s]}, Setting.autologin) %></p>
78

  
79
<p><label><%= l(:setting_self_registration) %></label>
80
<%= select_tag 'settings[self_registration]',
81
      options_for_select( [[l(:label_disabled), "0"],
82
                           [l(:label_registration_activation_by_email), "1"],
83
                           [l(:label_registration_manual_activation), "2"],
84
                           [l(:label_registration_automatic_activation), "3"]
85
                          ], Setting.self_registration ) %></p>
86

  
87
<p><label><%= l(:label_password_lost) %></label>
88
<%= check_box_tag 'settings[lost_password]', 1, Setting.lost_password? %><%= hidden_field_tag 'settings[lost_password]', 0 %></p>
89
</fieldset>
90

  
91
<fieldset class="box tabular"><legend><%= l(:text_issues_ref_in_commit_messages) %></legend>
92
<p><label><%= l(:setting_commit_ref_keywords) %></label>
93
<%= text_field_tag 'settings[commit_ref_keywords]', Setting.commit_ref_keywords, :size => 30 %><br /><em><%= l(:text_comma_separated) %></em></p>
94

  
95
<p><label><%= l(:setting_commit_fix_keywords) %></label>
96
<%= text_field_tag 'settings[commit_fix_keywords]', Setting.commit_fix_keywords, :size => 30 %>
97
&nbsp;<%= l(:label_applied_status) %>: <%= select_tag 'settings[commit_fix_status_id]', options_for_select( [["", 0]] + IssueStatus.find(:all).collect{|status| [status.name, status.id.to_s]}, Setting.commit_fix_status_id) %>
98
&nbsp;<%= l(:field_done_ratio) %>: <%= select_tag 'settings[commit_fix_done_ratio]', options_for_select( [[l(:label_no_change_option), '']] + ((0..10).to_a.collect {|r| ["#{r*10} %", "#{r*10}"] }), Setting.commit_fix_done_ratio) %>
99
<br /><em><%= l(:text_comma_separated) %></em></p>
100
</fieldset>
101

  
102
<%= submit_tag l(:button_save) %>
103
<% end %>
104

  
105
<% html_title(l(:label_settings)) -%>
18
<% html_title(l(:label_settings), l(:label_administration)) -%>
trunk/lang/bg.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/cs.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/de.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/en.yml
353 353
label_not_contains: doesn't contain
354 354
label_day_plural: days
355 355
label_repository: Repository
356
label_repository_plural: Repositories
356 357
label_browse: Browse
357 358
label_modification: %d change
358 359
label_modification_plural: %d changes
......
463 464
label_display_per_page: 'Per page: %s'
464 465
label_age: Age
465 466
label_change_properties: Change properties
467
label_general: General
466 468

  
467 469
button_login: Login
468 470
button_submit: Submit
trunk/lang/es.yml
562 562
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
563 563
button_update: Update
564 564
label_change_properties: Change properties
565
label_general: General
566
label_repository_plural: Repositories
trunk/lang/fr.yml
353 353
label_not_contains: ne contient pas
354 354
label_day_plural: jours
355 355
label_repository: Dépôt
356
label_repository_plural: Dépôts
356 357
label_browse: Parcourir
357 358
label_modification: %d modification
358 359
label_modification_plural: %d modifications
......
463 464
label_display_per_page: 'Par page: %s'
464 465
label_age: Age
465 466
label_change_properties: Changer les propriétés
467
label_general: Général
466 468

  
467 469
button_login: Connexion
468 470
button_submit: Soumettre
trunk/lang/he.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/it.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/ja.yml
560 560
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
561 561
button_update: Update
562 562
label_change_properties: Change properties
563
label_general: General
564
label_repository_plural: Repositories
trunk/lang/ko.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/nl.yml
560 560
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
561 561
button_update: Update
562 562
label_change_properties: Change properties
563
label_general: General
564
label_repository_plural: Repositories
trunk/lang/pl.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/pt-br.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/pt.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/ro.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/ru.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/sr.yml
560 560
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
561 561
button_update: Update
562 562
label_change_properties: Change properties
563
label_general: General
564
label_repository_plural: Repositories
trunk/lang/sv.yml
560 560
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
561 561
button_update: Update
562 562
label_change_properties: Change properties
563
label_general: General
564
label_repository_plural: Repositories
trunk/lang/zh-tw.yml
559 559
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
560 560
button_update: Update
561 561
label_change_properties: Change properties
562
label_general: General
563
label_repository_plural: Repositories
trunk/lang/zh.yml
562 562
error_can_t_load_default_data: "Default configuration could not be loaded: %s"
563 563
button_update: Update
564 564
label_change_properties: Change properties
565
label_general: General
566
label_repository_plural: Repositories
trunk/test/functional/admin_controller_test.rb
51 51
    assert IssueStatus.find_by_name('Nouveau')
52 52
  end
53 53
  
54
  def test_get_mail_options
55
    get :mail_options
56
    assert_response :success
57
    assert_template 'mail_options'
58
  end
59
  
60
  def test_post_mail_options
61
    post :mail_options, :settings => {'mail_from' => '[email protected]'}
62
    assert_redirected_to 'admin/mail_options'
63
    assert_equal '[email protected]', Setting.mail_from
64
  end
65
  
66 54
  def test_test_email
67 55
    get :test_email
68
    assert_redirected_to 'admin/mail_options'
56
    assert_redirected_to 'settings/edit'
69 57
    mail = ActionMailer::Base.deliveries.last
70 58
    assert_kind_of TMail::Mail, mail
71 59
    user = User.find(1)
trunk/test/functional/settings_controller_test.rb
1
# redMine - project management software
2
# Copyright (C) 2006-2007  Jean-Philippe Lang
3
#
4
# This program is free software; you can redistribute it and/or
5
# modify it under the terms of the GNU General Public License
6
# as published by the Free Software Foundation; either version 2
7
# of the License, or (at your option) any later version.
8
# 
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
# 
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17

  
18
require File.dirname(__FILE__) + '/../test_helper'
19
require 'settings_controller'
20

  
21
# Re-raise errors caught by the controller.
22
class SettingsController; def rescue_action(e) raise e end; end
23

  
24
class SettingsControllerTest < Test::Unit::TestCase
25
  fixtures :users
26
  
27
  def setup
28
    @controller = SettingsController.new
29
    @request    = ActionController::TestRequest.new
30
    @response   = ActionController::TestResponse.new
31
    User.current = nil
32
    @request.session[:user_id] = 1 # admin
33
  end
34
  
35
  def test_get_edit
36
    get :edit
37
    assert_response :success
38
    assert_template 'edit'
39
  end
40
  
41
  def test_post_edit_notifications
42
    post :edit, :settings => {:mail_from => '[email protected]',
43
                              :bcc_recipients  => '0',
44
                              :notified_events => %w(issue_added issue_updated news_added),
45
                              :emails_footer => 'Test footer'
46
                              }
47
    assert_redirected_to 'settings/edit'
48
    assert_equal '[email protected]', Setting.mail_from
49
    assert !Setting.bcc_recipients?
50
    assert_equal %w(issue_added issue_updated news_added), Setting.notified_events
51
    assert_equal 'Test footer', Setting.emails_footer
52
  end
53
end
0 54

  

Also available in: Unified diff