##// END OF EJS Templates
replace Mailer deliver syntax to Rails3 style at reminders method of mailer model...
replace Mailer deliver syntax to Rails3 style at reminders method of mailer model git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9662 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r9425:c085367bb63b
r9479:804864beca1c
Show More
custom_fields_helper.rb
156 lines | 6.8 KiB | text/x-ruby | RubyLexer
/ app / helpers / custom_fields_helper.rb
Jean-Philippe Lang
Added encoding comment to helpers (#9792)....
r8090 # encoding: utf-8
#
Jean-Philippe Lang
Fixed: unknown custom field format causes error when editing/bulk editing (#7985)....
r5094 # Redmine - project management software
Jean-Philippe Lang
Extracts custom field values validation from CustomValue so that they can be validated globally from the customized object (#1189)....
r8597 # Copyright (C) 2006-2012 Jean-Philippe Lang
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 #
# 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.
Toshi MARUYAMA
remove trailing white-spaces from app/helpers/custom_fields_helper.rb....
r6582 #
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # 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.
Toshi MARUYAMA
remove trailing white-spaces from app/helpers/custom_fields_helper.rb....
r6582 #
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # 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.
module CustomFieldsHelper
Jean-Philippe Lang
Do not use javascript to hide tabs content on page loading and make tabs work with javascript disabled....
r1278 def custom_fields_tabs
Jean-Philippe Lang
Refactoring of tabs rendering....
r2757 tabs = [{:name => 'IssueCustomField', :partial => 'custom_fields/index', :label => :label_issue_plural},
{:name => 'TimeEntryCustomField', :partial => 'custom_fields/index', :label => :label_spent_time},
{:name => 'ProjectCustomField', :partial => 'custom_fields/index', :label => :label_project_plural},
Jean-Philippe Lang
Adds custom fields for versions (#4219)....
r2950 {:name => 'VersionCustomField', :partial => 'custom_fields/index', :label => :label_version_plural},
Jean-Philippe Lang
Refactoring of tabs rendering....
r2757 {:name => 'UserCustomField', :partial => 'custom_fields/index', :label => :label_user_plural},
Eric Davis
Enumerations can now have custom fields defined on them. #4077...
r2831 {:name => 'GroupCustomField', :partial => 'custom_fields/index', :label => :label_group_plural},
Eric Davis
Fixed some merge bugs. #4077...
r2838 {:name => 'TimeEntryActivityCustomField', :partial => 'custom_fields/index', :label => TimeEntryActivity::OptionName},
{:name => 'IssuePriorityCustomField', :partial => 'custom_fields/index', :label => IssuePriority::OptionName},
{:name => 'DocumentCategoryCustomField', :partial => 'custom_fields/index', :label => DocumentCategory::OptionName}
Jean-Philippe Lang
Do not use javascript to hide tabs content on page loading and make tabs work with javascript disabled....
r1278 ]
end
Toshi MARUYAMA
remove trailing white-spaces from app/helpers/custom_fields_helper.rb....
r6582
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # Return custom field html tag corresponding to its format
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 def custom_field_tag(name, custom_value)
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 custom_field = custom_value.custom_field
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 field_name = "#{name}[custom_field_values][#{custom_field.id}]"
Jean-Philippe Lang
Adds support for multiselect custom fields (#1189)....
r8601 field_name << "[]" if custom_field.multiple?
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 field_id = "#{name}_custom_field_values_#{custom_field.id}"
Eric Davis
Let custom field formats control how they are edited....
r3561
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425 tag_options = {:id => field_id, :class => "#{custom_field.field_format}_cf"}
Eric Davis
Let custom field formats control how they are edited....
r3561 field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format)
Jean-Philippe Lang
Fixed: unknown custom field format causes error when editing/bulk editing (#7985)....
r5094 case field_format.try(:edit_as)
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 when "date"
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425 text_field_tag(field_name, custom_value.value, tag_options.merge(:size => 10)) +
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 calendar_for(field_id)
when "text"
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425 text_area_tag(field_name, custom_value.value, tag_options.merge(:rows => 3))
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 when "bool"
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425 hidden_field_tag(field_name, '0') + check_box_tag(field_name, '1', custom_value.true?, tag_options)
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 when "list"
Jean-Philippe Lang
Adds support for multiselect custom fields (#1189)....
r8601 blank_option = ''
unless custom_field.multiple?
if custom_field.is_required?
unless custom_field.default_value.present?
blank_option = "<option value=\"\">--- #{l(:actionview_instancetag_blank_option)} ---</option>"
end
else
blank_option = '<option></option>'
end
end
s = select_tag(field_name, blank_option.html_safe + options_for_select(custom_field.possible_values_options(custom_value.customized), custom_value.value),
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425 tag_options.merge(:multiple => custom_field.multiple?))
Jean-Philippe Lang
Adds support for multiselect custom fields (#1189)....
r8601 if custom_field.multiple?
s << hidden_field_tag(field_name, '')
end
s
Jean-Philippe Lang
Added "Float" as a custom field format....
r857 else
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425 text_field_tag(field_name, custom_value.value, tag_options)
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
end
Toshi MARUYAMA
remove trailing white-spaces from app/helpers/custom_fields_helper.rb....
r6582
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # Return custom field label tag
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 def custom_field_label_tag(name, custom_value)
Jean-Philippe Lang
Additional escaping....
r6207 content_tag "label", h(custom_value.custom_field.name) +
Toshi MARUYAMA
Rails3: use String#html_safe for custom_field_label_tag() at CustomFieldsHelper....
r6355 (custom_value.custom_field.is_required? ? " <span class=\"required\">*</span>".html_safe : ""),
Jean-Philippe Lang
Extracts custom field values validation from CustomValue so that they can be validated globally from the customized object (#1189)....
r8597 :for => "#{name}_custom_field_values_#{custom_value.custom_field.id}"
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
Toshi MARUYAMA
remove trailing white-spaces from app/helpers/custom_fields_helper.rb....
r6582
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # Return custom field tag with its label tag
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 def custom_field_tag_with_label(name, custom_value)
custom_field_label_tag(name, custom_value) + custom_field_tag(name, custom_value)
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
Toshi MARUYAMA
remove trailing white-spaces from app/helpers/custom_fields_helper.rb....
r6582
Jean-Philippe Lang
Fixes test broken by r5354....
r5236 def custom_field_tag_for_bulk_edit(name, custom_field, projects=nil)
Jean-Philippe Lang
Bulk edit refactoring....
r3364 field_name = "#{name}[custom_field_values][#{custom_field.id}]"
Jean-Philippe Lang
Adds support for multiselect custom fields (#1189)....
r8601 field_name << "[]" if custom_field.multiple?
Jean-Philippe Lang
Bulk edit refactoring....
r3364 field_id = "#{name}_custom_field_values_#{custom_field.id}"
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425
tag_options = {:id => field_id, :class => "#{custom_field.field_format}_cf"}
Eric Davis
Let custom field formats control how they are edited....
r3561 field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format)
Jean-Philippe Lang
Fixed: unknown custom field format causes error when editing/bulk editing (#7985)....
r5094 case field_format.try(:edit_as)
Jean-Philippe Lang
Allow bulk edit custom fields of any type (#461)....
r3164 when "date"
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425 text_field_tag(field_name, '', tag_options.merge(:size => 10)) +
Jean-Philippe Lang
Allow bulk edit custom fields of any type (#461)....
r3164 calendar_for(field_id)
when "text"
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425 text_area_tag(field_name, '', tag_options.merge(:rows => 3))
Jean-Philippe Lang
Allow bulk edit custom fields of any type (#461)....
r3164 when "bool"
select_tag(field_name, options_for_select([[l(:label_no_change_option), ''],
[l(:general_text_yes), '1'],
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425 [l(:general_text_no), '0']]), tag_options)
Jean-Philippe Lang
Allow bulk edit custom fields of any type (#461)....
r3164 when "list"
Jean-Philippe Lang
Adds support for multiselect custom fields (#1189)....
r8601 options = []
options << [l(:label_no_change_option), ''] unless custom_field.multiple?
Jean-Philippe Lang
Let non required list/user/version custom fields to be set to blank when bulk editing (#10605)....
r9215 options << [l(:label_none), '__none__'] unless custom_field.is_required?
Jean-Philippe Lang
Adds support for multiselect custom fields (#1189)....
r8601 options += custom_field.possible_values_options(projects)
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425 select_tag(field_name, options_for_select(options), tag_options.merge(:multiple => custom_field.multiple?))
Jean-Philippe Lang
Allow bulk edit custom fields of any type (#461)....
r3164 else
Jean-Philippe Lang
Adds css class to custom field input tags....
r9425 text_field_tag(field_name, '', tag_options)
Jean-Philippe Lang
Allow bulk edit custom fields of any type (#461)....
r3164 end
end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330
# Return a string used to display a custom value
def show_value(custom_value)
return "" unless custom_value
format_value(custom_value.value, custom_value.custom_field.field_format)
end
Toshi MARUYAMA
remove trailing white-spaces from app/helpers/custom_fields_helper.rb....
r6582
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # Return a string used to display a custom value
def format_value(value, field_format)
Jean-Philippe Lang
Adds support for multiselect custom fields (#1189)....
r8601 if value.is_a?(Array)
Jean-Philippe Lang
Display of multi custom fields....
r8606 value.collect {|v| format_value(v, field_format)}.compact.sort.join(', ')
Jean-Philippe Lang
Adds support for multiselect custom fields (#1189)....
r8601 else
Redmine::CustomFieldFormat.format_value(value, field_format)
end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
# Return an array of custom field formats which can be used in select_tag
Jean-Philippe Lang
Adds User and Version custom field format that can be used to reference a project member or version in custom fields (#2096)....
r5152 def custom_field_formats_for_select(custom_field)
Redmine::CustomFieldFormat.as_select(custom_field.class.customized_class.name)
Jean-Philippe Lang
0.3 unstable...
r10 end
Toshi MARUYAMA
remove trailing white-spaces from app/helpers/custom_fields_helper.rb....
r6582
Jean-Philippe Lang
Fixed: error when serializing back objects with custom fields using ActiveResource (#6403)....
r4366 # Renders the custom_values in api views
def render_api_custom_values(custom_values, api)
api.array :custom_fields do
custom_values.each do |custom_value|
Jean-Philippe Lang
Adds support for multiselect custom fields (#1189)....
r8601 attrs = {:id => custom_value.custom_field_id, :name => custom_value.custom_field.name}
attrs.merge!(:multiple => true) if custom_value.custom_field.multiple?
api.custom_field attrs do
if custom_value.value.is_a?(Array)
api.array :value do
custom_value.value.each do |value|
api.value value unless value.blank?
end
end
else
api.value custom_value.value
end
Jean-Philippe Lang
Fixed: error when serializing back objects with custom fields using ActiveResource (#6403)....
r4366 end
end
end unless custom_values.empty?
end
Jean-Philippe Lang
Initial commit...
r2 end