Module: SettingsHelper

Defined in:
app/helpers/settings_helper.rb

Overview

Redmine - project management software Copyright (C) 2006-2016 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.

Since:

  • 0.4.2

Instance Method Summary collapse

Instance Method Details

#administration_settings_tabsObject

Since:

  • 0.7.0



21
22
23
24
25
26
27
28
29
30
31
32
33
# 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 => 'api', :partial => 'settings/api', :label => :label_api},
          {:name => 'projects', :partial => 'settings/projects', :label => :label_project_plural},
          {:name => 'issues', :partial => 'settings/issues', :label => :label_issue_tracking},
          {:name => 'attachments', :partial => 'settings/attachments', :label => :label_attachment_plural},
          {: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

Since:

  • 2.2.0



143
144
145
146
147
148
149
150
151
152
153
# File 'app/helpers/settings_helper.rb', line 143

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

#date_format_setting_options(locale) ⇒ Object

Returns the options for the date_format setting

Since:

  • 3.1.0



183
184
185
186
187
188
189
190
191
# File 'app/helpers/settings_helper.rb', line 183

def date_format_setting_options(locale)
  Setting::DATE_FORMATS.map do |f|
    today = ::I18n.l(User.current.today, :locale => locale, :format => f)
    format = f.gsub('%', '').gsub(/[dmY]/) do
      {'d' => 'dd', 'm' => 'mm', 'Y' => 'yyyy'}[$&]
    end
    ["#{today} (#{format})", f]
  end
end

Since:

  • 3.0.0



133
134
135
136
137
138
139
140
141
# File 'app/helpers/settings_helper.rb', line 133

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

Since:

  • 1.1.0



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'app/helpers/settings_helper.rb', line 93

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

#parent_issue_dates_optionsObject

Since:

  • 3.1.0



155
156
157
158
159
160
161
162
# File 'app/helpers/settings_helper.rb', line 155

def parent_issue_dates_options
  options = [
    [:label_parent_task_attributes_derived, 'derived'],
    [:label_parent_task_attributes_independent, 'independent']
  ]

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

#parent_issue_done_ratio_optionsObject

Since:

  • 3.1.0



173
174
175
176
177
178
179
180
# File 'app/helpers/settings_helper.rb', line 173

def parent_issue_done_ratio_options
  options = [
    [:label_parent_task_attributes_derived, 'derived'],
    [:label_parent_task_attributes_independent, 'independent']
  ]

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

#parent_issue_priority_optionsObject

Since:

  • 3.1.0



164
165
166
167
168
169
170
171
# File 'app/helpers/settings_helper.rb', line 164

def parent_issue_priority_options
  options = [
    [:label_parent_task_attributes_derived, 'derived'],
    [:label_parent_task_attributes_independent, 'independent']
  ]

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

#session_lifetime_optionsObject

Since:

  • 3.2.0



114
115
116
117
118
119
120
121
122
123
# File 'app/helpers/settings_helper.rb', line 114

def session_lifetime_options
  options = [[l(:label_disabled), 0]]
  options += [4, 8, 12].map {|hours|
    [l('datetime.distance_in_words.x_hours', :count => hours), (hours * 60).to_s]
  }
  options += [1, 7, 30, 60, 365].map {|days|
    [l('datetime.distance_in_words.x_days', :count => days), (days * 24 * 60).to_s]
  }
  options
end

#session_timeout_optionsObject

Since:

  • 3.2.0



125
126
127
128
129
130
131
# File 'app/helpers/settings_helper.rb', line 125

def session_timeout_options
  options = [[l(:label_disabled), 0]]
  options += [1, 2, 4, 8, 12, 24, 48].map {|hours|
    [l('datetime.distance_in_words.x_hours', :count => hours), (hours * 60).to_s]
  }
  options
end

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

Since:

  • 0.9.0



76
77
78
79
80
# File 'app/helpers/settings_helper.rb', line 76

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

Since:

  • 0.9.0



82
83
84
85
86
87
88
89
90
# File 'app/helpers/settings_helper.rb', line 82

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

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

Since:

  • 0.9.0



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

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

Since:

  • 0.9.0



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

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

Since:

  • 0.9.0



71
72
73
74
# File 'app/helpers/settings_helper.rb', line 71

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

Since:

  • 0.9.0



66
67
68
69
# File 'app/helpers/settings_helper.rb', line 66

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