Module: SettingsHelper

Defined in:
app/helpers/settings_helper.rb

Overview

Redmine - project management software Copyright (C) 2006-2014 Jean-Philippe Lang

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Instance Method Summary collapse

Instance Method Details

#administration_settings_tabsObject


21
22
23
24
25
26
27
28
29
30
31
# File 'app/helpers/settings_helper.rb', line 21

def administration_settings_tabs
  tabs = [{:name => 'general', :partial => 'settings/general', :label => :label_general},
          {:name => 'display', :partial => 'settings/display', :label => :label_display},
          {:name => 'authentication', :partial => 'settings/authentication', :label => :label_authentication},
          {:name => 'projects', :partial => 'settings/projects', :label => :label_project_plural},
          {:name => 'issues', :partial => 'settings/issues', :label => :label_issue_tracking},
          {:name => 'notifications', :partial => 'settings/notifications', :label => :field_mail_notification},
          {:name => 'mail_handler', :partial => 'settings/mail_handler', :label => :label_incoming_emails},
          {:name => 'repositories', :partial => 'settings/repositories', :label => :label_repository_plural}
          ]
end

#cross_project_subtasks_optionsObject


117
118
119
120
121
122
123
124
125
126
127
# File 'app/helpers/settings_helper.rb', line 117

def cross_project_subtasks_options
  options = [
    [:label_disabled, ''],
    [:label_cross_project_system, 'system'],
    [:label_cross_project_tree, 'tree'],
    [:label_cross_project_hierarchy, 'hierarchy'],
    [:label_cross_project_descendants, 'descendants']
  ]

  options.map {|label, value| [l(label), value.to_s]}
end

107
108
109
110
111
112
113
114
115
# File 'app/helpers/settings_helper.rb', line 107

def link_copied_issue_options
  options = [
    [:general_text_Yes, 'yes'],
    [:general_text_No, 'no'],
    [:label_ask, 'ask']
  ]

  options.map {|label, value| [l(label), value.to_s]}
end

#notification_field(notifiable) ⇒ Object

Renders a notification field for a Redmine::Notifiable option


86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'app/helpers/settings_helper.rb', line 86

def notification_field(notifiable)
  tag_data = notifiable.parent.present? ?
    {:parent_notifiable => notifiable.parent} :
    {:disables => "input[data-parent-notifiable=#{notifiable.name}]"}

  tag = check_box_tag('settings[notified_events][]',
    notifiable.name,
    Setting.notified_events.include?(notifiable.name),
    :id => nil,
    :data => tag_data)

  text = l_or_humanize(notifiable.name, :prefix => 'label_')

  options = {}
  if notifiable.parent.present?
    options[:class] = "parent"
  end

  (:label, tag + text, options)
end

#setting_check_box(setting, options = {}) ⇒ Object


74
75
76
77
78
# File 'app/helpers/settings_helper.rb', line 74

def setting_check_box(setting, options={})
  setting_label(setting, options).html_safe +
    hidden_field_tag("settings[#{setting}]", 0, :id => nil).html_safe +
      check_box_tag("settings[#{setting}]", 1, Setting.send("#{setting}?"), options).html_safe
end

#setting_label(setting, options = {}) ⇒ Object


80
81
82
83
# File 'app/helpers/settings_helper.rb', line 80

def setting_label(setting, options={})
  label = options.delete(:label)
  label != false ? label_tag("settings_#{setting}", l(label || "setting_#{setting}"), options[:label_options]).html_safe : ''
end

#setting_multiselect(setting, choices, options = {}) ⇒ Object


43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'app/helpers/settings_helper.rb', line 43

def setting_multiselect(setting, choices, options={})
  setting_values = Setting.send(setting)
  setting_values = [] unless setting_values.is_a?(Array)

  ("label", l(options[:label] || "setting_#{setting}")) +
    hidden_field_tag("settings[#{setting}][]", '').html_safe +
    choices.collect do |choice|
      text, value = (choice.is_a?(Array) ? choice : [choice, choice])
      (
        'label',
        check_box_tag(
           "settings[#{setting}][]",
           value,
           setting_values.include?(value),
           :id => nil
         ) + text.to_s,
        :class => (options[:inline] ? 'inline' : 'block')
       )
    end.join.html_safe
end

#setting_select(setting, choices, options = {}) ⇒ Object


33
34
35
36
37
38
39
40
41
# File 'app/helpers/settings_helper.rb', line 33

def setting_select(setting, choices, options={})
  if blank_text = options.delete(:blank)
    choices = [[blank_text.is_a?(Symbol) ? l(blank_text) : blank_text, '']] + choices
  end
  setting_label(setting, options).html_safe +
    select_tag("settings[#{setting}]",
               options_for_select(choices, Setting.send(setting).to_s),
               options).html_safe
end

#setting_text_area(setting, options = {}) ⇒ Object


69
70
71
72
# File 'app/helpers/settings_helper.rb', line 69

def setting_text_area(setting, options={})
  setting_label(setting, options).html_safe +
    text_area_tag("settings[#{setting}]", Setting.send(setting), options).html_safe
end

#setting_text_field(setting, options = {}) ⇒ Object


64
65
66
67
# File 'app/helpers/settings_helper.rb', line 64

def setting_text_field(setting, options={})
  setting_label(setting, options).html_safe +
    text_field_tag("settings[#{setting}]", Setting.send(setting), options).html_safe
end