##// END OF EJS Templates
Allow referencing issue numbers in brackets. This style is used by other...
Allow referencing issue numbers in brackets. This style is used by other bug trackers. Examples: * "[#nnn] Worked on this issue" * "[#nnn, #mmm] Worked on these" * "[#nnn #mmm] Working some more" git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2854 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r2454:a64b8695c8c2
r2749:609faba6a3d3
Show More
10-patches.rb
80 lines | 2.4 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
Merged Rails 2.1 compatibility branch....
r1609
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 require 'activerecord'
module ActiveRecord
class Base
include Redmine::I18n
# Translate attribute names for validation errors display
def self.human_attribute_name(attr)
l("field_#{attr.to_s.gsub(/_id$/, '')}")
end
end
end
Jean-Philippe Lang
Patch ActiveRecord::Errors#full_messages so that it contains custom values error messages....
r2454 module ActiveRecord
class Errors
def full_messages(options = {})
full_messages = []
@errors.each_key do |attr|
@errors[attr].each do |message|
next unless message
if attr == "base"
full_messages << message
elsif attr == "custom_values"
# Replace the generic "custom values is invalid"
# with the errors on custom values
@base.custom_values.each do |value|
value.errors.each do |attr, msg|
full_messages << value.custom_field.name + ' ' + msg
end
end
else
attr_name = @base.class.human_attribute_name(attr)
full_messages << attr_name + ' ' + message
end
end
end
full_messages
end
end
end
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 module ActionView
module Helpers
module DateHelper
# distance_of_time_in_words breaks when difference is greater than 30 years
def distance_of_date_in_words(from_date, to_date = 0, options = {})
from_date = from_date.to_date if from_date.respond_to?(:to_date)
to_date = to_date.to_date if to_date.respond_to?(:to_date)
distance_in_days = (to_date - from_date).abs
I18n.with_options :locale => options[:locale], :scope => :'datetime.distance_in_words' do |locale|
case distance_in_days
when 0..60 then locale.t :x_days, :count => distance_in_days
when 61..720 then locale.t :about_x_months, :count => (distance_in_days / 30).round
else locale.t :over_x_years, :count => (distance_in_days / 365).round
end
end
end
end
end
end
Jean-Philippe Lang
Merged Rails 2.1 compatibility branch....
r1609
ActionView::Base.field_error_proc = Proc.new{ |html_tag, instance| "#{html_tag}" }
Jean-Philippe Lang
Adds :async_smtp and :async_sendmail delivery methods to perform email deliveries asynchronously....
r2337
# Adds :async_smtp and :async_sendmail delivery methods
# to perform email deliveries asynchronously
module AsynchronousMailer
%w(smtp sendmail).each do |type|
define_method("perform_delivery_async_#{type}") do |mail|
Thread.start do
send "perform_delivery_#{type}", mail
end
end
end
end
ActionMailer::Base.send :include, AsynchronousMailer